No description
- PHP 63.7%
- Python 18.1%
- JavaScript 9.2%
- CSS 7.9%
- Shell 1.1%
| .claude | ||
| docs | ||
| mod_google_reviews | ||
| pkg_google_reviews | ||
| plans/reports | ||
| plg_task_google_reviews | ||
| .env.example | ||
| .gitignore | ||
| build-package.sh | ||
| CLAUDE.md | ||
| docker-compose.yml | ||
| mod_google_reviews.zip | ||
| PROJECT_STATUS.md | ||
| README.md | ||
| requirement.md | ||
Google Reviews Module for Joomla
Display Google Business Profile reviews on your Joomla website with an elegant carousel and optional detail panel.
Version: 1.4.0 Compatibility: Joomla 4.x / 5.x / 6.x License: GNU GPL v2 or later
Features
- Google Business Profile API - OAuth 2.0 integration to fetch all reviews (unlimited)
- Places API Fallback - API key-based fallback with 5-review limit
- Responsive Carousel - Smooth, touch-friendly review slider powered by Swiper.js
- Review Detail Panel - Click any review to see the full text in a slide-in panel
- Rating Summary - Display overall rating and total review count
- Theme Presets - Light, Dark, ExpertSA, and fully Custom themes
- Custom CSS Tab - Write CSS rules auto-scoped to your module instance
- Full Customization - Colors, card styles, corner rounding, shadows, photo sizes
- Navigation Positions - Center, top-left, top-right, bottom-left, bottom-right
- Filtering - Show only reviews above a minimum rating
- Sorting - Most recent or highest rated first
- Multi-language - English and French included, with original/translated text toggle
- Review Text Parsing - Automatically separates translated and original text
- Caching - Reviews are cached to minimize API calls
- Scheduled Refresh - Joomla Task Scheduler integration for automatic cache updates
Requirements
- Joomla 4.0+ (tested up to Joomla 6)
- PHP 8.0+
- Option 1 (OAuth): OAuth Client ID & Secret for Google Business Profile API (business owner only)
- Option 2 (API Key): Google Places API key (Get one here)
Installation
Option 1: Upload ZIP (Recommended)
- Download
mod_google_reviews.zip - Go to Extensions → Install → Upload Package File
- Upload the ZIP file
- Go to Content → Site Modules and find "Google Reviews"
Option 2: Discover Installation
- Copy the
mod_google_reviewsfolder to/modules/ - Copy
mod_google_reviews/media/*to/media/mod_google_reviews/ - Go to Extensions → Discover
- Click Discover button, then install the module
Configuration
Basic Setup
- Go to Content → Site Modules → Google Reviews
- Enter your Google API Key
- Search for your business using the search field
- Select your business from the results (this sets the Place ID)
- Click Fetch Reviews to load reviews
- Set Position and Menu Assignment
- Save & Close
Display Options
| Option | Description |
|---|---|
| Show Summary | Display rating summary block above carousel |
| Max Reviews | Number of reviews to display (max 5 from API) |
| Sort Order | Most recent or highest rating first |
| Minimum Rating | Filter reviews by star rating |
| Reviews Per View | Number of cards visible at once (1-5) |
| Show Original Language | Show reviews in original language vs. translated |
Appearance Tab
Theme Presets:
- Default - Google-style with blue accents
- Dark - Dark mode with light text
- Minimal - Monochrome, no borders or shadows
- Branded - Your brand color as primary
- Custom - Full control over all colors
Layout Options:
- Card style (Minimal / Standard / Detailed)
- Corner rounding (Square to Large)
- Show/hide shadows
- Author photo size (32px / 40px / 56px)
- Review text lines (3-6 or unlimited)
- Custom navigation icons (upload SVG)
Review Detail Panel:
- Enable/disable click-to-expand
- Position (left or right)
- Width (narrow / medium / wide)
Custom CSS Tab
Write custom CSS rules that are automatically scoped to your module instance. Includes a collapsible reference of available CSS class names. All rules are sanitized for security.
Advanced Tab
| Option | Description |
|---|---|
| Cache Duration | Days to cache reviews (default: 30) |
| Module Class Suffix | CSS class suffix for styling |
| Custom CSS Class | Additional CSS classes |
API Options
Google Business Profile API (Recommended for all reviews):
- Unlimited reviews
- Requires business owner to authorize via OAuth 2.0
- Returns reviews in original language plus translations
- Automatic token refresh and error handling
Google Places API (Quick setup with limitations):
- Maximum 5 reviews per business (Google limitation)
- Only requires API key
- No business owner authorization needed
- Good for testing or limited review display
Troubleshooting
Module Not Displaying
- Check Status is set to "Published"
- Check Position matches your template
- Check Menu Assignment includes current page
No Reviews Showing
- Verify your API key is correct
- Click Fetch Reviews button in module settings
- Ensure the Place ID is set correctly
Carousel Not Sliding
If reviews appear stacked instead of sliding:
- Clear Joomla cache (System → Clear Cache)
- Check browser console for JavaScript errors
- Verify Swiper CSS is loading properly
Development
See docs/development.md for local development setup with Docker.
# Start Docker environment
docker-compose up -d
# Access Joomla at http://localhost:8080
File Structure
mod_google_reviews/
├── mod_google_reviews.xml # Module manifest
├── mod_google_reviews.php # Entry point (Joomla 4)
├── helper.php # AJAX bridge
├── services/provider.php # DI container (Joomla 5+)
├── src/
│ ├── Dispatcher/ # Joomla 5 dispatcher
│ ├── Helper/ # Business logic
│ ├── Api/ # Google API client
│ └── Field/ # Custom form fields
├── tmpl/ # Templates
├── media/
│ ├── css/ # Stylesheets
│ └── js/ # Swiper.js
├── language/ # en-GB, fr-FR
└── sql/ # Install/uninstall scripts
Credits
- Author: Expert SA
- Website: expertsa.fr
- Carousel: Swiper.js v11.2.10
License
GNU General Public License version 2 or later. See LICENSE.