krubio / perfect-theme-solid
Theme Switcher
Installs: 18
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Language:HTML
Requires
- php: >=8.0.0
Requires (Dev)
- codeception/codeception: ^5.0
- codeception/module-asserts: *
- phpstan/phpstan: ^1.10
This package is auto-updated.
Last update: 2024-12-01 00:15:40 UTC
README
Overview:
ThemeSelector is a PHP class that enables the user to select and apply different themes to their web application. The available themes are predefined and are listed in a dropdown menu for selection.
Usage:
To use ThemeSelector in your PHP project, follow these steps:
- Create an instance of ThemeSelector by passing a Cookie object as an argument to its constructor.
- Call the renderSelector method to generate the HTML code for the dropdown menu.
- Display the generated HTML code to the user in your web application.
- Check for POST request and call the
setTheme
method
Example Usage:
Here is an example of how to use ThemeSelector in your PHP project:
Create a Cookie object
$cookie = new PerfectApp\Http\Cookie();
Create an instance of ThemeSelector
$themeSelector = new PerfectApp\ThemeSelector\ThemeSelector($cookie);
Generate & Display the HTML code for the dropdown menu
<form method="POST"> <?php echo $theme->renderSelector(); ?> <button type="submit">Switch Theme</button> </form>
Example Usage
<?php declare(strict_types=1); use PerfectApp\Http\Cookie; use PerfectApp\ThemeSelector\ThemeSelector; require_once '../vendor/autoload.php'; $cookie = new Cookie($_COOKIE); $theme = new ThemeSelector($cookie); if (!empty($_POST['theme'])) { $theme->setTheme($_POST['theme']); header('Location: ./'); exit; }
API:
The following methods are available in the ThemeSelector class:
__construct(Cookie $cookie): This is the constructor method that takes a Cookie object as an argument. It initializes the $cookie property of the ThemeSelector object.
getTheme(): This method returns the current theme name that is stored in the cookie. If there is no theme stored in the cookie, it returns the default theme.
setTheme(string $themeName): This method sets the theme name in the cookie. If the theme name is not valid, it sets the default theme.
renderSelector(): This method generates the HTML code for the dropdown menu that lists all the available themes. It returns the generated HTML code as a string.
Available Themes: The following themes are available in ThemeSelector:
Default
Cerulean
Cosmo
Cyborg
Darkly
Flatly
Journal
Litera
Lumen
Lux
Materia
Minty
Morph
Pulse
Quartz
Sandstone
Simplex
Sketchy
Slate
Solar
Spacelab
Superhero
United
Vapor
Yeti
Zephyr
Note: Please make sure to include the PerfectApp\Http\Cookie class in your project to use ThemeSelector