Fork me on GitHub



Make donations with PayPal!
Goal: $100.00
Due Date: Nov 30
Gross Amount: $0.00
Net Balance: $0.00
Left to go: $100.00

Learn XOOPS Core

Local Support


XOOPS Code hosted on SourceForge

Cumulus Tag Cloud

- 2 2.5 2.6 4 6 admin Android AntiHarvesting AntiSpam API Apple Battlefield Blocks Bootstrap Captcha cell cent chronolabs Clicks Cloud content CĂN demo download Dresses facebook Fat floor for free Gateway giải Google Guide herre Home Honeypot html5 Human HỘ IP iPhone jQuery Language Law Legal List Loss module modules Monster new newbb news nhiệt NHÀ online PARK Payment phone PHP Prevention profile project Protector publisher RESIDENCE responsive review Rights rmcommon Room security Sentry Signed site Smartphone Smarty Smoking Solution Spam stem Studio support tag tdmcreate The Theme themes User userlog web weight xoops Xortify XPayment ZendFramework

New Users

Registering user

# 138590


Welcome to XOOPS!


News archives


Extension Rating updated for the latest XOOPS 2.6.0

Posted by Mamba on 2015/11/25 18:20:00 (80 reads) | Posted on Modules
Cointin Maxime (Kraven30) has developed couple of years ago for XOOPS 2.6.0 an Extension called "Rating"

Resized Image

This extension allows you to easily add a voting system to the inside of your modules. You can add as many modules as you want. For example, to rate a hotel, restaurant service, quality of food, price, etc..

It can be used by any XOOPS 2.6.0 module, it works the same way as the module Tag. It uses the jQuery plugin 'jRating'.

Since XOOPS 2.6.0 went through several changes, I have updated this extension, similar to the 6 modules developed by Dugris

Download: our repository on GitHub

Please fork it, test it, improve it, and contribute back to XOOPS

I'll write a tutorial for the usage of this extension hopefully next month.


Squad and Bikin themes converted to XOOPS

Posted by Mamba on 2015/11/24 9:40:00 (190 reads) | Posted on Themes
I've converted two one-page Bootstrap themes to XOOPS: Squad and Bikin from

Resized Image

Resized Image

It was more or less an experiment, so I am releasing them as "Alpha", and feel free to fork and improve them.

You can use the existing parts of the "one-page" theme, and you can add links to XOOPS modules in the Top Menu.

We definitely need to look for ways to simplify such conversions to XOOPS, since there are many very cool themes around!

- Bikin
- Squad

NOTE: these themes are free, but the authors require to keep their Copyright notice in the footer, unless you pay a fee. Please respect that!

NOTE 2: You will need to add in the function "eventCoreHeaderAddmeta" in \modules\system\preloads\core.php this code below:

if (defined("XOOPS_STARTPAGE_REDIRECTED") || (isset($GLOBALS['xoopsOption']['template_main']) && $GLOBALS['xoopsOption']['template_main'] === 'db:system_homepage.html')) {
            if (
is_object($GLOBALS['xoopsTpl'])) {

so the whole function looks then like this:

public function eventCoreHeaderAddmeta($args)
        if (
defined("XOOPS_STARTPAGE_REDIRECTED") || (isset($GLOBALS['xoopsOption']['template_main']) && $GLOBALS['xoopsOption']['template_main'] === 'db:system_homepage.tpl')) {
            if (
is_object($GLOBALS['xoopsTpl'])) {

        if (!empty(
$_SESSION['redirect_message'])) {
$GLOBALS['xoTheme']->addScript('', array('type' => 'text/javascript'), '
$_SESSION['redirect_message'] . '", {  life:3000 , position: "center", speed: "slow" });

Read more... | 7 comments

eEmbed now included in XOOPS 2.6.0

Posted by Mamba on 2015/11/12 23:20:00 (506 reads) | Posted on XOOPS
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

Posted by Mamba on 2015/11/1 5:50:00 (961 reads) | Posted on XOOPS
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... | 26474 bytes more | 4 comments

Translation Project for final Packaging of Signed 2.2.x Final Release

Posted by wishcraft on 2015/11/1 4:50:00 (850 reads) | Posted on Modules
Resized Image
Signed 2.2RC Module - Translation Project

This module is to be translated in the supporting groups for final candidate packaging for the XOOPS SVN, once you have done the translation the translated signature files as well as the language files have to be package and sent to with any comments or changes that needed to happen outside any core language folded file-base.

You can connect to the Author of the module with Skype on the account: antony.cipher – this is if you have any question or comments for the module! But please read the PDF before you do contact incase it answers any questions

Please notify either by email and wait for confirmation as a translator, as you will eventually once final packaging being done noted in the code stamp as one of the authors; which you can also do in the resource files.

Module Download: ~~~::[ *.7z ! *.rar ! *.tar.gz ! *.tar.bz2 ! *.zip ! *.tar ! *.bz2 ! *.rar5 ! *.jar ]::~~~


Download Project PDF (English) -- Signed 2.2.1 Final Release - Translation Project.pdf

Folder's for Translation
+ modules / signed / language / english (translate folder)
+ xoops_lib / modules / signed / processes / english (translate folder)


XOOPS 2.6.0 Goes PSR-4 plus Other Core Enhancements

Posted by Mamba on 2015/10/24 4:10:00 (1051 reads) | Posted on XOOPS
1) Richard is powering forward with some very cool enhancements for the Core of XOOPS 2.6.0. Recently he committed these enhancements:

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

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.


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

6 Modules for XOOPS 2.6.0 added to GitHub (Alpha version)

Posted by Mamba on 2015/10/12 8:40:00 (1324 reads) | Posted on Modules
Laurent JEN (aka DuGris) has developed couple of years ago six very nice modules for XOOPS 2.6.0

Resized Image

I've started updating them to reflect the changes done to XOOPS 2.6.0 Core since then, and they are now on GitHub in the XOOPS 2.6.0+ Modules section.

Clearly, the update is still work in progress and some of the modules don't work yet properly due to the changes in Core, but hopefully soon they will become more stable. Of course, as always, you can fork them and help us with the development!

Demo DuGris' Demo Website:

Download/Fork: XOOPS 2.6.0+ Modules on GitHub:







XOOPS 2.6.0

Please note that the next version of XOOPS is being actively developed on GitHub, and you're encouraged to fork it, test it, and contribute back!

Read more... | 6 comments

New Contact Module

Posted by Bleekk on 2015/10/11 14:30:00 (1332 reads) | Posted on Modules
Hi all,

The German XOOPS Team released today a new/updated Contact module.

Resized Image

This module uses Bootstrap templates which makes it perfect for modern responsive websites.

- xBootstrap Templates
- Google Recaptcha (optional)
- easily included Google Maps

Please test the module and give us feedback so we can improve it.

You can see a demo of this module here:

The module can be downloaded and forked here:


Read more... | 20 comments

New Tutorials added to XOOPS Documentation

Posted by Mamba on 2015/9/27 5:40:00 (1245 reads) | Posted on XOOPS
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

Premium Themes - 16 XOOPS Themes Free!

Posted by AngeloRocha on 2015/9/23 21:56:04 (1717 reads) | Posted on Themes
I bring you 16 premium themes developed by me. Soon i will be releasing new themes free and premium, based on xBootstrap. I hope you enjoy.

Resized Image

News (in portuguese):

Read more... | 4 comments
1 2 3 4 ... 547 »