From 38cdebd0c6c18c6c5e594545244523cd9811c4fb Mon Sep 17 00:00:00 2001 From: bdm Date: Mon, 28 Sep 2026 06:24:25 -0700 Subject: [PATCH] Track Bookshelf WordPress theme, plugins and specs Initial import of the bdmurphy Bookshelf work: the bd-bookshelf theme, bd-bookshelf-plugin, bd-bookshelfhelper and bd-simpleemail plugins, plus the specification documents, mockups and release archives. --- .gitignore | 22 + .vscode/settings.json | 3 + Amazon_View_style_module.md | 44 + BD-Murphy-Website-Specification-v2.0.md | 912 ++++++++ ...hy-Website-Specification-v2_0-Updated.docx | Bin 0 -> 31883 bytes ...phy-Website-Specification-v2_0-Updated.txt | 467 ++++ BDMurphy-BookShelf-Theme.zip | Bin 0 -> 273247 bytes ...hy-Bookshelf-Theme-Specification-v2.2.docx | Bin 0 -> 38964 bytes BDMurphy-Plugin-Specifications-v2.2.docx | Bin 0 -> 39077 bytes BDMurphy-Theme-Specifications-v2.2.md | 716 +++++++ BDMurphyTemplate.zip | Bin 0 -> 1335023 bytes BookDetailPage.md | 31 + Book_page_mockup.jpg | Bin 0 -> 286856 bytes Icon_Quill_BDMurphy_250x250.png | Bin 0 -> 15955 bytes Icon_Quill_BDMurphy_Black_WhtBG.jpg | Bin 0 -> 61820 bytes MainPage_def.txt | 19 + MainPage_spec.md | 112 + Old/BD-Murphy-Website-Specification-v1.5.docx | Bin 0 -> 58136 bytes Old/BDMurphy-BookShelf-Theme.zip | Bin 0 -> 32826 bytes Old/BDMurphy_production_build.zip | Bin 0 -> 96213 bytes Old/bd-bookshelfhelper.zip | Bin 0 -> 536 bytes Old/bd-bookshelfhelper/bd-bookshelfhelper.php | 32 + Old/bd-bookshelfhelper/inc/class-admin.php | 480 +++++ .../inc/class-bookhelper.php | 396 ++++ Old/bd-bookshelfhelper/inc/class-install.php | 167 ++ Old/bd-murphy-author.zip | Bin 0 -> 32333 bytes Old/bd-murphy-author/404.php | 21 + Old/bd-murphy-author/archive-book.php | 83 + Old/bd-murphy-author/archive-series.php | 46 + Old/bd-murphy-author/archive.php | 69 + .../assets/banner_1200x200_v3.png | 0 Old/bd-murphy-author/assets/js/navigation.js | 97 + .../assets/js/social-share.js | 109 + Old/bd-murphy-author/assets/style.css | 847 ++++++++ Old/bd-murphy-author/footer.php | 55 + Old/bd-murphy-author/front-page.php | 40 + Old/bd-murphy-author/functions.php | 158 ++ Old/bd-murphy-author/header.php | 38 + Old/bd-murphy-author/inc/customizer.php | 147 ++ Old/bd-murphy-author/inc/nav-menu.php | 51 + Old/bd-murphy-author/inc/template-tags.php | 137 ++ Old/bd-murphy-author/inc/theme-options.php | 140 ++ Old/bd-murphy-author/inc/widgets.php | 99 + Old/bd-murphy-author/index.php | 59 + Old/bd-murphy-author/page-about.php | 61 + Old/bd-murphy-author/page-contact.php | 86 + Old/bd-murphy-author/page-full-width.php | 21 + Old/bd-murphy-author/page-no-sidebar.php | 21 + Old/bd-murphy-author/page-reviews.php | 62 + Old/bd-murphy-author/page-signup.php | 47 + Old/bd-murphy-author/page-unsubscribe.php | 38 + Old/bd-murphy-author/search.php | 42 + Old/bd-murphy-author/single-book.php | 129 ++ Old/bd-murphy-author/style.css | 18 + Old/bd-murphy-author/taxonomy-series.php | 68 + .../template-parts/social-share.php | 53 + Old/bd-simpleemail.zip | Bin 0 -> 208 bytes Old/bd-simpleemail/bd-simpleemail.php | 33 + Old/bd-simpleemail/inc/class-email-admin.php | 311 +++ .../inc/class-email-install.php | 51 + Old/bd-simpleemail/inc/class-email-sender.php | 162 ++ Old/bd-simpleemail/inc/class-simpleemail.php | 278 +++ Old/bdmurphy-theme.zip | Bin 0 -> 1330 bytes ReadingThroughTimeBanner923x150.jpg | Bin 0 -> 63656 bytes ReadingThroughTimeBanner_1538x250.png | Bin 0 -> 810010 bytes Reading_History_banner_1200x200.jpg | Bin 0 -> 93903 bytes SPEC_BD_BookHelper_Plugin.txt | 439 ++++ SPEC_BD_Bookshelf_Plugin.txt | 552 +++++ bd-bookshelf-plugin-questions-0.0.1.md | 186 ++ bd-bookshelf-plugin-questions-0.0.2.md | 197 ++ bd-bookshelf-plugin-spec-0.0.1.md | 1015 +++++++++ .../admin/css/bd-bookshelf-admin.css | 172 ++ .../admin/js/bd-bookshelf-admin.js | 846 ++++++++ bd-bookshelf-plugin/bd-bookshelf.php | 155 ++ .../includes/class-bdm-admin.php | 1375 ++++++++++++ .../includes/class-bdm-amazon-scraper.php | 293 +++ .../includes/class-bdm-authors.php | 176 ++ .../includes/class-bdm-book-manager.php | 477 +++++ .../includes/class-bdm-database.php | 305 +++ .../includes/class-bdm-gdpr.php | 123 ++ .../includes/class-bdm-goodreads-scraper.php | 322 +++ .../includes/class-bdm-migration.php | 271 +++ .../includes/class-bdm-rating-sync.php | 213 ++ .../includes/class-bdm-retail-sites.php | 295 +++ .../includes/class-bdm-seo.php | 223 ++ .../includes/class-bdm-series.php | 143 ++ .../includes/class-bdm-shortcodes.php | 335 +++ .../class-bdm-theme-compatibility.php | 214 ++ .../public/css/bd-bookshelf.css | 152 ++ .../public/js/bd-bookshelf-gdpr.js | 67 + bd-bookshelf-plugin/public/js/bd-bookshelf.js | 14 + bd-bookshelf-plugin/readme.txt | 77 + bd-bookshelf-plugin/uninstall.php | 27 + bd-bookshelf-v2.2.0.zip | Bin 0 -> 421950 bytes bd-bookshelf-v2.2.10.zip | Bin 0 -> 659163 bytes bd-bookshelf.zip | Bin 0 -> 3534 bytes bd-bookshelf.zip.zip | Bin 0 -> 3449 bytes bd-bookshelf/404.php | 27 + bd-bookshelf/archive-book.php | 151 ++ bd-bookshelf/archive-series.php | 76 + bd-bookshelf/archive.php | 131 ++ bd-bookshelf/assets/css/admin-style.css | 45 + bd-bookshelf/assets/css/editor-style.css | 16 + bd-bookshelf/assets/css/style.css | 1885 +++++++++++++++++ .../fonts/S6u9w4BMUTPHh6UVSwaPGR_p.woff2 | Bin 0 -> 5552 bytes .../assets/fonts/S6u9w4BMUTPHh6UVSwiPGQ.woff2 | Bin 0 -> 23040 bytes .../fonts/S6u9w4BMUTPHh7USSwaPGR_p.woff2 | Bin 0 -> 5820 bytes .../assets/fonts/S6u9w4BMUTPHh7USSwiPGQ.woff2 | Bin 0 -> 23236 bytes .../assets/fonts/S6uyw4BMUTPHjx4wXg.woff2 | Bin 0 -> 23580 bytes .../assets/fonts/S6uyw4BMUTPHjxAwXjeu.woff2 | Bin 0 -> 5612 bytes bd-bookshelf/assets/fonts/fonts.css | 198 ++ ...ij__anPXDTnCjmHKM4nYO7KN_qiTXt7A-W2r.woff2 | Bin 0 -> 5800 bytes ...j3ij__anPXDTnCjmHKM4nYO7KN_qiTXtHA-Q.woff2 | Bin 0 -> 21884 bytes ...ij__anPXDTnCjmHKM4nYO7KN_qiTXtXA-W2r.woff2 | Bin 0 -> 12664 bytes ...ij__anPXDTnCjmHKM4nYO7KN_qiTXt_A-W2r.woff2 | Bin 0 -> 13668 bytes ...nuFiD-vYSZviVYUb_rj3ij__anPXDTLYgFE_.woff2 | Bin 0 -> 21140 bytes ...nuFiD-vYSZviVYUb_rj3ij__anPXDTPYgFE_.woff2 | Bin 0 -> 9112 bytes ...nuFiD-vYSZviVYUb_rj3ij__anPXDTjYgFE_.woff2 | Bin 0 -> 21152 bytes .../nuFiD-vYSZviVYUb_rj3ij__anPXDTzYgA.woff2 | Bin 0 -> 38404 bytes .../Icon_Quill_BDMurphy_Black_WhtBG.jpg | Bin 0 -> 38899 bytes bd-bookshelf/assets/images/banner.jpg | Bin 0 -> 120973 bytes bd-bookshelf/assets/js/navigation.js | 115 + bd-bookshelf/assets/js/social-share.js | 146 ++ bd-bookshelf/comments.php | 57 + bd-bookshelf/footer.php | 72 + bd-bookshelf/front-page.php | 46 + bd-bookshelf/functions.php | 459 ++++ bd-bookshelf/header.php | 58 + bd-bookshelf/home.php | 90 + bd-bookshelf/inc/ajax-handlers.php | 103 + bd-bookshelf/inc/book-api.php | 283 +++ bd-bookshelf/inc/book-helpers.php | 321 +++ bd-bookshelf/inc/customizer.php | 285 +++ bd-bookshelf/inc/nav-menu.php | 267 +++ bd-bookshelf/inc/setup.php | 12 + bd-bookshelf/inc/short-urls.php | 107 + bd-bookshelf/inc/template-tags.php | 286 +++ bd-bookshelf/inc/theme-admin.php | 572 +++++ bd-bookshelf/inc/theme-options.php | 200 ++ bd-bookshelf/inc/widgets.php | 330 +++ bd-bookshelf/index.php | 30 + bd-bookshelf/page-about.php | 90 + bd-bookshelf/page-books.php | 172 ++ bd-bookshelf/page-contact.php | 99 + bd-bookshelf/page-full-width.php | 23 + bd-bookshelf/page-no-sidebar.php | 23 + bd-bookshelf/page-reviews.php | 88 + bd-bookshelf/page-signup.php | 51 + bd-bookshelf/page-unsubscribe.php | 40 + bd-bookshelf/page.php | 36 + bd-bookshelf/readme.txt | 152 ++ bd-bookshelf/resources.txt | 26 + bd-bookshelf/screenshot.jpg | Bin 0 -> 209075 bytes bd-bookshelf/search.php | 49 + bd-bookshelf/single-book.php | 220 ++ bd-bookshelf/style.css | 31 + bd-bookshelf/taxonomy-series.php | 138 ++ bd-bookshelf/template-parts/social-share.php | 70 + bd-bookshelfhelper.zip | Bin 0 -> 25968 bytes bd-bookshelfhelper/assets/css/admin.css | 301 +++ bd-bookshelfhelper/assets/js/admin.js | 406 ++++ bd-bookshelfhelper/bd-bookshelfhelper.php | 58 + bd-bookshelfhelper/inc/class-admin.php | 1215 +++++++++++ bd-bookshelfhelper/inc/class-bookhelper.php | 840 ++++++++ bd-bookshelfhelper/inc/class-install.php | 172 ++ bd-bookshelfhelper/readme.txt | 81 + bd-bookshelfhelper/uninstall.php | 36 + bd-murphy-author.zip | Bin 0 -> 43126 bytes bd-simpleemail.zip | Bin 0 -> 13797 bytes bd-simpleemail/assets/css/admin.css | 54 + bd-simpleemail/bd-simpleemail.php | 49 + bd-simpleemail/inc/class-email-admin.php | 383 ++++ bd-simpleemail/inc/class-email-install.php | 61 + bd-simpleemail/inc/class-email-sender.php | 207 ++ bd-simpleemail/inc/class-simpleemail.php | 369 ++++ bd-simpleemail/readme.txt | 73 + bd-simpleemail/uninstall.php | 29 + book_retailer_icons.zip | Bin 0 -> 79709 bytes book_retailer_icons/amazon_dark.png | Bin 0 -> 6205 bytes book_retailer_icons/amazon_light.png | Bin 0 -> 5779 bytes book_retailer_icons/apple_dark.png | Bin 0 -> 8905 bytes book_retailer_icons/apple_light.png | Bin 0 -> 8042 bytes book_retailer_icons/b&n_dark.png | Bin 0 -> 10311 bytes book_retailer_icons/b&n_light.png | Bin 0 -> 10553 bytes book_retailer_icons/google_dark.png | Bin 0 -> 9786 bytes book_retailer_icons/google_light.png | Bin 0 -> 9531 bytes book_retailer_icons/kobo_dark.png | Bin 0 -> 4787 bytes book_retailer_icons/kobo_light.png | Bin 0 -> 4742 bytes docs/Short_Links_specification.txt | 55 + docs/bd-books-spec.md | 74 + docs/book-helper-edit-page-spec.md | 150 ++ docs/book-helper-menu-spec.md | 164 ++ docs/sidebar-widget-spec.md | 196 ++ goodreads-widget.php | 132 ++ mockups/about.php | 124 ++ mockups/app.js | 69 + mockups/assets/images/Book_page_mockup.jpg | Bin 0 -> 286856 bytes .../images/Icon_Quill_BDMurphy_250x250.png | Bin 0 -> 15955 bytes .../Icon_Quill_BDMurphy_Black_WhtBG.jpg | Bin 0 -> 61820 bytes .../ReadingThroughTimeBanner923x150.jpg | Bin 0 -> 63656 bytes .../ReadingThroughTimeBanner_1538x250.png | Bin 0 -> 810010 bytes .../Reading_History_banner_1200x200.jpg | Bin 0 -> 93903 bytes mockups/blog.php | 86 + mockups/book-detail.php | 139 ++ mockups/books.php | 99 + mockups/functions.php | 27 + mockups/index.css | 347 +++ mockups/index.php | 118 ++ mockups/reviews.php | 106 + mockups/series-detail.php | 115 + mockups/series.php | 72 + mockups/signup.php | 147 ++ mockups/style.css | 8 + screenshot-about-verify.png | Bin 0 -> 697787 bytes screenshot-books-verify.png | Bin 0 -> 1230281 bytes screenshot-home-verify.png | Bin 0 -> 676042 bytes single-book.php | 217 ++ 217 files changed, 30197 insertions(+) create mode 100644 .gitignore create mode 100755 .vscode/settings.json create mode 100755 Amazon_View_style_module.md create mode 100644 BD-Murphy-Website-Specification-v2.0.md create mode 100755 BD-Murphy-Website-Specification-v2_0-Updated.docx create mode 100755 BD-Murphy-Website-Specification-v2_0-Updated.txt create mode 100644 BDMurphy-BookShelf-Theme.zip create mode 100755 BDMurphy-Bookshelf-Theme-Specification-v2.2.docx create mode 100755 BDMurphy-Plugin-Specifications-v2.2.docx create mode 100644 BDMurphy-Theme-Specifications-v2.2.md create mode 100755 BDMurphyTemplate.zip create mode 100755 BookDetailPage.md create mode 100755 Book_page_mockup.jpg create mode 100755 Icon_Quill_BDMurphy_250x250.png create mode 100755 Icon_Quill_BDMurphy_Black_WhtBG.jpg create mode 100755 MainPage_def.txt create mode 100755 MainPage_spec.md create mode 100755 Old/BD-Murphy-Website-Specification-v1.5.docx create mode 100644 Old/BDMurphy-BookShelf-Theme.zip create mode 100755 Old/BDMurphy_production_build.zip create mode 100755 Old/bd-bookshelfhelper.zip create mode 100644 Old/bd-bookshelfhelper/bd-bookshelfhelper.php create mode 100644 Old/bd-bookshelfhelper/inc/class-admin.php create mode 100644 Old/bd-bookshelfhelper/inc/class-bookhelper.php create mode 100644 Old/bd-bookshelfhelper/inc/class-install.php create mode 100644 Old/bd-murphy-author.zip create mode 100644 Old/bd-murphy-author/404.php create mode 100644 Old/bd-murphy-author/archive-book.php create mode 100644 Old/bd-murphy-author/archive-series.php create mode 100644 Old/bd-murphy-author/archive.php create mode 100644 Old/bd-murphy-author/assets/banner_1200x200_v3.png create mode 100644 Old/bd-murphy-author/assets/js/navigation.js create mode 100644 Old/bd-murphy-author/assets/js/social-share.js create mode 100644 Old/bd-murphy-author/assets/style.css create mode 100644 Old/bd-murphy-author/footer.php create mode 100644 Old/bd-murphy-author/front-page.php create mode 100644 Old/bd-murphy-author/functions.php create mode 100644 Old/bd-murphy-author/header.php create mode 100644 Old/bd-murphy-author/inc/customizer.php create mode 100644 Old/bd-murphy-author/inc/nav-menu.php create mode 100644 Old/bd-murphy-author/inc/template-tags.php create mode 100644 Old/bd-murphy-author/inc/theme-options.php create mode 100644 Old/bd-murphy-author/inc/widgets.php create mode 100644 Old/bd-murphy-author/index.php create mode 100644 Old/bd-murphy-author/page-about.php create mode 100644 Old/bd-murphy-author/page-contact.php create mode 100644 Old/bd-murphy-author/page-full-width.php create mode 100644 Old/bd-murphy-author/page-no-sidebar.php create mode 100644 Old/bd-murphy-author/page-reviews.php create mode 100644 Old/bd-murphy-author/page-signup.php create mode 100644 Old/bd-murphy-author/page-unsubscribe.php create mode 100644 Old/bd-murphy-author/search.php create mode 100644 Old/bd-murphy-author/single-book.php create mode 100644 Old/bd-murphy-author/style.css create mode 100644 Old/bd-murphy-author/taxonomy-series.php create mode 100644 Old/bd-murphy-author/template-parts/social-share.php create mode 100755 Old/bd-simpleemail.zip create mode 100644 Old/bd-simpleemail/bd-simpleemail.php create mode 100644 Old/bd-simpleemail/inc/class-email-admin.php create mode 100644 Old/bd-simpleemail/inc/class-email-install.php create mode 100644 Old/bd-simpleemail/inc/class-email-sender.php create mode 100644 Old/bd-simpleemail/inc/class-simpleemail.php create mode 100755 Old/bdmurphy-theme.zip create mode 100755 ReadingThroughTimeBanner923x150.jpg create mode 100755 ReadingThroughTimeBanner_1538x250.png create mode 100755 Reading_History_banner_1200x200.jpg create mode 100644 SPEC_BD_BookHelper_Plugin.txt create mode 100644 SPEC_BD_Bookshelf_Plugin.txt create mode 100644 bd-bookshelf-plugin-questions-0.0.1.md create mode 100644 bd-bookshelf-plugin-questions-0.0.2.md create mode 100644 bd-bookshelf-plugin-spec-0.0.1.md create mode 100644 bd-bookshelf-plugin/admin/css/bd-bookshelf-admin.css create mode 100644 bd-bookshelf-plugin/admin/js/bd-bookshelf-admin.js create mode 100644 bd-bookshelf-plugin/bd-bookshelf.php create mode 100644 bd-bookshelf-plugin/includes/class-bdm-admin.php create mode 100644 bd-bookshelf-plugin/includes/class-bdm-amazon-scraper.php create mode 100644 bd-bookshelf-plugin/includes/class-bdm-authors.php create mode 100644 bd-bookshelf-plugin/includes/class-bdm-book-manager.php create mode 100644 bd-bookshelf-plugin/includes/class-bdm-database.php create mode 100644 bd-bookshelf-plugin/includes/class-bdm-gdpr.php create mode 100644 bd-bookshelf-plugin/includes/class-bdm-goodreads-scraper.php create mode 100644 bd-bookshelf-plugin/includes/class-bdm-migration.php create mode 100644 bd-bookshelf-plugin/includes/class-bdm-rating-sync.php create mode 100644 bd-bookshelf-plugin/includes/class-bdm-retail-sites.php create mode 100644 bd-bookshelf-plugin/includes/class-bdm-seo.php create mode 100644 bd-bookshelf-plugin/includes/class-bdm-series.php create mode 100644 bd-bookshelf-plugin/includes/class-bdm-shortcodes.php create mode 100644 bd-bookshelf-plugin/includes/class-bdm-theme-compatibility.php create mode 100644 bd-bookshelf-plugin/public/css/bd-bookshelf.css create mode 100644 bd-bookshelf-plugin/public/js/bd-bookshelf-gdpr.js create mode 100644 bd-bookshelf-plugin/public/js/bd-bookshelf.js create mode 100644 bd-bookshelf-plugin/readme.txt create mode 100644 bd-bookshelf-plugin/uninstall.php create mode 100644 bd-bookshelf-v2.2.0.zip create mode 100644 bd-bookshelf-v2.2.10.zip create mode 100644 bd-bookshelf.zip create mode 100755 bd-bookshelf.zip.zip create mode 100644 bd-bookshelf/404.php create mode 100644 bd-bookshelf/archive-book.php create mode 100644 bd-bookshelf/archive-series.php create mode 100644 bd-bookshelf/archive.php create mode 100644 bd-bookshelf/assets/css/admin-style.css create mode 100644 bd-bookshelf/assets/css/editor-style.css create mode 100644 bd-bookshelf/assets/css/style.css create mode 100644 bd-bookshelf/assets/fonts/S6u9w4BMUTPHh6UVSwaPGR_p.woff2 create mode 100644 bd-bookshelf/assets/fonts/S6u9w4BMUTPHh6UVSwiPGQ.woff2 create mode 100644 bd-bookshelf/assets/fonts/S6u9w4BMUTPHh7USSwaPGR_p.woff2 create mode 100644 bd-bookshelf/assets/fonts/S6u9w4BMUTPHh7USSwiPGQ.woff2 create mode 100644 bd-bookshelf/assets/fonts/S6uyw4BMUTPHjx4wXg.woff2 create mode 100644 bd-bookshelf/assets/fonts/S6uyw4BMUTPHjxAwXjeu.woff2 create mode 100644 bd-bookshelf/assets/fonts/fonts.css create mode 100644 bd-bookshelf/assets/fonts/nuFRD-vYSZviVYUb_rj3ij__anPXDTnCjmHKM4nYO7KN_qiTXt7A-W2r.woff2 create mode 100644 bd-bookshelf/assets/fonts/nuFRD-vYSZviVYUb_rj3ij__anPXDTnCjmHKM4nYO7KN_qiTXtHA-Q.woff2 create mode 100644 bd-bookshelf/assets/fonts/nuFRD-vYSZviVYUb_rj3ij__anPXDTnCjmHKM4nYO7KN_qiTXtXA-W2r.woff2 create mode 100644 bd-bookshelf/assets/fonts/nuFRD-vYSZviVYUb_rj3ij__anPXDTnCjmHKM4nYO7KN_qiTXt_A-W2r.woff2 create mode 100644 bd-bookshelf/assets/fonts/nuFiD-vYSZviVYUb_rj3ij__anPXDTLYgFE_.woff2 create mode 100644 bd-bookshelf/assets/fonts/nuFiD-vYSZviVYUb_rj3ij__anPXDTPYgFE_.woff2 create mode 100644 bd-bookshelf/assets/fonts/nuFiD-vYSZviVYUb_rj3ij__anPXDTjYgFE_.woff2 create mode 100644 bd-bookshelf/assets/fonts/nuFiD-vYSZviVYUb_rj3ij__anPXDTzYgA.woff2 create mode 100755 bd-bookshelf/assets/images/Icon_Quill_BDMurphy_Black_WhtBG.jpg create mode 100755 bd-bookshelf/assets/images/banner.jpg create mode 100644 bd-bookshelf/assets/js/navigation.js create mode 100644 bd-bookshelf/assets/js/social-share.js create mode 100644 bd-bookshelf/comments.php create mode 100644 bd-bookshelf/footer.php create mode 100644 bd-bookshelf/front-page.php create mode 100644 bd-bookshelf/functions.php create mode 100644 bd-bookshelf/header.php create mode 100644 bd-bookshelf/home.php create mode 100644 bd-bookshelf/inc/ajax-handlers.php create mode 100644 bd-bookshelf/inc/book-api.php create mode 100644 bd-bookshelf/inc/book-helpers.php create mode 100644 bd-bookshelf/inc/customizer.php create mode 100644 bd-bookshelf/inc/nav-menu.php create mode 100644 bd-bookshelf/inc/setup.php create mode 100644 bd-bookshelf/inc/short-urls.php create mode 100644 bd-bookshelf/inc/template-tags.php create mode 100644 bd-bookshelf/inc/theme-admin.php create mode 100644 bd-bookshelf/inc/theme-options.php create mode 100644 bd-bookshelf/inc/widgets.php create mode 100644 bd-bookshelf/index.php create mode 100644 bd-bookshelf/page-about.php create mode 100644 bd-bookshelf/page-books.php create mode 100644 bd-bookshelf/page-contact.php create mode 100644 bd-bookshelf/page-full-width.php create mode 100644 bd-bookshelf/page-no-sidebar.php create mode 100644 bd-bookshelf/page-reviews.php create mode 100644 bd-bookshelf/page-signup.php create mode 100644 bd-bookshelf/page-unsubscribe.php create mode 100644 bd-bookshelf/page.php create mode 100644 bd-bookshelf/readme.txt create mode 100644 bd-bookshelf/resources.txt create mode 100644 bd-bookshelf/screenshot.jpg create mode 100644 bd-bookshelf/search.php create mode 100644 bd-bookshelf/single-book.php create mode 100644 bd-bookshelf/style.css create mode 100644 bd-bookshelf/taxonomy-series.php create mode 100644 bd-bookshelf/template-parts/social-share.php create mode 100644 bd-bookshelfhelper.zip create mode 100644 bd-bookshelfhelper/assets/css/admin.css create mode 100644 bd-bookshelfhelper/assets/js/admin.js create mode 100644 bd-bookshelfhelper/bd-bookshelfhelper.php create mode 100644 bd-bookshelfhelper/inc/class-admin.php create mode 100644 bd-bookshelfhelper/inc/class-bookhelper.php create mode 100644 bd-bookshelfhelper/inc/class-install.php create mode 100644 bd-bookshelfhelper/readme.txt create mode 100644 bd-bookshelfhelper/uninstall.php create mode 100644 bd-murphy-author.zip create mode 100644 bd-simpleemail.zip create mode 100644 bd-simpleemail/assets/css/admin.css create mode 100644 bd-simpleemail/bd-simpleemail.php create mode 100644 bd-simpleemail/inc/class-email-admin.php create mode 100644 bd-simpleemail/inc/class-email-install.php create mode 100644 bd-simpleemail/inc/class-email-sender.php create mode 100644 bd-simpleemail/inc/class-simpleemail.php create mode 100644 bd-simpleemail/readme.txt create mode 100644 bd-simpleemail/uninstall.php create mode 100755 book_retailer_icons.zip create mode 100755 book_retailer_icons/amazon_dark.png create mode 100755 book_retailer_icons/amazon_light.png create mode 100755 book_retailer_icons/apple_dark.png create mode 100755 book_retailer_icons/apple_light.png create mode 100755 book_retailer_icons/b&n_dark.png create mode 100755 book_retailer_icons/b&n_light.png create mode 100755 book_retailer_icons/google_dark.png create mode 100755 book_retailer_icons/google_light.png create mode 100755 book_retailer_icons/kobo_dark.png create mode 100755 book_retailer_icons/kobo_light.png create mode 100755 docs/Short_Links_specification.txt create mode 100644 docs/bd-books-spec.md create mode 100644 docs/book-helper-edit-page-spec.md create mode 100644 docs/book-helper-menu-spec.md create mode 100644 docs/sidebar-widget-spec.md create mode 100644 goodreads-widget.php create mode 100755 mockups/about.php create mode 100755 mockups/app.js create mode 100755 mockups/assets/images/Book_page_mockup.jpg create mode 100755 mockups/assets/images/Icon_Quill_BDMurphy_250x250.png create mode 100755 mockups/assets/images/Icon_Quill_BDMurphy_Black_WhtBG.jpg create mode 100755 mockups/assets/images/ReadingThroughTimeBanner923x150.jpg create mode 100755 mockups/assets/images/ReadingThroughTimeBanner_1538x250.png create mode 100755 mockups/assets/images/Reading_History_banner_1200x200.jpg create mode 100755 mockups/blog.php create mode 100755 mockups/book-detail.php create mode 100755 mockups/books.php create mode 100755 mockups/functions.php create mode 100755 mockups/index.css create mode 100755 mockups/index.php create mode 100755 mockups/reviews.php create mode 100755 mockups/series-detail.php create mode 100755 mockups/series.php create mode 100755 mockups/signup.php create mode 100755 mockups/style.css create mode 100644 screenshot-about-verify.png create mode 100644 screenshot-books-verify.png create mode 100644 screenshot-home-verify.png create mode 100644 single-book.php diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..50885e9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,22 @@ +# OS / editor cruft +.DS_Store +Thumbs.db +*.swp +*~ +.idea/ + +# Local environment / secrets +.env +.env.* +*.pem +*.key +!book_retailer_icons/*.png + +# Build / dependency artifacts +node_modules/ +vendor/ +*.min.js +*.min.css + +# Logs +*.log diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100755 index 0000000..ac1b736 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "local.model.provider.serverUrl": "http://192.168.123.14:1234" +} \ No newline at end of file diff --git a/Amazon_View_style_module.md b/Amazon_View_style_module.md new file mode 100755 index 0000000..b75e7d5 --- /dev/null +++ b/Amazon_View_style_module.md @@ -0,0 +1,44 @@ + +Book layout section: + +Similar to an Amazon book detail page. +The language selection will be followed for the page. If there is no translation for a language to show then English will be shown. +On the left is the book cover image, sized appropriatly for the display size. +To the right of the cover image, at the top is the book title, large as a title. +The line below the title will have "by" followed by the author name, or pen name. +The next line will show the Amazon rating, with space and the goodreads rating for the book. +There will be a seperator line below the ratings +Then the back cover blurb will be displayed. +Below the cover image on the left will be buttons linking to retailers to purchase the book. +The top buttons will be the formats available (ebook, paperback, hardback, audio). Below the format selection will be links to the sites with that format. The sites which don't offer that format will be grayed out. +To the right of the button, under the blurb will be additional book information, Genre, length in pages, language selected (with a '+' if other languages are availasble.) and the publisher name. +Below this line there will be the book ASIC listing categories. + + + +SYSTEM INSTRUCTION: Generate book listing components for WordPress using the +"Amazon Detail" layout structure. +LAYOUT RULES: + +1. CONTAINER: Each book must be wrapped in a container that supports a two- +column layout. + +2. LEFT COLUMN (Width 25%): +- TOP: Display the book cover image (Responsive sizing). +- BOTTOM: Display Purchase Section. +- Row 1: Format selectors (Ebook, Paperback, Hardback, Audio). +- Row 2: List of retailers. Apply CSS class "grayed-out" to retailers +that do not support the selected format. +3. RIGHT COLUMN (Width 75%): +- TITLE: Display in Large Bold H1/H2 style. +- BYLINE: "by [Author/Pen Name]" in secondary accent color. +- RATINGS: Show "Amazon: [Stars] | Goodreads: [Score]" on one line. +- SEPARATOR: Horizontal rule line. +- BLURB: Full back cover description text. +- METADATA BLOCK: Below blurb, display "Genre | [Length] Pages | +[Language] (+) | [Publisher]". +- CATEGORIES: Display ASIC listing categories in small muted text at the +very bottom. +4. LANGUAGE LOGIC: Default to selected language. If translation is missing, +fall back to English. + diff --git a/BD-Murphy-Website-Specification-v2.0.md b/BD-Murphy-Website-Specification-v2.0.md new file mode 100644 index 0000000..d2b8d0a --- /dev/null +++ b/BD-Murphy-Website-Specification-v2.0.md @@ -0,0 +1,912 @@ +# BDMurphy BookShelf Template - Technical Specification v2.0 + +**WordPress Theme:** BDMurphy BookShelf +**Plugin 1:** BD-BookShelfHelper +**Plugin 2:** BD-SimpleEmail + +**Version:** 2.0 | April 2026 +**Updated:** Incorporates WordPress Coding Standards, Security Best Practices, Accessibility Requirements, and Testing Standards + +--- + +## Table of Contents + +1. [Project Overview](#1-project-overview) +2. [Theme - Global Layout](#2-theme---global-layout) +3. [Theme - Pages](#3-theme---pages) +4. [Design System](#4-design-system) +5. [Plugin: BD-BookShelfHelper](#5-plugin-bd-bookshelfhelper) +6. [Plugin: BD-SimpleEmail](#6-plugin-bd-simpleemail) +7. [Database Schema](#7-database-schema) +8. [Design Decisions](#8-design-decisions) +9. [Implementation Standards](#9-implementation-standards) +10. [Quality Requirements](#10-quality-requirements) +11. [Deployment Checklist](#11-deployment-checklist) + +--- + +## 1. Project Overview + +### 1.1 Purpose + +This specification defines a custom WordPress theme and two companion plugins for author B.D. Murphy's website. The system allows the author to showcase books, publish blogs, manage reviews, and send newsletters with minimal technical knowledge required after initial setup. + +**Theme Name:** BDMurphy Bookshelf +**Plugin 1:** BD-BookShelfHelper +**Plugin 2:** BD-SimpleEmail + +### 1.2 Deliverables + +- **WordPress Theme:** BDMurphy Bookshelf — custom theme, fully Customizer-driven +- **Plugin: BD BookShelfHelper:** Book data, series, pen names, short links, review links, SEO, and platform integrations. Book data stored and managed in one place accessable everywhere. +- **Plugin: BD SimpleEmail:** Subscriber management and AI-assisted newsletter delivery + +### 1.3 Design Identity + +| Element | Specification | +|---------|--------------| +| Logo | Quill-pen hybrid icon with "B.D. Murphy" in serif text file: "Icon_Quill_BDMurphy_Black_WhtBG.jpg" | +| Banner | 1200x200px illustrated timeline file: "Reading_History_banner_1200x200.jpg" | +| Primary Color | Navy blue (#1B3A6B) | +| Accent Color | Warm gold (#C8A96E) | +| Background | Parchment (#F5F0E8) | +| Heading Font | Playfair Display / Georgia fallback | +| Body Font | Lato / Calibri fallback | + +### 1.4 General Behavior + +All books and blog content displays in reverse chronological order by first-published date unless a manual sort position is assigned. Series content sorts by volume number within the series. UI chrome follows the site language setting; content stays in the language it was authored in. + +### 1.5 WordPress Coding Standards Compliance + +All code MUST comply with [WordPress Coding Standards](https://developer.wordpress.org/coding-standards/wordpress-coding-standards/): + +- **PHP:** PSR-12 compatible with WordPress conventions +- **JavaScript:** ES5+ with JSHint validation +- **CSS:** WordPress CSS coding standards +- **HTML:** Semantic HTML5, no inline styles except where unavoidable +- **Text Domain:** `bd-murphy` for theme, `bd-bookshelfhelper` and `bd-simpleemail` for plugins + +--- + +## 2. Theme - Global Layout + +### 2.1 Header + +- Banner image (1200x200px) via `add_theme_support('custom-header')` +- Default asset: `Reading_History_banner_1200x200.jpg` +- Site logo via `add_theme_support('custom-logo')` +- Default logo asset: 'Icon_Quill_BDMurphy_Black_WhtBG.jpg' +- Admin bar offset handled via `body.admin-bar` rules + +### 2.2 Navigation Menu + +- Registered via `register_nav_menus(['primary' => 'Primary Menu'])` +- Default items: Home, Blog, Books, Series (conditional), Reviews, About, Contact +- Sticky behavior with gold top border on scroll +- Series menu item conditionally rendered by BD BookHelper + +### 2.3 Footer + +- Three-zone layout: social icons, donate buttons, utility links +- Two widget areas: "Footer Left" and "Footer Right" +- Sign-up prompt with link to /signup/ page + +### 2.4 WordPress Customizer Settings + +| Setting | Function | Location | +|---------|----------|----------| +| Site title | `get_bloginfo('name')` | Settings > General | +| Logo | `the_custom_logo()` | Customizer > Site Identity | +| Banner | `get_header_image()` | Customizer > Header Image | +| Background | Custom background | Customizer > Background | +| Primary color | `get_theme_mod('primary_color', '#1B3A6B')` | Customizer > Colors | +| Accent color | `get_theme_mod('accent_color', '#C8A96E')` | Customizer > Colors | +| Fonts | `get_theme_mod('heading_font', ...)`, etc. | Customizer > Typography | + +### 2.5 Theme Options Admin Screen + +Settings saved via WordPress Settings API in `bdm_theme_options`: + +- Social media URLs (X/Twitter, Facebook, LinkedIn, Instagram) +- Donation URLs (Buy Me a Coffee, PayPal) +- Author photo (media attachment ID) +- Sticky navigation toggle +- Posts per page +- Show read time toggle +- Business information (for CAN-SPAM compliance) + +--- + +## 3. Theme - Pages + +### 3.1 Home Page (front-page.php) +Top will be the banner using 100% of screen. +Line two will be the menu line. Each menu item as shown the menu setup. +Two-column layout: 66% content, 34% sidebar. Content via WordPress block editor. Sidebar contains book shelf widget with the default as custom HTML with the goodreads book list for bdmurphy. +The main page will have a short url from the plugin BookShelf Helper [all-books] + +### 3.2 Blog Page (/blog/) + +Template: `archive.php` or `home.php`. Lists posts with title, date, category, excerpt, featured image. Paginated (10 per page). Social sharing on individual posts. + +### 3.3 All Books Page (/books/) + +Template: `archive-book.php`. Stacked list with cover, title, author, ratings, format toggle, retailer buttons. Each book links to its detail page via short URL. + +### 3.3.1 Shortcode Display + +Books displayed via `[bd-book]` or `[bd-books]` shortcodes: +- Cover image (clickable, links to detail page) +- Title (clickable, links to detail page) +- Author/Pen name +- Blurb excerpt (HTML content, truncated) +- Retailer purchase buttons +- "View details" link to book detail page + +### 3.4 Individual Book Page (single-book.php) + +Full-width template with: +- Language selector tabs (EN, FR, DE, ES, RU, ZH-S, IT, PT, JA) +- Cover image (220x310px) +- Title, pen name, series info +- Ratings, format toggle, retailer links +- Read preview, pull quotes, reviews +- Share button (copies short URL) +- Social sharing buttons + +**Short Link Access:** Books are accessible via short URLs using the slug defined in book metadata. URL pattern: `/{short-slug}` (e.g., `/ph/` for "Pandemic Hacker") + +**Blurb HTML:** Descriptions are stored as HTML, allowing rich formatting (paragraphs, bold, italic, links) in book listings and detail pages. + +### 3.4.1 My Books Submenu + +The "My Books" menu item displays a dropdown submenu with links to each book's detail page: + +``` +My Books (top-level) +├── Book Title 1 +├── Book Title 2 +└── ... +``` + +- Each book appears as a submenu item +- Links point to the book's detail page using short URL +- Books sorted alphabetically by title +- Only published books shown + +### 3.5 Reviews Page (/reviews/) + +Template: `page-reviews.php`. Two-column grid with book cards and review summaries. + +### 3.6 About Page (/about/) + +Template: `page-about.php`. Two-column with author bio, awards, donate buttons, sign-up prompt. + +### 3.7 Series Pages + +- Listing: `archive-series.php` at /series/ +- Individual: `taxonomy-series.php` or `single-series.php` at /series/{slug}/ +- Series nav item hidden when no series exist + +### 3.8 Sign-up Page (/signup/) + +Template: `page-signup.php`. Email, first name, opt-in checkbox. Shortcode `[bdm_signup]` available. + +### 3.9 Social Sharing Buttons + +Platforms: Facebook, X/Twitter, LinkedIn, WhatsApp, Copy Link. Uses Web Share API where available. Book pages share the short URL. + +### 3.10 Utility Pages + +- Privacy Policy: standard WordPress page +- Unsubscribe: single email input + one-click HMAC tokens +- Contact: AJAX form with honeypot spam protection + +--- + +## 4. Design System + +### 4.1 Color Palette (CSS Custom Properties) + +```css +:root { + --bdm-navy: #1B3A6B; + --bdm-slate: #2E6DA4; + --bdm-sky: #4A90D9; + --bdm-gold: #C8A96E; + --bdm-cream: #F5F0E8; + --bdm-parchment: #EDE4D0; + --bdm-body-text: #2C2C2C; + --bdm-mid-grey: #555555; + --bdm-light-grey: #888888; + --bdm-active-green: #2D6A4F; +} +``` + +### 4.2 Typography + +- Headings: Playfair Display, Georgia, serif +- Body: Lato, Calibri, sans-serif +- Google Fonts loaded via `wp_enqueue_style()` with `display=swap` + +### 4.3 Image Sizes + +| Size | Dimensions | Use | +|------|-----------|-----| +| shelf-thumb | 44x62px (crop) | Book shelf widget | +| blog-thumb | 100x68px (crop) | Blog post thumbnails | +| rev-thumb | 52x74px (crop) | Review page covers | +| book-cover | 130x185px (crop) | All books page | +| book-page-cover | 220x310px (crop) | Individual book page | +| series-card | 400x280px (crop) | Series listing | +| series-header | 1200x300px (crop) | Series header | + +### 4.4 Responsive Breakpoints + +| Breakpoint | Layout | +|------------|--------| +| >=1200px | Full two-column, desktop nav | +| 768-1199px | Single column, hamburger menu | +| <768px | Single column, touch-friendly targets (44x44px min) | + +--- + +## 5. Plugin: BD-BookShelfHelper + +### 5.1 Overview + +Manages all book-related data, series information, and pen name configuration. Registers "book" custom post type and "series" taxonomy. + +### 5.2 Book Data Entry + +**5.2.1 Data Entry Interface** + +The plugin provides a dedicated book data entry page with the following UI requirements: + +- **Input Fields:** Each data field has a dedicated input control (text, textarea, select, date picker as appropriate) +- **Labels:** Every field has a visible label using `