HTML TemplatesFlash TemplatesWordPress ThemesDrupal Themese107 ThemesFree Joomla TemplatesXOOPS ThemesphpBB StylesFree SMF ThemesMagento ThemesOpenCart ThemesosCommerce TemplatesPrestaShop TemplatesVirtueMart TemplatesZen Cart TemplatesTumblr Themes
Website Templates | Coupons | Blog | News | Reviews | Tutorials | Login

Geeklog News

Eclipse 1.0.0: A New Modern Theme for Geeklog

A new theme is now available for the Geeklog community: Eclipse 1.0.0.

Eclipse is a modern, responsive and customizable theme designed to improve both the public-facing experience of a Geeklog website and the daily work of administrators, editors and moderators.

This first stable release supports Geeklog 2.1.1 through 2.2.2 and PHP 5.6 through PHP 8.1, making it suitable for existing Geeklog installations as well as more recent environments.

The project is available on GitHub and can be installed as a standard Geeklog theme.

A Modern Theme While Keeping Geeklog Compatibility

One of the main goals of Eclipse is to modernize Geeklog without replacing the CMS conventions that existing sites and plugins rely on.

The theme provides a mobile-first responsive layout, improved typography, clearer navigation and redesigned administrative interfaces while retaining compatibility with Geeklog's existing template system.

Eclipse also inherits some compatibility templates from the standard Denim theme. For this reason, Denim must remain installed alongside Eclipse.

The result is a theme that can progressively modernize an existing Geeklog website without requiring a complete redesign of the CMS or its plugins.

Responsive Public Pages

Eclipse has been designed for modern screen sizes, from smartphones to large desktop displays.

The public layout includes:

  • responsive mobile-first page structures;
  • optional left and right sidebars;
  • improved content readability;
  • responsive articles, forms and tables;
  • four navigation styles;
  • five predefined accessible color palettes;
  • support for hierarchical navigation;
  • native rendering of menus generated by the Geeklog Menu plugin.

The theme can therefore adapt to different types of Geeklog sites while keeping the same underlying templates and content.

A Redesigned Geeklog Administration Interface

Eclipse also pays particular attention to the Geeklog administration area.

Command and Control, configuration screens, content lists, forms and the story editor have been refined to provide a more consistent interface.

The administration area remains familiar to existing Geeklog users, but navigation, spacing and visual hierarchy have been improved.

This is particularly useful for administrators who spend a significant amount of time managing articles, comments, plugins, configuration options and other site content.

Theme Studio: Customize Eclipse Directly from Geeklog

One of the main additions in Eclipse is the built-in Theme Studio.

Theme Studio provides a central interface for managing the appearance and configuration of Eclipse without manually editing theme files.

Depending on the operation, administrators can manage:

  • theme palettes;
  • navigation styles;
  • theme settings;
  • footer links;
  • live previews;
  • saved configuration history;
  • rollback to a previous configuration;
  • local theme ZIP updates.

Settings and history are stored as protected JSON data in a dedicated {path_data}-eclipse/ directory outside the public theme directory.

This approach keeps site-specific configuration separate from the distributed theme files.

Safer Theme Updates

Existing Eclipse installations can also be updated directly from:

Command and Control → Theme Studio → Updates

Administrators can upload an official Eclipse release ZIP from their local computer.

Before applying an update, Eclipse performs integrity checks and creates a safety backup. After the update, the Geeklog template cache is automatically cleared.

PHP's ZipArchive extension is only required when using this Theme Studio update feature.

As with any CMS theme or plugin update, administrators should still create a complete backup of the website and database before installing a new release.

Editorial, SEO and Recovery Helpers

Eclipse also includes several features aimed at content editors.

These include editorial and SEO helpers, configurable social sharing options and local draft recovery.

The objective is not to replace dedicated Geeklog plugins, but to make common publishing tasks easier directly from the theme.

Draft recovery can also help protect work when an editing session is interrupted unexpectedly.

Eclipse 1.0.0 Compatibility

The stable Eclipse 1.0.0 release supports:

  • Geeklog 2.1.1;
  • Geeklog 2.2.2;
  • PHP 5.6 through PHP 8.1.

PHP 5.6 is maintained as the parsing compatibility baseline. However, administrators should use a currently maintained PHP release whenever their hosting environment and Geeklog installation allow it.

The Denim theme must remain installed because Eclipse uses some of its templates for compatibility.

The server must also allow Eclipse to create its protected {path_data}-eclipse/ directory and provide writable temporary storage when ZIP updates are used.

How to Install Eclipse

For a new installation:

  1. Download the versioned Eclipse ZIP from the GitHub Releases section. Do not use GitHub's automatically generated source archive.
  2. Back up your Geeklog files and database.
  3. Extract the package so that the theme is installed in public_html/layout/eclipse/.
  4. Make sure public_html/layout/denim/ remains installed.
  5. Select Eclipse as the active Geeklog theme.
  6. Clear the Geeklog template cache once after installation.

After installation, it is recommended to test at least the home page, a complete article, login and password recovery pages, and the Command and Control administration area.

Help Test Eclipse

Although Eclipse 1.0.0 is the first stable release, feedback from different Geeklog installations remains very useful.

Community members are particularly invited to test the theme at approximately:

  • 360 CSS pixels;
  • 768 CSS pixels;
  • 1024 CSS pixels;
  • 1440 CSS pixels.

Useful test areas include public home and topic pages, articles, search, login, comments, multi-level navigation, administration lists, configuration screens and the story editor.

Theme Studio operations such as preview, save, ZIP update and rollback are also valuable areas to test.

Accessibility testing is welcome as well, particularly keyboard navigation, visible focus indicators, 200% browser zoom and reduced-motion preferences.

If you encounter a reproducible problem, please report it through the project's GitHub Issues section and include your Geeklog version, PHP version, browser, selected Eclipse palette and navigation style, the affected page and a screenshot when useful.

Please never include passwords, credentials, private server paths or session information in public issue reports.

Get Eclipse and Join the Testing

Eclipse 1.0.0 represents a new option for administrators who want to modernize the appearance and editing experience of a Geeklog website while retaining compatibility with existing Geeklog installations.

The project is released under the GNU General Public License v2 or later.

You can download Eclipse, review the source code, follow its development and report issues from the Eclipse repository on GitHub:

https://github.com/hostellerie/eclipse

Feedback, compatibility reports and contributions from the Geeklog community are welcome.

Read more...

Posted August 11, 2026 | 10:35 pm

Geeklog Analytics Plugin 1.1.2 Is Now Available

I'm pleased to announce the release of Analytics Plugin 1.1.2 for Geeklog.

This new version improves compatibility with older Geeklog and PHP environments, fixes the upgrade process for the GA4 Property ID configuration, removes obsolete Google Analytics code, and updates the plugin documentation.

The latest version is available on GitHub:

https://github.com/Geeklog-Plugins/analytics

Google Analytics 4 Integration for Geeklog

The Analytics plugin allows Geeklog administrators to integrate Google Analytics 4 (GA4) directly into their website.

The plugin handles the GA4 tracking code on public pages and also provides an administration dashboard where authorized administrators can view useful traffic information without leaving Geeklog.

The dashboard can display key traffic indicators for:

  • Yesterday
  • The last 7 days
  • The last 30 days
  • Traffic evolution over the previous 30 days

To use the administration dashboard, you need a Google Cloud project with the Google Analytics Data API enabled and the required GA4 configuration.

Geeklog 2.1.1 Compatibility Added

One of the main changes in Analytics 1.1.2 is broader compatibility.

The plugin can now officially be installed on:

  • Geeklog 2.1.1 or later
  • PHP 5.6 or later

For new installations, I still recommend a more recent environment:

  • Geeklog 2.2.2 or later
  • PHP 8.1

This extended compatibility can be particularly useful for administrators who still operate older Geeklog installations and want to prepare a gradual migration toward Geeklog 2.2.2 and a current PHP release.

Improved Plugin Upgrade Process

Analytics 1.1.2 also fixes an important configuration issue when upgrading from an earlier version.

The administration dashboard requires both the Google Analytics configuration and the numeric GA4 Property ID used by the Google Analytics Data API.

Version 1.1.2 now checks the existing Analytics configuration during an upgrade and automatically creates the missing property_id configuration entry when necessary.

This means existing installations can upgrade without having to manually recreate the plugin configuration.

Obsolete Google Analytics API Code Removed

Another important cleanup concerns the old Google Analytics API implementation.

Analytics 1.1.2 removes the legacy Google Analytics GData API library that was still included in the plugin sources.

This code belonged to a much older generation of the Google Analytics API and is no longer required by the current GA4 implementation.

The plugin now focuses on the modern Google Analytics integration used by its current dashboard.

Removing this obsolete component also makes the codebase easier to understand and maintain.

Updated Geeklog Integration

Several smaller changes improve the plugin's integration with Geeklog.

The access-denied administration page has been modernized to use Geeklog's current HTML document rendering approach.

The plugin configuration values used by the administration dashboard are also cleaned before use, which prevents accidental whitespace in values such as:

  • GA4 Measurement ID
  • Google OAuth Client ID
  • GA4 Property ID

The plugin homepage now points directly to the GitHub repository, making it easier to find the documentation, source code, releases and issue tracker.

Updated Documentation

The README and compatibility information have been updated for version 1.1.2.

The documented requirements are now:

  • Geeklog 2.1.1 or higher
  • PHP 5.6 or higher
  • A modern browser with JavaScript enabled
  • A Google Cloud project with the Google Analytics Data API enabled

Geeklog 2.2.2 and PHP 8.1 or later remain the recommended environment.

Legacy language documentation has also been cleaned up so that it correctly describes the Analytics plugin instead of referencing older example plugin documentation.

Download Analytics 1.1.2

The complete source code and latest version are available from the Geeklog-Plugins organization on GitHub:

https://github.com/Geeklog-Plugins/analytics

If you already use Analytics 1.1.1, upgrading to 1.1.2 is recommended, especially because of the improved GA4 Property ID migration and the cleanup of obsolete code.

If you maintain an older Geeklog 2.1.1 installation, this release also gives you the opportunity to test the current GA4 integration before migrating your website to Geeklog 2.2.2.

Help Test the Plugin

I invite Geeklog users and developers to test Analytics 1.1.2 on different Geeklog and PHP configurations.

Feedback about installations, upgrades, Google Analytics Data API configuration and compatibility is particularly useful.

If you encounter a problem or have an idea for improving the plugin, you can report it through the GitHub repository.

This feedback will help improve the Analytics plugin and make modern analytics integration easier to use across the Geeklog community.

Read more...

Posted August 10, 2026 | 7:28 am

New Analytics Plugin for Geeklog 2.2.2: Google Analytics 4 Integration

A new Analytics plugin for Geeklog 2.2.2 is now available for testing. The plugin integrates Google Analytics 4 directly into Geeklog and provides both frontend visitor tracking and an analytics dashboard in the administration area.

Version 1.1.1 can be downloaded from GitHub:

https://github.com/Geeklog-Plugins/analytics/releases/tag/v1.1.1

Google Analytics 4 Integration

The Analytics plugin adds the Google Analytics 4 gtag.js tracking code automatically to your Geeklog website.

You only need to configure your GA4 Measurement ID in the Geeklog Configuration interface.

The plugin currently provides:

  • Google Analytics 4 frontend tracking
  • Automatic gtag.js integration
  • GA4 Measurement ID configuration
  • Google Analytics Data API integration
  • An analytics dashboard inside the Geeklog administration area
  • Traffic evolution for the last 30 days
  • KPI summaries for yesterday, the last 7 days and the last 30 days
  • Browser-side caching to reduce API requests and repeated OAuth authorization

Analytics Dashboard in Geeklog

In addition to the standard GA4 tracking code, the plugin can retrieve statistics from the Google Analytics Data API.

This makes it possible to view basic traffic information directly from the Geeklog administration area without opening Google Analytics every time.

To use the dashboard, you need:

  • a GA4 Property ID;
  • a Google Cloud project;
  • the Google Analytics Data API enabled;
  • a Google OAuth Client ID;
  • access to the GA4 property with at least Viewer permission.

The Google account is authorized from the Analytics plugin administration page.

Requirements

The current release requires:

  • Geeklog 2.2.2 or later
  • PHP 7.4 or later
  • a Google Analytics 4 property
  • a Google Cloud project with the Google Analytics Data API enabled

Download Analytics 1.1.1

The plugin is available from the Geeklog-Plugins organization on GitHub:

https://github.com/Geeklog-Plugins/analytics

The current release can be downloaded directly here:

https://github.com/Geeklog-Plugins/analytics/releases/tag/v1.1.1

The plugin archive can then be installed from the standard Geeklog plugin administration page.

Help Us Test the Plugin

This is a new plugin and feedback from the Geeklog community would be very useful.

If you are running Geeklog 2.2.2, please test the plugin on your development or test website and let us know how it works with your configuration.

In particular, feedback about the following areas would be helpful:

  • plugin installation and configuration;
  • GA4 tracking;
  • Google OAuth authorization;
  • Google Analytics Data API access;
  • dashboard display;
  • PHP compatibility;
  • browser compatibility;
  • errors, warnings or unexpected behavior.

If you find a problem, please open an issue on GitHub and include as much information as possible about your Geeklog and PHP environment:

https://github.com/Geeklog-Plugins/analytics/issues

Suggestions and contributions are also welcome.

Thanks to everyone willing to test the Analytics plugin and help improve it for the Geeklog community.

Read more...

Posted August 8, 2026 | 12:25 am

Eclipse for Geeklog: First Public Testing Release Now Available

The first public testing release of Eclipse, a modern and customizable theme for the Geeklog CMS, is now available on GitHub.

Eclipse has been developed to modernize both the public-facing website and the content management experience while preserving compatibility with Geeklog’s existing architecture.

The current release, Eclipse 1.0.0-rc53, is a release candidate intended for testing, staging environments and community feedback. It should not yet be considered the final stable version.

You can discover the project and download the release from:

https://github.com/hostellerie/eclipse

A Modern Theme for Geeklog

Eclipse provides a responsive, mobile-first layout designed to make Geeklog websites easier to read, navigate and manage on different screen sizes.

The theme supports optional sidebars and includes several layout, navigation and color customization options. Its objective is not only to refresh the appearance of Geeklog websites, but also to improve the experience of administrators, editors and visitors.

Main Features

This first testing release includes:

  • A responsive, mobile-first public layout
  • Optional left and right sidebars
  • Four navigation styles
  • Five accessible color palette presets
  • Native rendering of hierarchical menus provided by the Geeklog Menu plugin
  • Improved administration pages, forms and tables
  • A redesigned story editor interface
  • Configurable social sharing options
  • SEO and editorial assistance tools
  • Local draft recovery
  • Improved keyboard navigation and visible focus indicators
  • Reduced-motion support
  • A built-in Theme Studio

Built-in Theme Studio

One of the main features of Eclipse is its integrated Theme Studio.

Theme Studio allows administrators to customize and maintain the theme directly from Geeklog’s Command and Control area. It includes:

  • Live previews
  • Palette selection
  • Theme settings management
  • Configuration history
  • Rollback support
  • Local ZIP update installation
  • Update integrity validation
  • Automatic safety backups
  • Automatic clearing of the Geeklog template cache

Theme settings are stored in Geeklog’s path_data directory rather than inside the theme directory. This helps protect the configuration when the theme is updated.

Existing Eclipse installations can install a new version through:

Command and Control → Theme Studio → Updates

Requirements

The current Eclipse release requires:

  • Geeklog 2.1.1 or later
  • A writable Geeklog path_data directory
  • The Denim theme to remain installed
  • PHP ZipArchive when using the local update installer

Eclipse currently inherits some compatibility templates from Denim, so the public_html/layout/denim/ directory must not be removed.

Although the theme uses PHP 5.3 as its parsing baseline, using a currently maintained PHP version is strongly recommended.

Installing the Test Release

Before installing Eclipse, back up your website files and database.

Download the versioned ZIP archive from the GitHub Releases section. Do not use the automatic source-code archive generated by GitHub, because it may not have the correct installable structure.

Extract the archive so that the theme is installed in:

public_html/layout/eclipse/

Make sure the Denim theme remains available in:

public_html/layout/denim/

You can then select Eclipse as the active Geeklog theme and clear the template cache once.

After installation, test at least:

  • The home page
  • Topic and article pages
  • Search results
  • Login and password recovery
  • Comment pages
  • Administration pages
  • The story editor
  • Theme Studio

Community Testing and Feedback

This release needs testing across different Geeklog installations, PHP versions, browsers and screen sizes.

When possible, please test the theme at widths of:

  • 360 pixels
  • 768 pixels
  • 1024 pixels
  • 1440 pixels

Testing is particularly useful for multi-level navigation, the available palettes, administration pages, keyboard navigation, 200% browser zoom, reduced-motion settings and Theme Studio updates or rollbacks.

Reproducible problems can be reported through GitHub Issues:

https://github.com/hostellerie/eclipse/issues

When reporting an issue, please include:

  • Your Geeklog version
  • Your PHP version
  • Your browser and version
  • The selected palette
  • The selected navigation style
  • The affected page or route
  • A screenshot when relevant
  • The steps required to reproduce the problem

Do not include passwords, private server paths, session data or other sensitive information.

An Open-Source Theme

Eclipse is distributed as open-source software under the GNU General Public License version 2 or later.

Developers and Geeklog users can inspect the source code, test the theme, report problems and contribute improvements through the GitHub repository.

This first public release is an important step, but Eclipse still needs real-world testing before the final stable version can be published.

Download Eclipse, install it on a staging website and share your feedback with the Geeklog community:

https://github.com/hostellerie/eclipse

Read more...

Posted August 6, 2026 | 5:20 am

Geeklog Plugin Toolkit 0.3.0 Released

I am pleased to announce the release of Geeklog Plugin Toolkit 0.3.0, a major update designed to simplify the creation of plugins for Geeklog 2.2.2 and PHP 8.1 or later.

The toolkit provides a command-line Plugin Generator called plgen.php. It creates an installable plugin skeleton containing the main files and structures required to start a new Geeklog plugin.

This release modernizes both the generator and the generated templates while making the creation process safer and more flexible.

What’s New in Version 0.3.0

Safer Plugin Generation

The generator now builds each plugin inside a temporary directory.

The final plugin directory is created only after all files have been generated successfully. Temporary files are automatically removed if an error occurs.

The generator also refuses to overwrite an existing plugin directory or ZIP archive, helping protect previous development work.

Versioned ZIP Archives

The toolkit can now automatically create a ZIP archive ready for testing, installation, or distribution.

Archives use the following naming format:

plugin-version-geeklogversion.zip

For example:

myplugin-1.0-2.2.2.zip

The generated archive contains the plugin directory as its root, making it suitable for installation through Geeklog’s plugin administration interface.

The generator uses PHP’s ZipArchive class when available. If it is unavailable, it attempts to use PharData.

Flexible Output Location

The toolkit no longer needs to be executed from its own directory.

You can keep the toolkit in one location and generate plugins inside separate project directories:

cd /path/to/my-projects
php /path/to/plugin-toolkit/plgen.php

The plugin directory and its optional ZIP archive will be created in the current working directory.

Improved Input Validation

The generator now validates important information before creating any files, including:

  • the internal plugin name;
  • the plugin version;
  • the minimum Geeklog version;
  • the author’s email address;
  • the plugin homepage URL;
  • yes-or-no answers.

A complete configuration summary is displayed before generation, allowing you to check the selected values before continuing.

Geeklog 2.2.2 and PHP 8 Support

The generated plugin skeleton now targets Geeklog 2.2.2 by default and requires PHP 8.1 or later.

The minimum Geeklog version remains configurable when running the generator.

Generated public and administration pages use modern Geeklog rendering functions such as:

COM_createHTMLDocument()
COM_output()

The templates also include updated autoinstall structures, modern error handling, UTF-8 recommendations, and examples compatible with current PHP versions.

Security and Permission Examples

Generated administration forms include examples using Geeklog’s CSRF protection functions:

SEC_createToken()
SEC_checkToken()

The plugin skeleton also contains examples of permission checks and access control.

These examples provide a safer starting point, but developers must still review and adapt them to their plugin’s actual requirements.

Updated Database Templates

Optional SQL templates now use modern defaults, including:

ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4
COLLATE=utf8mb4_unicode_ci

Developers should review the generated schema and adapt field types, indexes, keys, upgrade procedures, and removal behavior before using it in production.

Improved Template Processing

Optional template sections now support nesting and stricter syntax validation.

Malformed or unclosed sections stop the generation process with a readable error instead of silently producing incomplete files.

PHP-only files are also generated without a closing PHP tag, reducing the risk of accidental whitespace output and HTTP header errors.

What the Toolkit Generates

Depending on the selected options, the generated plugin can include:

  • an autoinstall.php file;
  • a functions.inc file;
  • public and administration pages;
  • an administration icon;
  • an English language file;
  • optional MySQL and Microsoft SQL installation files;
  • optional Geeklog Configuration UI defaults;
  • installation, upgrade, and uninstallation support;
  • a versioned ZIP distribution archive.

The toolkit creates the technical foundation of a Geeklog plugin. Developers must then implement the plugin’s features, database logic, administration actions, public pages, configuration options, and integrations.

How to Use It

The Plugin Generator requires the command-line version of PHP.

Clone or download the repository, then run:

cd plugin-toolkit
php plgen.php

Follow the questions displayed in the console. Default values appear in square brackets and can be accepted by pressing Enter.

Download and Contribute

The source code may soon be available on GitHub:

https://github.com/Geeklog-Core/plugin-toolkit

Developers are invited to test the generator, review the generated plugin structure, report issues, and suggest improvements.

Before releasing a generated plugin, it should be tested on a clean Geeklog 2.2.2 installation, with its generated archive, on supported PHP versions, and with different Geeklog themes.

Read more...

Posted August 6, 2026 | 4:07 am

Videos Plugin 0.17.1 Available for Testing

I am looking for Geeklog users and developers who would like to test a new development version of the Videos plugin.

The plugin provides a complete YouTube video catalogue for Geeklog, with content discovery, playback, ratings, recommendations, rankings, moderation tools and privacy controls.

The source code is available on GitHub:

https://github.com/Geeklog-Plugins/videos

Version 0.17.1 is a development release intended for testing. It should not yet be considered a stable production release. Please create a backup before installing it or upgrading an existing test installation.

Compatibility

  • Geeklog 2.1.1 through Geeklog 2.2.2
  • PHP 5.6 through PHP 8.1
  • YouTube Data API v3
  • No plugin-owned database table

The plugin uses PHP 5.6-compatible syntax so the same codebase can be tested across several Geeklog and PHP versions.

Main features

The current development version includes:

  • Automated installation and upgrades through Geeklog
  • Native Geeklog permissions, groups and configuration
  • YouTube Data API v3 searches
  • API quota monitoring and cache management
  • A public video catalogue with pagination
  • Standard and minimal YouTube player modes
  • Local video ratings
  • Qualified-view tracking
  • Personal viewing history for registered users
  • Next-video recommendations without additional YouTube API requests
  • Local video and channel rankings
  • Public ranking pages
  • A configurable dynamic Geeklog block
  • Video and channel moderation
  • Unavailable-video filtering
  • Optional YouTube Shorts filtering
  • A permanent catalogue pool
  • SEO metadata, Open Graph data and VideoObject structured data
  • Visible FAQ sections with optional FAQPage structured data
  • User data export and deletion controls

Shared video discovery

Version 0.17.0 introduced a shared discovery reservoir designed to maintain a catalogue containing several hundred videos.

Instead of making a new YouTube search for every visitor, the plugin maintains a shared collection of compact video references. The default reservoir can contain up to 500 references, while the public catalogue can expose up to 300 videos through pagination.

Administrators can manually seed the reservoir using several distinct searches. Later renewals are shared and performed lazily, with no more than one search during the configured refresh interval.

The catalogue can combine recent videos with results selected by relevance, views and ratings. When YouTube or the local API quota is unavailable, the existing reservoir remains usable.

Protected persistent storage in version 0.17.1

Version 0.17.1 changes where the plugin stores its persistent JSON data.

Geeklog 2.2.2 can remove most directories located directly inside path_data when an administrator uses the native Clear Cache operation. This could remove persistent plugin information if it were stored in path_data/videos.

To prevent this, the Videos plugin now creates a separate sibling directory derived from each site's path_data setting.

path_data = /private/data/S1/ Videos = /private/data/S1-videos/

This approach also preserves isolation between sites in a Geeklog multisite installation.

An administrator may define a different absolute storage location before Geeklog loads the plugin:

$_CONF['videos_data_path'] = '/private/persistent/S1/videos/';

Relative paths, parent-directory traversal and locations inside path_data are rejected.

Migration from an earlier version

After an upgrade, the plugin detects data stored in the former path_data/videos directory.

Valid JSON files are copied to the new persistent directory using locking, validation and atomic file replacement. Existing valid destination files are not overwritten.

The original directory is preserved as a recovery copy and is never removed automatically. Corrupt files are also left in the legacy directory instead of being silently copied.

The administration status page displays the active storage path, the detected legacy path and the result of the first migration attempt.

Privacy and data storage

The plugin does not create its own SQL database table. Geeklog still uses its existing core tables to register the plugin, permissions, groups and configuration values.

Plugin-specific information is stored in protected JSON files.

For registered users, the plugin stores a keyed pseudonymous account hash. It does not store the Geeklog user ID, name or email address in its JSON data files.

Registered users can export their personal plugin data and explicitly delete their ratings, history, preferences and recommendation records. Personal data linked to an account is otherwise retained without automatic expiration.

Moderation records contain a keyed hash of the moderating account, the decision date and a bounded internal reason. They do not contain the administrator's name, email address or clear Geeklog user ID.

What needs testing

I would particularly appreciate feedback about:

  • Fresh installation on Geeklog 2.1.1 and 2.2.2
  • Upgrading from an earlier Videos plugin version
  • PHP 5.6, PHP 7.x and PHP 8.1 compatibility
  • Single-site and multisite installations
  • Migration from path_data/videos to the new persistent directory
  • Plugin behaviour after using Geeklog's Clear Cache function
  • YouTube API configuration and quota handling
  • Catalogue seeding and shared reservoir renewal
  • Search caching and fallback behaviour
  • Video playback and qualified-view tracking
  • Ratings, history and recommendations
  • Video and channel rankings
  • Moderation and blocked-content filtering
  • Public pages with different Geeklog themes
  • Responsive administration pages
  • SEO metadata and structured data
  • Account export and deletion tools

How to report a problem

Please report bugs, compatibility problems and suggestions through the GitHub repository:

https://github.com/Geeklog-Plugins/videos/issues

When reporting an issue, please include:

  • Your Geeklog version
  • Your PHP version
  • Your web server and operating system when relevant
  • Whether this was a fresh installation or an upgrade
  • The previous plugin version when upgrading
  • The steps required to reproduce the problem
  • The complete error message or relevant log entry
  • The Geeklog theme used during the test

Please do not publish your YouTube API key, private storage paths, account hashes or other confidential configuration values in a public issue.

Contributions are welcome

The plugin is still under active development. Testing across different Geeklog versions, PHP environments, themes and multisite configurations will help identify problems before the first stable release.

Code reviews, bug reports, documentation improvements, translations and pull requests are welcome.

Thank you to everyone who can install this development version and share useful feedback.

Read more...

Posted August 5, 2026 | 5:43 am

🧠 Boost Your Geeklog SEO with AI-Generated Meta Tags

Automatically create meta descriptions, keywords, and SEO titles for your articles

In modern SEO, small details often make a big difference. Meta tags such as meta_descriptionmeta_keywords, and page_title still play an essential role in how your content is displayed and understood by search engines. They directly influence how your stories appear in results, and therefore how often users click them.

I’ve recently built a simple, lightweight utility that helps Geeklog site administrators automatically generate these fields using OpenAI’s API. It works with any Geeklog 2.x site and doesn’t require additional plugins or modifications.


⚙️ Simple, fast, and content-friendly automation

The Geeklog AI SEO Updater connects directly to the Geeklog database and detects any stories missing a meta_description. For each one, it uses the gpt-4o-mini model to analyze the article’s title and introduction, then generates:

  • short optimized meta description (≤ 155 characters),
  • list of relevant meta keywords (5–10 per story),
  • and a SEO-friendly page title (≤ 65 characters).

The script automatically detects the language of your site from $_CONF['language'] — it works in French, English, German, Spanish, Italian, and Japanese. You can test results safely in preview mode (?dry=1) or apply them in update mode with a defined article limit.


🔍 Why meta tags still matter

While modern search engines rely on full-page analysis, meta descriptions remain key to how your site looks in results. They act as your article’s “headline” on Google or Bing and have a strong effect on click-through rate.

Meta keywords, even though no longer used by Google for ranking, remain valuable inside Geeklog. They can be used for internal linking or automated features such as:

  • related stories system that connects articles with similar topics,
  • tag cloud for quick exploration,
  • or a contextual search module based on shared keywords.

💡 For example, another script could automatically link stories that share two or more identical keywords, creating a stronger internal SEO structure.


🚀 Benefits for site administrators

  • Save hours updating metadata across hundreds of stories.
  • Keep consistent SEO formatting site-wide.
  • Improve visibility and click performance in search results.
  • Optionally notify Bing through the IndexNow plugin after each update.

The script only updates stories with empty meta descriptions and checks that you have the proper story.edit admin rights before execution.


🧩 Example usage

# Preview mode (no database update)
https://yourdomain.com/admin/utils/update_meta.php?dry=1

# Update 10 stories
https://yourdomain.com/admin/utils/update_meta.php?limit=10

You can also schedule it as a weekly cron job to automatically optimize metadata for newly published stories.


💡 A foundation for smarter features

This script lays the groundwork for more semantic features inside Geeklog. The generated keywords can later feed new modules such as:

  • AI-related stories based on keyword similarity,
  • smart internal linking or tag clusters,
  • or even advanced search filtering.

By combining Geeklog’s simplicity with AI-assisted metadata, content becomes easier to navigate and better structured for both users and search engines.


📦 Availability

The full documented code is available on the Geeklog Community Forum: 👉 https://www.geeklog.net/forum/index.php?forum=10

It supports PHP 5.6 +, Geeklog 2.x, and optionally integrates with the IndexNow plugin to notify Bing. Every line of the shared version is commented for easy understanding and adaptation.


🧭 Final thoughts

With this AI-powered updater, Geeklog proves it can stay modern and efficient without losing its core simplicity. This approach helps keep older content relevant, visible, and better connected — with minimal effort and full control from the admin panel.

🧩 Author: Ben, Geeklog community contributor Discuss and download on the forum: https://www.geeklog.net/forum/index.php?forum=10

Read more...

Posted October 28, 2025 | 7:41 pm

Run Multiple Geeklog Sites from a Single Installation

I currently run several independent Geeklog websites — each with its own database, theme, and data — using one shared installation of Geeklog. This setup is simple, efficient, and ideal for multilingual or multi-domain projects.


🧩 The Concept

Geeklog is normally designed to run one site per installation. In this setup, all sites share the same core codebase, but db-config.php and siteconfig.php detect the domain name ($_SERVER['HTTP_HOST']) to load the correct configuration for each website.

Each domain gets:

  • Its own database (for isolated content)
  • Its own folders for data, logs, and images
  • Its own theme and URL settings

All logic resides inside the standard Geeklog configuration files — no plugins, no external includes.


⚙️ Example of db-config.php

📁 File location:

/home/exampleuser/db-config.php
if (strpos(strtolower($_SERVER['PHP_SELF']), 'db-config.php') !== false) {
  die('This file can not be used on its own!');
}

global $_DB_host, $_DB_name, $_DB_user, $_DB_pass, $_DB_table_prefix, $_DB_dbms;

$_DB_table_prefix = 'gl_';
$_DB_dbms = 'mysql';

// Site One
if ($_SERVER['HTTP_HOST'] == 'www.site-one.com' || $_SERVER['HTTP_HOST'] == 'site-one.com') {
  $_DB_host = 'localhost';
  $_DB_name = 'db_site_one';
  $_DB_user = 'user_site_one';
  $_DB_pass = 'password_one';
}

// Site Two
if ($_SERVER['HTTP_HOST'] == 'site-two.com') {
  $_DB_host = 'localhost';
  $_DB_name = 'db_site_two';
  $_DB_user = 'user_site_two';
  $_DB_pass = 'password_two';
}

This allows Geeklog to connect to a different database depending on which domain is being visited.


⚙️ Example of siteconfig.php

📁 File location:

/home/exampleuser/public_html/siteconfig.php
if (strpos(strtolower($_SERVER['PHP_SELF']), 'siteconfig.php') !== false) {
  die('This file can not be used on its own!');
}

global $_CONF, $_CONF_FCK;

// Common paths
$_CONF['path'] = '/home/exampleuser/';
$_CONF['path_system'] = $_CONF['path'] . 'system/';
$_CONF['path_html'] = $_CONF['path'] . 'public_html/';
$_CONF['path_language'] = $_CONF['path'] . 'language/';
$_CONF['path_editors'] = $_CONF['path_html'] . 'editors/';
$_CONF['path_pear'] = $_CONF['path'] . 'system/pear/';

$_CONF['default_charset'] = 'utf-8';

// Site One
if ($_SERVER['HTTP_HOST'] == 'www.site-one.com' || $_SERVER['HTTP_HOST'] == 'site-one.com') {
  $_CONF['path_data'] = $_CONF['path'] . 'data/site-one/';
  $_CONF['path_log'] = $_CONF['path'] . 'logs/site-one/';
  $_CONF['path_images'] = $_CONF['path_html'] . 'images/site-one/';
  $_CONF['cookiedomain'] = 'site-one.com';
}

// Site Two
if ($_SERVER['HTTP_HOST'] == 'site-two.com') {
  $_CONF['path_data'] = $_CONF['path'] . 'data/site-two/';
  $_CONF['path_log'] = $_CONF['path'] . 'logs/site-two/';
  $_CONF['path_images'] = $_CONF['path_html'] . 'images/site-two/';
  $_CONF['site_url'] = 'https://site-two.com';
  $_CONF['site_admin_url'] = 'https://site-two.com/admin';
  $_CONF['theme'] = 'custom_theme_two';
  $_CONF['cookiedomain'] = 'site-two.com';
}

Each domain now loads its own paths and design while still relying on the same core Geeklog system files.


🚀 Why It Works So Well

  • One shared codebase: only one Geeklog installation to maintain and update.
  • Isolated data: each domain uses its own database and storage folders.
  • Native integration: no plugin, no additional layer — 100% Geeklog compliant.
  • Easy expansion: adding a new site means adding a few simple lines to both config files.

This approach is particularly useful for multilingual setups or networks of related projects.


⚠️ Limitation During Updates

The only drawback: during a Geeklog update, the installer might overwrite db-config.php and siteconfig.php. Since your multi-site logic lives in these two files, you’ll need to reapply your domain rules after each update.


🧰 Recommended Maintenance Steps

Before updating Geeklog:

cp /home/exampleuser/db-config.php /home/exampleuser/backups/db-config.php.backup
cp /home/exampleuser/public_html/siteconfig.php /home/exampleuser/backups/siteconfig.php.backup

After the update:

  1. Open the new configuration files installed by Geeklog.
  2. Copy back your domain detection blocks.
  3. Save and test your websites — everything should work immediately.

This process takes only a minute and keeps the setup compatible with all Geeklog releases.


🧠 Why Keep This Method

Even if two files must be updated manually after each upgrade, this solution remains the simplest, most stable, and easiest to understand.

  • No external dependencies
  • No plugin management
  • No risk of incompatibility
  • Full control over each site’s configuration

In short, it’s the perfect balance between flexibility and simplicity: a single Geeklog installation serving multiple, completely independent sites.

Read more...

Posted October 20, 2025 | 8:26 pm

New Plugin: Maintenance Mode for Geeklog

We’re excited to announce the release of the Maintenance Plugin, a simple yet powerful way to place your Geeklog site into maintenance mode whenever you need to perform updates, upgrades, or testing.

When maintenance mode is enabled, regular visitors and non-administrative users see a customizable maintenance message instead of your website content. Root users, however, can continue accessing and managing the site normally — with a clear red alert banner reminding them that maintenance mode is active.


✨ Key Features

  • Activate or deactivate maintenance mode directly from the Configuration panel
  • Display a custom message to visitors during maintenance
  • Automatically sends a 503 Service Unavailable response to search engines like Google and Bing, so they know to return later
  • Shows a red admin alert banner when the site is under maintenance
  • Automatically creates the PHP block maintenance_check for status display
  • Fully compatible with Geeklog 2.1.1 and newer versions (2.2.x)

🧩 Installation

  1. Download the plugin from GitHub: 👉 https://github.com/Geeklog-Plugins/maintenance

  2. Copy the maintenance/ folder to your /plugins/ directory.

  3. Log in as a Root user and go to: Admin → Plugins → Install New Plugin

  4. Click Install next to Maintenance — and that’s it!

You’ll find new configuration options under Admin → Configuration → Maintenance, where you can toggle the mode and edit your maintenance message.


🧾 License

This plugin is open-source software released under the GNU General Public License v2 (or later). You’re free to use, modify, and redistribute it under the same license.


👤 Credits

Developed and maintained by Ben, with community support. Special thanks to all contributors who keep Geeklog flexible and up to date.

Read more...

Posted October 18, 2025 | 7:20 pm

Introducing the AmazonLinks Plugin for Geeklog

We’re happy to announce the release of the AmazonLinks Plugin, a lightweight and practical addition for Geeklog users who want to enrich their articles with relevant affiliate links automatically.

🔍 What It Does

The plugin scans each article’s content for specific keywords defined in a configuration file and displays a small block of stylish, clickable buttons linking to relevant Amazon products. It’s ideal for blogs, review sites, or any publication that wants to recommend related books, tools, or resources — while generating affiliate revenue effortlessly.

⚙️ Key Features

  • Automatic keyword detection: Finds matching terms in the article body.
  • Customizable configuration: Keywords, labels, and URLs are managed in a single file (amazonlinks_config.php) located in the /data directory.
  • Affiliate tag support: Append your own Amazon affiliate tag easily.
  • Modern design: Clean, blue call-to-action buttons optimized for click-throughs.
  • Safe and simple: No database tables or dependencies.
  • Full Geeklog integration: Works directly through the standard template hook system.

🧩 Installation

  1. Upload the plugin folder to your /plugins/ directory.
  2. Install it from the Plugin Administration Panel in Geeklog.
  3. Copy the provided amazonlinks_config.php file to your /data directory and adjust the keywords, titles, and affiliate tag to match your site.
  4. Edit your article template to include the variable {amazonlinks} below the story body section.

That’s it — the plugin will automatically add your affiliate block below your articles.

🧠 Example Use Case

If your article mentions “business strategy”“finance”, or “leadership”, the plugin can automatically insert relevant buttons such as: “Recommended Business Books” or “Top Leadership Guides” — each linking to Amazon products you’ve configured.

📦 Source & Documentation

The complete source code and setup instructions are available on GitHub: 👉 https://github.com/Geeklog-Plugins/amazonlinks

Read more...

Posted October 16, 2025 | 9:51 pm
About | Contact | FAQ | Privacy Policy | Terms of Use

© 2006-2026 überbytes LLC