RSS feed

XOOPS helping local students in Cincinnati to learn software development with

XOOPS is giving back to the community we live in, and is helping kids to learn software development!

This was just posted last week by Cincinnati Public Schools (you'll need to scroll to Jan. 13th)

Resized Image

Resized Image


XOOPS Security Patch Released

The XOOPS Development Team is pleased to announce the release of a security patch for XOOPS Final.

This patch for XOOPS corrects multiple issues.

We would like to specifically thank Tim Coen of (Curesec GmbH), who notified us about these issues.

All XOOPS 2.5.7 users are advised to apply this patch as soon as possible.

It is also recommended that all XOOPS administrators practice defense in depth, including:
- have the Protector module installed active
- stay current with all patches
- be cautious with administative account use (only when needed, no autologin)
- caution in clicking links in messages and other untrusted sources

Download: You can download the patch from XOOPS File Repository on SourceForge

NOTE 1: Any users that are running an older XOOPS version are advised to update to XOOPS now, which includes the patch.

You can find more information about the original XOOPS 2.5.7 release in this article


NOTE 2: Work continues on our next major release of XOOPS! To see what's coming, please check out our GitHub code repositories:

- XOOPS 2.6.0 Core

- XOOPS 2.6.0 Modules

- XOOPS 2.6.0 Roadmap

and especially the great work Eduardo (bitcero) is doing on:

- XOOPS 2.6.0 Enhanced Admin GUI

Please also check out our other Github repositories:

- XOOPS Documentation

- XOOPS current Themes

- XOOPS 2.5.x Modules

- XOOPS 2.0.14+ Themes, 3 columns

- XOOPS 2.0.14+ Themes (2 columns)

- XOOPS Theme Archive (Themes for XOOPS < 2.0.14)

- XOOPS Modules Archive
Read more... | 2 comments

Helium Admin Theme is coming to XOOPS 2.6.0

Eduardo (aka Bitcero) just shared a picture of his new Admin theme he is working on for to XOOPS 2.6.0. It is called "Helium" and as you can see below, it looks AWESOME!!!!

Resized Image

You can see it in a full glory and detail on GitHub

Eduardo is a true artist, and I love the fact that the them is using colors and that even the icons are also with colors! Too many CMS projects are using only one color for the theme, with all icons being in another color. That's way too boring!

Please help us with testing and with contributing to the next version of XOOPS!!!!

You can find some useful links for XOOPS 2.6.0 in this article

Happy Holidays & Happy New Year to ALL XOOPS Users and Friends!!!

Resized Image

For those who celebrate Christmas - Merry Christmas!

And for ALL of our users and friends of XOOPS, regardless of your faith: Happy New Year!!!

2016 will be a great year for XOOPS, as many of the things that we've been working on (especially Richard, our Core Team leader) will be finally coming to fruition!

To see what's coming, please check out our GitHub repositories:

- XOOPS 2.6.0 Core

- XOOPS 2.6.0 Modules

- XOOPS 2.6.0 Roadmap

and especially the great work Eduardo (bitcero) is doing on:

- XOOPS 2.6.0 Enhanced Admin GUI

Please also check out our other Github repositories:

- XOOPS Documentation

- XOOPS current Themes

- XOOPS 2.5.x Modules

- XOOPS 2.0.14+ Themes, 3 columns

- XOOPS 2.0.14+ Themes (2 columns)

- XOOPS Theme Archive (Themes for XOOPS < 2.0.14)

- XOOPS Modules Archive
Read more... | 5077 bytes more | 4 comments

Great progress on XOOPS 2.6.0 GUI

Eduardo posted latest updates from his work on XOOPS 2.6.0 GUI (or Presentation Layer)


New settings manager for modules. The new design is cleaner and responsive to maximize its functionality.

Dynamic settings. System is capable to load options dynamically to improve the development flow and updates.
Avoiding the old form tabs based on jQueryUI. Now bootstrap is fully integrated with tabs and, with this change, I'm prevent to embed HTML code in form PHP files.

Resized Image

Resized Image

Users management

Also the users management has been ported to new GUI.

Resized Image

Groups management

Groups management has been ported to new GUI.

Resized Image

More info about XOOPS 2.6.0 GUI and Eduardo's work: on GitHub
Read more... | 4 comments

eEmbed now included in XOOPS 2.6.0

Including and presenting Media has just become so much easier in the next version of XOOPS!

Richard just added the "oEmbed" capability to XOOPS 2.6.0

So what is oEmbed?

oEmbed is a format for allowing an embedded representation of a URL on third party sites. The simple API allows a website to display embedded content (such as photos or videos) when a user posts a link to that resource, without having to parse the resource directly, in other words, it allows embedding content from a website into another page.

An oEmbed exchange occurs between a consumer and a provider. A consumer wishes to show an embedded representation of a third-party resource on their own website, such as a photo or an embedded video. A provider implements the oEmbed API to allow consumers to fetch that representation.

In XOOPS, similar to 'Clickable' filter, Embed will process a URL alone on a line using the embed/embed package. For URLs supporting oEmbed, such as YouTube, the oembed result will be shown. For other URLs, a default media box, built from the page content, will be displayed. See example below of the code, and then representation provided thanks to oEmbed:

Resized Image

How cool is that?

You can test this version by forking or downloading it from our GitHub account

Shortcodes are coming to XOOPS 2.6.0 :D

Richard continues to doing amazing changes to XOOPS 2.6.0. The latest addition are "Shortcodes", which are probably best known from WordPress. I was actually hoping for it for a long, long time, and I was very happy to see that Richard has added it to XOOPS! YES!!!

It was possible thanks to refactoring of our old TextSanitizer. You can read more details from Richard's info on GitHub

MyTextSanitizer has become Xoops\Core\Text\Sanitizer.


- Single unified configuration file


- Extensions (i.e. YouTube) are now a SanitizerComponent, a base class that also includes Filters (i.e. Xss)

- Each SanitizerComponent auto-configures, and configuration is automatically updated with new additions

- Custom components can be added via response to core.sanitizer.configuration.defaults event

- ShortCodes (WordPress style) are now the basis of XoopsCode and extensions

- Custom ShortCodes can be added via response to

event, or by directly accessing the ShortCodes engine with


- All built-in components and shortcodes can be overridden with same named custom replacements

- Some extensions have updated syntax. For example:


can now be:

[youtube url="JxS5E-kZc2s" width="640" height="385" /]

(It also can use virtually any known YouTube URL as the url attribute.)

- Another example is SoundCloud, which now can directly support the "Wordpress code" option offered in the Share/Embed dialog on

The old styles are still accepted for compatibility with existing content, and not all extensions have conversions to new styles, yet. There is more work to be done, but the backing code is now in place.

What does it mean for XOOPS developers? We'll be able now to simplify a lot of activities around designing the best looking Websites for our users and customers!
Also our users will be able to add tons of cool features without any programming!

For those of you who never worked with ShortCodes, let's provide a short overview and a little tutorial. The basic classes that we'll be using, are the TextSanitizer classes refactored by Richard:

Resized Image

Currently we have following classes derived from FilterAbstract :

- Censor
- Clickable
- Quote
- SyntaxHighlight
- TextFilter
- Xss

and following classes derived from ExtensionAbstract:

- Flash
- Iframe
- Image
- Mms
- Mp3
- Rtsp
- SoundCloud
- UnorderedList
- Wiki
- Wmp
- XoopsCode
- YouTube

For our purposes we'll be using mainly the ExtensionAbstract class. Let's see now how can we use it to create ShortCodes for Google Charts and Google Maps (Read more-->)
Read more... | 25896 bytes more | 6 comments

XOOPS 2.6.0 Goes PSR-4 plus Other Core Enhancements

1) Richard is powering forward with some very cool enhancements for the Core of XOOPS 2.6.0. Recently he committed these enhancements: Quote:
First stage of localization refresh #261, and other misc cleanup - Implements localized date and time handling. PHP DateTime objects used extensively in all date processing. Localization is provided by [Punic]( - Add `Request::getDateTime()` Returns a `\DateTime` object from `Form\DateSelect` and `Form\DateTime` input. The form classes can also receive DateTime objects as values. Form dates are now local to the user, or system default if no user. - Timezones are now PHP `DateTimeZone` names, not float offsets. PHP DateTime and DateTimeZone objects are used to implement all calculations. This makes handling of things like daylight savings or summer time automatic. - Add `Dtype::TYPE_TIMEZONE` to store and restore \DateTimeZone objects - Add Smarty `datetime` modifier, allowing both unix timestamps and DateTime objects to be processed by XoopsLocale::formatTimestamp(), allowing date and time formatting to be controlled in the presentation layer with tags like `<{$datevariable|datetime:'short'}>` - XoopsList class broken into individual classes in `Core\Lists`. These class are expected to implement `Core\Lists\AbstractList`. These can interact directly with form fields, reducing code complexity and duplication. - Add select_editor 'formtype' for $modversion['config']. This removes the need for active code to load editors in a module's xoops_version.php. All editor lists now originate from one point, Core\Lists\Editor - New subclass of Form\Element, OptionsElement which provides the standard option methods. List classes can interact with any extender of OptionsElement, see Core\Lists\AbstractList::setOptionsArray() - `Xoops_*` classes moved to actual `Xoops` namespace. These *PSR-0*, pseudo namespaces are obsolete. Their removal allows us to move to PSR-4 based loading for the Xoops namespace. - CountryFlag service no longer delivers bare URL to resource, only HTML to display flag. This allows more flexibility on how the flag is presented. - Accept `Trowable` in `Core\Logger::handleExeception()` (PHP7)
He also posted a RFC (Request for Comments) on three issues: - Namespaces - Moduels vs. Extensions - Add a modinfo column to system_module Quote:
I've given a lot of consideration to modules, and have a few ideas I want to present. If you have comments, alternatives, objections or other feedback, please respond. Baring objections, I would like to move on this quickly. Namespaces Add a namespace column to system_module table. This would be the PHP namespace for the module's code. It would map to the module's class directory in PSR-4 fashion. This would be implemented automatically for all active modules with a namespace specified. Note, this will be separate from the composer maintained loader, since composer has no way of knowing if a module is "active" in XOOPS. Autoloading components from modules which are not installed or inactive could create lots of issues. With the namespace enabled, most of the old directory positional naming constructs can be replaced with objects. For example, instead of using the $modversion['onInstall'] entry to locate a file to include, then building function names based on the module name, the code would look more like this:
if (class_exists($moduleNamespace 'SystemInstall')) {
$install = new $moduleNamespace 'SystemInstall;
    $success = $install->postInstall($module);
Our current preloads directory, with possibly multiple files, would disappear, and everything would reside in the$moduleNamespace . 'System\Events' class instead. In this scheme, the class/System directory would be reserved for the system specified classes. Each would have a specific interface defined. There are more details, but this should illustrate the concept. Modules vs. Extensions Based on some thoughts from @bitcero and some more consideration, I propose eliminating the extension concept as is, and moving to a module category system to make management cleaner. Categories would be something like this: Category: Usage ------------------------- Content: articles, blogs, calendars, forums, etc. Developer: module builders, schema tools Extension: service providers, system enhancement Locale: i18n resources, language packs Theme: for the new module based themes This is not carved in stone, but the idea is to create a limited, high level taxonomy to categorize modules. The defined categories would be enforced, as we don't need a free for all. The module listing functions would be adapted to deliver lists of individual categories. A category column on the system_module table would hold this item. To support subtle differences, each category would be backed by a sub class of the system module class, but all would offer the same functionalities. Add a modinfo column to system_module Caching of the $modversion array has been suggested many times. Adding a single column set on install and update can accomplish this, and the existing getInfo() and related methods will be able to use the column data as the source, eliminating the need to hit the filesystem. With this information in the database, all the module object access can be fully cached, which should speed thing up a bit.
Please respond directly on GitHub Resized Image
It is also worth to mention that Eduardo is making some major progress on creating a new "Presentation Layer" in XOOPS 2.6.0 based on his excellent "Common Utilities" Slowly but surely, the pieces of the puzzle called XOOPS 2.6.0 are starting to fall in place!
Read more... | 1 comment

New Tutorials added to XOOPS Documentation

Last year we've started to standardize on GitBook as our delivery mechanism for XOOPS Documentation (see here)

Resized Image

Today I've added couple of new Tutorials: xLanguage and NewBB. They are not yet finalized and are still "work in progress", but because of this it gives the XOOPS Community the opportunity to get involved and help with improving our documentation, which we know is badly needed!

Please note that ALL of the XOOPS books are hosted on GitHub in the XOOPS Documentation repository, and therefore they all can be "forked", improved by you, and your modifications can be then submitted back to the original for inclusion. This is exactly the same process as with using GitHub as a Version Control for source code

The beauty of it is that you can learn and practice how to use GitHub, and at the same time help XOOPS to improve its documentation, especially since for writing documentation there is no programming expertise needed, but only the familiarity with the module. You can also start using the particular module and write the documentation as you learn how to use it.

The advantage of this approach is very clear: the XOOPS developers have limited amount of time, and they can:

1) spend it on debugging and improving existing modules, and developing new ones,
2) or they can spend it on writing tutorials.

It would be truly fantastic if those XOOPS users who don't have programming skills, could help us with documentation!

Read more... | 3 comments

Work on XOOPS 2.6.0 Presentation Layer has started

We are very happy to let you know that Eduardo has started to work on the "Presentation Layer" in XOOPS 2.6.0, using his fantastic Common Utilities as basis to merge them into the Core

Resized Image

We all know and love the work done by Eduardo over the years, and therefore we know that XOOPS 2.6.0 will have an awesome Admin GUI for the Core and for the modules!

More info and screenshots are on GitHub XOOPS, as well as the follow-up discussion.
Read more... | 9 comments
« 1 (2) 3 4 5 ... 72 »