XOOP 2.6.docx

luckyhillockData Management

Nov 29, 2012 (4 years and 6 months ago)

290 views


thi

XOOPS 2.6.x Series

Process Analysis

simon@xoops.org

-

Wednesday, April 14, 2010


Table of Contents


Table of Contents

................................
................................
................................
................................
..........

1

Development Process

................................
................................
................................
................................
...

2

2.4.x Series

................................
................................
................................
................................
....................

3

New Features

................................
................................
................................
................................
............

3

Migrated Features to 2.6

................................
................................
................................
..........................

3

2.5.x Series

................................
................................
................................
................................
....................

5

New Features

................................
................................
................................
................................
............

5

Migrated Features to 2.6

................................
................................
................................
..........................

5

2.6.x Series

................................
................................
................................
................................
....................

6

Scope

................................
................................
................................
................................
.........................

6

New Features

................................
................................
................................
................................
............

6

3
rd

Party Libraries

................................
................................
................................
................................
......

8



Development Process


The development process of XOOPS 2.x series up to version 2.3 was solely commit apart from minor bug
changes by phppp. In 2.3 series DJ introduced a model for the pr
ocess to analysis, before this due to an
exit and disagreements of developers XOOPS had laid stagnate for a number of years not changing or
update to match market requirements, this started to change in 2.4 series.

2.4 Series for once got some good marketi
ng material from people reviewing it, I think for the first time
some of the core bug where removed (The work rounds in the modules failed because of this produce
the terms ‘apostrophe bug’). However from all the changes in 2.4 such as introduction of Prel
oad (Which
is impeccably useful for beginners), Unicode escaped storage, Decimal Support, Floating Point Support,
Enumerator Support, JQuery Support as well as many other core bugs where fixed. However with these
new systems there were some outlaid problem
s of inherit bugs in newer code and half implemented
routines.

2.5 Series was the improved version of system to allow for a more fluid and easier to use system module
which utilizes JQuery so the module is easy to use with
graphical

rather than drill down
navigation
system.

I believe even with the inherit bugs in 2.4 series and 2.5 series the improvement in Xoops usability and
scalability far outweigh any critics’ you can place on the young developers that wrote these versions
-

Although the discipline in
development needs to be encouraged as the development was rushed as
usual and some systems where not completely implemented such as preload support on the themes not
just modules.

2.6 was the incorporation of new systems or finishing off of old systems lik
e the database engine with
PDO. 3.0 will be a new structure so we have to accept we are programming for the rubbish bin until the
3.0 structure is released. It does however give us ample time to explore and research the best systems
to write into later ver
sion of the 3 series.

We need to start planning for a Server/Client help system that uses SOAP to communicate to be
maintained by the Xoops documenting team, this will require an ERM of sometype for objects from
XoopsObject have an extension by an ERM to p
rovide enterprise information like object serial number
for the help system to know for objects


this will allow for help systems from the serialization of an
object to associate a help reference with it, the first one that was too slow so a quicker syste
m needs to
be derived.

The development of 2.4 how unpopular for senior members of the team means that we have a larger
market to deploy in and the capabilities of the system allow for powerful systems making XOOPS one of
the best CMS on the market. Remembe
r XOOPS is not really a CMS it is a RAD (Rapid Application
Development) Suite that allow people to form powerful application quickly.



2.4.x Series

New Features

The main features of 2.4.x series that where added are listed below. These are options which w
here
implemented and offer dynamic support for libraries in Xoops such as better support for module writer
with beginners and preloaders.



License Key
.



Preloads
.



Unicode Support
.



Decimal Support
.



Floating Point Support
.



Enumerator Support
.



JQuery Support
.

Migrated Features to 2.6

The main features of 2.4.x series that where added are listed above. These are options which where
implemented and offer dynamic support for libraries in Xoops such as better support for module writer
with beginners and preloaders.

License Key

Although most people believe this is just a look, this ID Card for every XOOPS install provided people
with a valid table key that defines the versions.php in the license.php file and confirms that the
Xoops
was installed. This provides for ex
ample Law Enforcement
& Computer Forensics
with a tool to identify
for someone
to
a XOOPS Installation if required, it also means it maintains a professional image and a
license, The current key upgrades in the following example XXXXX
-
XXXXX
-
PPPPP
-
PPPPP
-
PPP
PP


XXXXX
-
XXXXX is the part that upgrades with the keygen on changes of version.php the PPPPP
-
PPPPP
-
PPPPP is
private data which has been randomly stripped for validation to a percentile of 65% or higher for a
match.

Preloads

Preloads need to be migrated
to 2.6 as these have been introduced and we can not legacy them from
the distribution at this stage, however this development was rushed and should have been implemented
in the theme system as well to ensure full congruency of a system and to allow theme d
evelopers to
interact with the core.

Preload are good understandable as it is in the 3.0 series some of the calls and event names will be
different but they also need to have a criteria hook for all criteria generated in the system so there is
and encompas
sment of logically accessible areas like programmable electronics should be.




Unicode Support

This is extremely useful it means people can take advantage of Uncode that is for example UTF
-
8, UTF
-
16, UTF
-
32 extended escaped symbols for use. I have
written a couple of modules that already use these
fields and I like many other that use it for Arabic and other languages on latin1 database etc can use
these fields to store their language by escaping it, these would normally be the standard field for us
er
input and the earlier ones are more for settings.

The escaping has a java equivalent command so it is completely compatible with systems. Also this
means people can write modules and use these fields and know they are storing on any database type at
all

these symbols and producing them perfectly.

Decimal Support

This is good for monetary reasons it allows for a huge amount of storage of money and other scientific
numbers that require a decimal numeric field, this is a php double field and uses doublevar(
) to confirm
it is decimal.

Floating Point Support

This is good for scientific notation that support for scientific floating points and uses floatvar() to
confirm it is a floating point numeric, I have had a number of business come to me and had applicatio
n
written that were not possible without extending the core with this field type for decimal notation.

Enumerator Support

The enumerator support is array controlled, and does not need to be a true enum in the database the
object handler will confirm it is
an item before setting the value from the array, I have had a number of
business come to me and had application written that were not possible without extending the core
with this field type for decimal notation.

JQuery Support

I don’t know much about Java

but I find the JQuery for things like JSON Exceptional and allow for one a
professional image with XOOPS and interface. This will be required for years to be included unless
JQuery is superseded.



2.5.x Series

New Features

The main features of 2.5.x seri
es that where added are listed below. These are options which where
implemented and offer dynamic support for libraries in Xoops such as better support for module writer
with beginners and preloaders.



System JQuery Interface.

o

New Block System.

o

New Backup S
ystem.

o

New Banner System.

o

New JQuery Easy Interfaces.

o

New File Manager.

o

New Templates System.

o

New Image Manager.

Migrated Features to 2.6

The main features of 2.5.x series that where added are listed above. These are options which where

implemented and offer dynamic support for libraries in Xoops such as better support for module writer
with beginners and only in development concentrated on the system module.

System JQuery Interface

The following systems are required to encourage the les
s mobile to use Xoops, with easy to use
interface that offers better control of blocks and other systems in Xoops. All changes to the system
module will remain and be imported.

New Block System

New Backup System

New Banner System

New JQuery Easy Interfaces

New File Manager

New Templates System

New Image Manager




2.6.x Series

Scope

The scope of XOOPS 2.6 series should be improvement and finalized systems. This I hope will include
some form of PDO for use to use, looking into them they take years to develop a PDO and we can use
ADOdb from source forge to circumvent the timeline of the

SDLC of the PDO.

I would like to fix one code issue I have in cleanVars an implement the PDO for XOOPS and so on, most
of this I have already written the existing systems need to be maintained there is no way to drop what
has been introduced as it will be

a stab in the heart for XOOPS.

I would like to fix also the support for constants in the system, for example we have no way at the
moment to embed a constant in the database for multilingual outputs. This can be done by checking if a
value is defined() th
en returning a constant() of the value. This was implemented in 2.5 in the getVar
routine but I am unsure if the change has remained.

All new things considered I want to implement in my scope the PDO I have developed over the last
month or so this will inc
rease our spectrum of users on the web and allow for greater access for people
to XOOPS that don’t want or like MySQL. It also allows for query caching and store procedures and is
written in a
c
ontroller
fashion
for compatibility with 3.0.

New Features

Som
e of the requested new features are as follows:



Procedural Database Object (PDO).



Sitemap Module Feed.



RSS Items Module Feed.



ATOM Items Module Feed.



Embedded Constant Support.



Preloads 100% Implemented.



Depreciations with functioning code.



Standard reCAPT
CHA support.

Procedural Database Object (PDO)

The PDO will allow for communication between the XOOPS core and other database systems apart from
MySQL.
These include

postgres, oracle, mssql, mysql, access, db2, firebird, lpad, active directories and
others.

This already has a trial available on the website.

Sitemap Module Feed

As seen in multisite the module table was modified for sitemaps and rss feeds in the system with an RSS
Cache, all these systems are working and allow for a
sitemap
.php that provides a

feed of items from any
module using this function, it is very similar to the module functions for search and implemented in the
same routines namespace as the search functions but provides a sitemap array for sitemap.php to
generate a sitemap for
http://webmaster.bing.com
, Google, yahoo and other search engines indexing.

Bing.com and Live.com will only list you if you have a sitemap with the sitemap module implementations
as seen in the prototype (
http://www.xoops.org/sitemap.php
), these are also required for SEO Scoring
and ranking.

This function will allow modules to provide there sitemap to URL or SEO URL’s to the
http://www.yoursite.com/sitemap.php

file and the XML File will generate a valid sitemap for the sites
modules listing items, this will improve XOOPS Modern usability cause once again times have change
and people are asking for sitemaps


see http://www.si
temap.org.

RSS Items Module Feed

As seen in multisite the module table was modified for
rss feeds

and rss feeds

cache which in
distribution can now use the file cache apart from the modifications to prefix_modules

in the system
with an RSS
Items supporting

the new install in Xoops_version.php
, all these systems are working and
allow for a backend.php that provides
.

F
eed
s

of items from any module using this function, it is very similar to the module functions for search
and implemented in the same routines namespace as the search functions
-

but provides a sitemap
array for sitemap.php to generate a sitemap for Yahoo, Twit
terFeeds, Twitter, Facebook and other
modules

distribution via RSS through an aggregated backend.php of all modules
.

ATOM Items Module Feed

Same routine as RSS with a different smarty template for the ATOM items rather than RSS items
templates.

Embedded
Constant Support

Although little use or known about this is useful to embed values in the database that are represented
by a constant that can be defined by language group in Xoops.

This is done with a check in getVar for the
value if it is a string as als
o a defined constant but returning the name of the defined constant rather
than the actual embedded database DEFINE VALUE.

This is okay there is two ways of accessing an object which is inclusive of both
-
>getVar(‘’) and
-
>_vars[‘’]
[‘value’]

this will enco
urage both methods to be used in places like access module name for
system which would use for the admin
-
>_vars[‘’] but for the menu would use
-
>getVar(‘’) so people can
define multilingual module names in the admin

system as a reference to a define but t
he menus would
display names that are lingual to the $GLOBALS[‘xoopsConfig’][‘language’];

Preloads 100% Implemented

Preloads are not implemented on a theme level they need to be to ensure that Xoops
confluently

uses it
new systems, this will me theme devel
opers can interact with the core.


Preloads should interact with the theme system to ensure that this and any other places of leverages of
preloaderiness around Xoops, this hook also need to have ontop of a event handler, a criteria handler as
well for pre
loads on pre call criteria Hook so all logic is accessible.

Depreciations with functioning code

Currently from the migration of 2.2 and 2.0 into 2.4 XOOPS has some depreciated function that need to
be completely anyway to ensure compatibility with older 2.
2 modules.

This need to cover any logic of
function calls in the libraries not just call


depreciated, this is to ensure there are migrations.

Standard reCAPTCHA support.

www.recaptcha.net

is regularily maintained
and supports a wide variety of captcha for the disabled so
people using wcag with Xoops can pass captchas with an audio loop as well as a textual prompt captcha.

The current captcha needs maintenance a captcha code for reCaptcha in the config for public a
nd
private key would be however preferred.

3
rd

Party Libraries

These are the 3
rd

party libraries that in the scope will be installed.



adoDB


Sourceforge (
http://adodb.sourceforge.net/
)

adoDB


Sourceforge

ADOd
b is a database abstraction library for PHP. There is also a Python version; see the

ADOdb
for Python docs
.


The PHP version currently supports an amazing number of databases, thanks to the wonderful ADOdb
community:

MySQL, PostgreSQL, Interbase, Firebird, Informix, Oracle, MS SQL, Foxpro, Access, ADO,
Sybase, FrontBase, DB2, SAP DB, SQLite, Netezza, LDAP,

and
gen
eric ODBC, ODBTP
. The Sybase,
Informix, FrontBase and PostgreSQL, Netezza, LDAP, ODBTP drivers are community contributions.
Here is the

complete list of drivers
.


Many popular web applicatio
ns such as

ACID
,

Zikula/PostNuke
,

Xaraya
,

phpWiki
,

Mambo
,

PHP
GACL
,

TikiWiki
,

eGroupWare

and
phpLens App Server

are using ADOdb as their database abstraction
layer. Some reasons why ADOdb is popular include:



Designed for

speed
. It is probably the fastest open source database abstraction library
available for
PHP. See

benchmarks
.



Provides

extensive portability support

such as date and type
-
handling and portable schema
creation. See

portable sql

tips



Support many

enterprise features

such as database backed sessions (with session expiry
notification), SQL code generation, pivot tables, SELECT LIMIT emulation for all
databases, performance monitoring.



Easy to learn
, especially if you have Window's
programming experience, as it uses many
ADO conventions.



Extensive QA
, every release is unit
-
tested on Access, MySQL, PostgreSQL, MS SQL, Oracle
11g.



Mature
, continiously developed since August 2000. Has a

large community

of users.



Powerful

Active Record

support. See

docs
.



Very

reasonable licensing

terms (BSD). This means that you can incorporate (and even
compile) it into your software applications
royalty
-
free

without asking the author's

permission, provided you include license.txt in your release. Also dual
-
licensed (Lesser
GPL)
.