jaymeh / craft-currently-reading-widget
Widget which uses various book API's to showcase what you are currently reading.
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 2
Type:craft-plugin
Requires
- php: >=8.2
- craftcms/cms: ^5.0
Requires (Dev)
- craftcms/ecs: dev-main
- craftcms/phpstan: dev-main
- marcocesarato/php-conventional-changelog: ^1.17
README
A Craft CMS plugin that displays your currently reading books in a beautiful slider widget. Supports multiple book data sources including OpenLibrary.
Features
- Beautiful slider interface for displaying books
- Multiple data source support (OpenLibrary, Mock API)
- Customizable templates
- Responsive design
- Easy to extend with custom book APIs
Installation
- Open your terminal and go to your Craft project:
cd /path/to/project
- Then tell Composer to load the plugin:
composer require jaymeh/craft-currently-reading-widget
- In the Control Panel, go to Settings → Plugins and click the "Install" button for Currently Reading Widget.
Configuration
- Go to Settings → Plugins → Currently Reading Widget
- Select your preferred book data source (OpenLibrary or Mock API)
- Configure any additional settings specific to your chosen data source
Customization
Overriding Templates
You can override the default templates by creating your own versions in your Craft project:
- Create a directory in your project:
templates/currently-reading/
-
Copy the template files from the plugin's
templates/currently-reading/
directory to your project's directory. -
Modify the templates as needed. Available templates:
slider.twig
- Renders books in a slider template
Customizing Styles
The plugin's styles can be customized in two ways:
-
Override the CSS file: Create your own CSS file in your project and override the plugin's classes:
.currently-reading-widget__slider { /* Your custom styles */ }
-
Add custom classes: The plugin's templates use BEM-style class names that you can extend or override in your own CSS.
Extending with Custom APIs
You can add your own book data source by:
- Creating a new class that implements
BookServiceInterface
- Registering your API in the
RegisterBookApiEvent
event:
use jaymeh\craftcurrentlyreadingwidget\events\RegisterBookApiEvent; Event::on( BookApiService::class, RegisterBookApiEvent::class, function(RegisterBookApiEvent $event) { $event->apis['myapi'] = MyCustomApi::class; } );
Available Template Variables
In the slider template, you have access to the following variables:
books
- Array of book objects with properties:title
- Book titleauthor
- Book authorcoverImageUrl
- URL to book cover image
Support
For support, please open an issue in the GitHub repository or contact the plugin author.
License
This plugin is licensed under the Craft License.