I’ve released an application called "XC Download Test". That is a test implementation of the agent who checks updates, downloads MODs and uploads those to your server. The agent will make it fun to build your site and keep it. But, things you can do with XC Download are very few, because it implements only a couple of features for test.
This agent application tries to download all items that an item you specified depends on. You may test the behaviour with test XML. When the application is launched, you get sample list from my homepage by clicking a button of the application window. Then, do double-click "cube_default" to download the theme. The application will begin to download Package_Legacy before theme download, because it tries to solve dependency. This is one of the most important features.
By this agent, there will be no need to discuss default organizations of packages that our project releases. Our project is software development project, but not distribution project. Therefore we should not use energy to keep other MODs that we don't develop. But, we often discuss what MODs to put the package in default.
I think that "simple is best" and "users have freedom to choose". But, the reason why the package is requested to contain default MODs is that it's difficult to get MODs for beginners.
We are developers. Our energy should be used for software development, not software collections. Therefore, we should solve the problem by software mechanics. Distributions are very great activity, but we should not do it. If we have to do something for distribution, it's writing code.
See cygwin. They don't have distribution packages , because they provides a powerful installer. It's easy to download favorite software. So nobody needs distribution package containing default software. Users have freedoms. That's very nice.
Showing posts with label XOOPS Cube. Show all posts
Showing posts with label XOOPS Cube. Show all posts
Friday, July 17, 2009
Saturday, June 13, 2009
XOOPS Cube will orient to mobile gadget
I'm busy same as always. I don't have time to touch PC and Web. So I'm using iPhone well to enjoy internet.
Now I can not write an entry of my blog, because I don't use PC at my home.
(I have to go to bed to keep my health, when I come back to my home)
iPhone enables to write blog. I often update my blog on the train. The following screenshot is "Hatena Touch" that is iPhone App for the Japanese blog service "Hatena".

With this App, I can modify existing entries, write drafts and post new entries.
That's really useful. Even though I'm a XOOPS Cube developer but use "Hatena". Because the environment that this App brings is very useful for my life style.

This shows me what I should do. Now, many great developers are there in XOOPS Cube community. They have enough passions and skills to develop XC.
Also I have passions to develop some software that enables to control XC with mobile gadget. Because I want to control my website with iPhone App. If such software doesn't exist, busy workers can not keep their site.
Therefore I want to develop such software.
Now I can not write an entry of my blog, because I don't use PC at my home.
(I have to go to bed to keep my health, when I come back to my home)
iPhone enables to write blog. I often update my blog on the train. The following screenshot is "Hatena Touch" that is iPhone App for the Japanese blog service "Hatena".

With this App, I can modify existing entries, write drafts and post new entries.
That's really useful. Even though I'm a XOOPS Cube developer but use "Hatena". Because the environment that this App brings is very useful for my life style.

This shows me what I should do. Now, many great developers are there in XOOPS Cube community. They have enough passions and skills to develop XC.
Also I have passions to develop some software that enables to control XC with mobile gadget. Because I want to control my website with iPhone App. If such software doesn't exist, busy workers can not keep their site.
Therefore I want to develop such software.
Monday, April 6, 2009
XOOPS Cube Legacy 2.1.7 RC released!
Hi all,
The project released XOOPS Cube Legacy (aka Package_Legacy) 2.1.7 RC. This is a minor upgrade version from 2.1.6a, contains many fixes and many enhancements and includes all patches of 2.1.6a security fix.
Please test this RC and report issues if you encounter any troubles. You may post reports to the project forum or each community forum.
(We ask community administrators to forward those reports)
How to upgrade from 2.1.6 or 2.1.6a
Remove mainfile.php and /install directory from the package not to break your current environment. Next, upload files of the package to your server. Finally, do update modules indicating red icon in the module management of the control panel. You may close the site in the control panel to hide your upgrading.
Staff
- GIJOE
- Gusagi
- Hxrr
- Marijuana
- Mikhail
- Minahito
- Mumincacao
- Onokazu
- Roger
- Salamander
- Tohokuaiki
- Tom_G3X
Change Log
[Bug Fix - From Bug Tracker]
- Fix Bug #2491813 - SmileEditAction include multi byte comment.
- Fix Bug #2491817 - SmileEditAction cannnot delete old file.
- Fix Bug #2591041 - Typo Legacy_PublicControllerStrategy.class.php.
- Fix Bug #2642879 - javascript error in admin area.
- Fix Bug #2642959 - SQL Error in Legacy_Updater.
- Fix Bug #2658360 - doubtful escaping in quoteString()
- Fix Bug #2666693 - Error in /XUpgrade/admin/class/UpgradeProcessor.class.php
- Fix Bug #2686374 - Bugs in class.phpmailer.php v2.0.2 (Updated PHPmailer to v2.0.3)
- Fix Bug #2690736 - typo: X_ITEM_TILE (X_ITEM_TITLE?) default_notify.tpl
- Fix Bug #2690739 - typo in /install/include/functions.php, line 38
- Fix Bug #2696701 - user_lostpass.html email maxlength too short
- Fix Bug #2699408 - Specify 2nd argument of mysql_real_escape_string().
- Fix Bug #2724748 - XoopsMemberHandler::getUserByEmail() cannot get user object.
[Bug Fix - From "XCube" Bug Tracker]
- Fix Bug #2656854 - XC_CLASS_EXISTS loops infinity.
- Fix Bug #2635869 - Abstracts difference of class_exists between two versions.
[Patches - From Feature Request Tracker]
- Request #2642992 - exclude extra trim()
- Request #2662922 - DB Layer can be overridden.
- Patch #2697022 - Package_Legacy¥html¥ - new portuguese translations
- Patch #2697034 - extra_languages¥ - new pt_utf8 translations
- patch #2697044 - missing: XUpgrade and system pt language files
- Patch #2701060 - Path disclosure in xoopsmailerlocal.php (pt_utf8)
- Patch #2701140 - legacyRender: update for Portuguese Files
[Other Changes/Enhancements]
- Request #2682887 - MySQL Database Connection should specify the client_flags
- Legacy Controller class provides LEGACY_MODULE_VERSION constant as phpversion.
The project released XOOPS Cube Legacy (aka Package_Legacy) 2.1.7 RC. This is a minor upgrade version from 2.1.6a, contains many fixes and many enhancements and includes all patches of 2.1.6a security fix.
Please test this RC and report issues if you encounter any troubles. You may post reports to the project forum or each community forum.
(We ask community administrators to forward those reports)
How to upgrade from 2.1.6 or 2.1.6a
Remove mainfile.php and /install directory from the package not to break your current environment. Next, upload files of the package to your server. Finally, do update modules indicating red icon in the module management of the control panel. You may close the site in the control panel to hide your upgrading.
Staff
- GIJOE
- Gusagi
- Hxrr
- Marijuana
- Mikhail
- Minahito
- Mumincacao
- Onokazu
- Roger
- Salamander
- Tohokuaiki
- Tom_G3X
Change Log
[Bug Fix - From Bug Tracker]
- Fix Bug #2491813 - SmileEditAction include multi byte comment.
- Fix Bug #2491817 - SmileEditAction cannnot delete old file.
- Fix Bug #2591041 - Typo Legacy_PublicControllerStrategy.class.php.
- Fix Bug #2642879 - javascript error in admin area.
- Fix Bug #2642959 - SQL Error in Legacy_Updater.
- Fix Bug #2658360 - doubtful escaping in quoteString()
- Fix Bug #2666693 - Error in /XUpgrade/admin/class/UpgradeProcessor.class.php
- Fix Bug #2686374 - Bugs in class.phpmailer.php v2.0.2 (Updated PHPmailer to v2.0.3)
- Fix Bug #2690736 - typo: X_ITEM_TILE (X_ITEM_TITLE?) default_notify.tpl
- Fix Bug #2690739 - typo in /install/include/functions.php, line 38
- Fix Bug #2696701 - user_lostpass.html email maxlength too short
- Fix Bug #2699408 - Specify 2nd argument of mysql_real_escape_string().
- Fix Bug #2724748 - XoopsMemberHandler::getUserByEmail() cannot get user object.
[Bug Fix - From "XCube" Bug Tracker]
- Fix Bug #2656854 - XC_CLASS_EXISTS loops infinity.
- Fix Bug #2635869 - Abstracts difference of class_exists between two versions.
[Patches - From Feature Request Tracker]
- Request #2642992 - exclude extra trim()
- Request #2662922 - DB Layer can be overridden.
- Patch #2697022 - Package_Legacy¥html¥ - new portuguese translations
- Patch #2697034 - extra_languages¥ - new pt_utf8 translations
- patch #2697044 - missing: XUpgrade and system pt language files
- Patch #2701060 - Path disclosure in xoopsmailerlocal.php (pt_utf8)
- Patch #2701140 - legacyRender: update for Portuguese Files
[Other Changes/Enhancements]
- Request #2682887 - MySQL Database Connection should specify the client_flags
- Legacy Controller class provides LEGACY_MODULE_VERSION constant as phpversion.
Sunday, March 1, 2009
Abstraction by Include/Link Switch

The virtual function is often used as one of solutions to accept the same source code to different environment. This way makes surface of source code beautiful, but it is not good performance because virtual functions are heavy process. Programers who work on real time application think that's beautiful way but feel that isn't ideal performance.
Because compilers generate indirect-jump with a function pointer table from virtual function, CPU's branch prediction feature is not useful for a such situation. It surely triggers pipeline-stole. If a perfect JIT will be completed in the future, the perfect JIT will be useful for this situation. But, there is not a such JIT now.
Virtual functions are very good approach. But we hope to fix as many as possible of the function address. If there are some functions that we don't need to handle as abstract functions at runtime, address of those functions should be fixed to let CPU use direct-jump. Let's say you have to develop the middleware that can be used for both of PS3 and Xbox360. Firstly, you may plan to use virtual functions to abstract different between two platforms. But, imagine use of game software. Users never able to change platform while they are playing the game.
In other words, developers decide which libraries to link when compiling. The middleware you're developing makes it possible that developer compile each application for multi-platform from the same source code, so you may supply the plural include files and libraries for each platform. Developers will write each makefile. Because this approach doesn't use virtual functions, most function address will be fixed. And, some of them will be compiled as inline-functions.
A such approach is one of standard approaches of multi-platform programming. We take the approach for the following purpose.
- Writes inline-assembly code on multi-platform that has different CPU.
- Changes JIT of game script for multi-platform that has different CPU.
- Solves the different compilers and different compiler versions.
- Changes link libraries to their debug edition or others.
Maybe the approach is also useful for script programming. We often focus on the "runtime-compile" feature of the script program environment. But, the environment has also the "runtime-link" feature.
Let's say you have to write functions that remove platform difference between PHP4 and PHP5. The platform condition is not changed at runtime. Therefore, when program tries to include a file declaring the functions, you may prepare two files for each platform. That's like the approach of C/C++. C/C++ can change include-path and link-library by platform conditions. And, that's better performance than the approach that each function checks platform and changes execution.
That's one of standard approaches if our language is C/C++. However, the script programming world has the different common sense from C/C++. Therefore developers who work on PHP may not agree the approach that change include-file by platform condition.
Tuesday, February 24, 2009
The report of OSC 2009 Tokyo/Spring
Open Source Conference 2009 Tokyo/Spring was closed. That was very exciting event for Japanese OSS developers. I hosted a certain coursework, participated in the CMS Panel Discussion as member of the panel and spoke about XCL 2.2 in the Hodajuku Distribution Coursework. This blog doesn't have an entry about the CMS Panel Discussion and HD Coursework, yet. Now this entry will report the panel discussion.
CMS community moderators and CMS project developers in many kinds of CMS participated in the CMS Panel Discussion. There were few developers in the discussion, because basically number of users was bigger than number of developers in Japan. You might know those CMS in the discussion --- Moodle, Plone, TYPO3, MODx, Geeklog, concrete5, WordPress and XOOPS Cube.
I had to masqueraded in the discussion :D. Because the discussion was streaming broadcasted in the net. Unlike other members of the panel, I don't involve the web business, so I hoped to protect my privacy.
I explained difference between XOOPS2 and XOOPS Cube. Many audiences was thinking that XOOPS Cube had old architecture like XOOPS2. Only my purpose was to dispel a such misconception. And, that was successful. After that I learned that this discussion is very useful for developers. We got detail information of other CMS through the panel discussion. If I was a audience, not member of the discussion, I couldn't get such information.
The information we should pay attention to was TYPO Script that may be DSL of TYPO3. I thought that XC might need DSL to describe how to render template buffer by designers, so the architecture of TYPO was very interesting spec. And, the Plone Japan community moderator told us gettext availability for translation.
The Open Source Conference 2009 Tokyo/Spring was very important event for me.
CMS community moderators and CMS project developers in many kinds of CMS participated in the CMS Panel Discussion. There were few developers in the discussion, because basically number of users was bigger than number of developers in Japan. You might know those CMS in the discussion --- Moodle, Plone, TYPO3, MODx, Geeklog, concrete5, WordPress and XOOPS Cube.

I explained difference between XOOPS2 and XOOPS Cube. Many audiences was thinking that XOOPS Cube had old architecture like XOOPS2. Only my purpose was to dispel a such misconception. And, that was successful. After that I learned that this discussion is very useful for developers. We got detail information of other CMS through the panel discussion. If I was a audience, not member of the discussion, I couldn't get such information.
The information we should pay attention to was TYPO Script that may be DSL of TYPO3. I thought that XC might need DSL to describe how to render template buffer by designers, so the architecture of TYPO was very interesting spec. And, the Plone Japan community moderator told us gettext availability for translation.
The Open Source Conference 2009 Tokyo/Spring was very important event for me.

Wednesday, February 11, 2009
The preparation for the next OSC
Here is Yokohama. This is one of the biggest city in Japan. I came to buy some goods that I will need in Open Source Conference 2009 (OSC 2009). I've written about OSC in this blog once or twice. That was known as a big open source event to Japanese open source users/developers.
In the OSC, I will take a part in three seminars. The most important seminar is "How to learn English language for OSS developers". This shopping is for the seminar. This learning seminar was planned by me, so I'm putting muscle into preparation of the seminar. The role to buy something for the seminar is me. But, I will NOT a speaker of the seminar. (As you know, I am not good at English. I should learn English language, not teach it.)
I invited the speaker to the seminar. His nick name is LYE. He is a translator and translated many video games!
In this seminar, I and the speakers will introduce various method to learn English. Those methods will include the method that we had discussed learning English in xoops.org forum. The method using movie that Mr. plusangel told me in the forum is my favorite method.

I've just bought these goods. The tripod stand will be used to take a picture for key note of the seminar. "XOOPS Cube Legacy Developers Bible" (the book at lower left) and "Talk Man" (yellow color PSP software at center) will be a gift for OSC visitors. "FINAL FANTASY X International" is English version of FF-X. I will introduce this video game as learning kit.
BTW, This blog had not updated for a long time, but I keep interests in English and restatred this blog to write my thinking, my daily, my works and XOOPS Cube.
If you're OK, bookmark my new twitter account that you can see in the right side of this blog. I try to write messages in English there.
In the OSC, I will take a part in three seminars. The most important seminar is "How to learn English language for OSS developers". This shopping is for the seminar. This learning seminar was planned by me, so I'm putting muscle into preparation of the seminar. The role to buy something for the seminar is me. But, I will NOT a speaker of the seminar. (As you know, I am not good at English. I should learn English language, not teach it.)
I invited the speaker to the seminar. His nick name is LYE. He is a translator and translated many video games!
In this seminar, I and the speakers will introduce various method to learn English. Those methods will include the method that we had discussed learning English in xoops.org forum. The method using movie that Mr. plusangel told me in the forum is my favorite method.

I've just bought these goods. The tripod stand will be used to take a picture for key note of the seminar. "XOOPS Cube Legacy Developers Bible" (the book at lower left) and "Talk Man" (yellow color PSP software at center) will be a gift for OSC visitors. "FINAL FANTASY X International" is English version of FF-X. I will introduce this video game as learning kit.
BTW, This blog had not updated for a long time, but I keep interests in English and restatred this blog to write my thinking, my daily, my works and XOOPS Cube.
If you're OK, bookmark my new twitter account that you can see in the right side of this blog. I try to write messages in English there.
Friday, January 30, 2009
Step for unleashed
'unleashed' is the code name of XOOPS Cube Core v1.0. The following is my ToDo.
What I have to fix
What I have to design
What I have to fix
- Render Sequence.
- Misc around rendering system.
- Fetching compositing factors from rendering target.
- Fix bugs of the virtual service feature.
- Identity.
What I have to design
- Single-cast Event System.
- Composition like mechanism.
- Manifesto definition for automatic communication & automatic building.
- Resource Manager to abstract between file system and database.
Saturday, November 22, 2008
I do freeware activity, because I'm too busy
In last CEDEC, I heard Keiji Inafune's speech. He is one of the most famous game producers in Japan. He said "If you aren't winner of the market, you have to fight not to be loser. But even if you're a winner of the market, you should keep attacking. "
That's very interesting thinking. And, his speech changed my thought. I decided to add many many missions to the XOOPS Cube project, whether we have free time enough.
Until I heard his speech, I continued reducing a number of projects' missions, because nobody is unable to help the project. And I was waiting the time that Japanese volunteers get their free time again. But that was miss judging.
Probably Japanese people have to be very busy. However, the project should increase missions, not reduce missions. If our preconditions is that busy Japanese developers run this project, the project should be stopped and closed. The project should not recognize such situation and has to deny it.
"Because Japanese people are very busy" "Therefore we add many missions to the project".
You may feel antinomy.
That's very interesting thinking. And, his speech changed my thought. I decided to add many many missions to the XOOPS Cube project, whether we have free time enough.
Until I heard his speech, I continued reducing a number of projects' missions, because nobody is unable to help the project. And I was waiting the time that Japanese volunteers get their free time again. But that was miss judging.
Probably Japanese people have to be very busy. However, the project should increase missions, not reduce missions. If our preconditions is that busy Japanese developers run this project, the project should be stopped and closed. The project should not recognize such situation and has to deny it.
"Because Japanese people are very busy" "Therefore we add many missions to the project".
You may feel antinomy.
Friday, November 21, 2008
Package_Legacy 2.1.6 Release!
Thank you for your testing. Here's the latest maintenance release for the v2.1 stable, since it has finished RC schedule. It has a number of bugfixes which we recommend you update.
The project has just completed main tasks of v2.1 and will begin running v2.2 in full swing!
== Staff ==
- 10key
- argon
- GIJOE
- gusagi
- hypweb (nao-pon)
- kilica
- Marijuana
- masarap
- Mikhail
- minahito
- mumincacao
- nor
- okuhiki
- ohwada
- onokazu
- orrisroot
- pcboy
- sacchan
- slayer_cg
- suin
- tohokuaiki
- tomoro
- Tom_G3X
Changes Log
[Bug Fix - From Bug Tracker]
- Fix Bug #1833191 - lisense message of installer
- Fix Bug #1865695 - XoopsToken Not in use. at legacy_comment_navi.html
- Fix Bug #1978064 - users_group_link doesn't have unique key
- Fix Bug #2014727 - Removed template variable code that is assigned many times.
- Fix Bug #2015589 - genId typo in some handlers in kernel.
- Fix Bug #2018226 - It's impossible to choose portuguese in the installer
- Fix Bug #2018271 - ThemeListAction.class.php resulting Warning and Fatal Error.
- Fix Bug #2018281 - xoopsmailer.php - path disclosure vulnerability.
- Fix Bug #2018284 - path disclosure vulnerability in greek\charset_mysql.php.
- Fix Bug #2018956 - xoops_redirect parameter: path disclosure vulnerability.
- Fix Bug #2019640 - invalid / unnecessary files in portuguese translation.
- Fix Bug #2019660 - "MSN" no longer exists. Replace with "Windows Live ID"
- Fix Bug #2028663 - Update Callback is not called at pending comments approval
- Fix Bug #2062535 - css.php doesn't work perfectly.
- Fix Bug #2073613 - Problem of parse_url().
- Fix Bug #2084802 - Users' posts should not be increased at the control panel
- Fix Bug #2101729 - Typo comment in Legacy_ModulePhasedUpgrader
- Fix Bug #2115390 - GPL V2 License Link is changed
- Fix Bug #2115634 - $db->query() cannot handle only limit query.
- Fix Bug #2121388 - Missing translation in japanese language file.
- Fix Bug #2123870 - register.php :: missing user_mail_ok
- Fix Bug #2129194 - A typo of SID's connector in redirect_header
- Fix Bug #2178519 - "showall" of the search feature doesn't show correct URL
- Fix Bug #2173864 - ModuleInstaller set invalid group permission.
- Fix Bug #2200366 - Cannot set block_read permission.
- Fix Bug #2205261 - A typo in user activation
- Fix Bug #2201567 - Some mistakes in japanese and ja_utf8
- Fix Bug #2209139 - JVN#20502807
- Fix Bug #2216013 - Doesn't assign reference in groupperm.php
- Fix Bug #2235005 - User_RegisterEditForm includes needless fields
- Fix Bug #2282727 - Controller cannot parse request path on IIS
- Fix Bug #2283070 - XoopsObjectGenericHandler cannot insert/update null value.
[Bug Fix - From "XCube" Bug Tracker]
- Fix Bug #2225372 - Bug in delegate signature checking
- Fix Bug #2232981 - Slight typo on error
[Other Changes/Enhancements]
- Patch #2062644 - Re-draw /html/images
- Patch #2120194 - Smarty 2.6.19 & phpmailer 2.0.2
- Patch #2223209 - simplified Chinese language file
- Some URLs description was changed for new lisence URLs.
- The Kick Start Guide was translated for Japanese.
The project has just completed main tasks of v2.1 and will begin running v2.2 in full swing!
== Staff ==
- 10key
- argon
- GIJOE
- gusagi
- hypweb (nao-pon)
- kilica
- Marijuana
- masarap
- Mikhail
- minahito
- mumincacao
- nor
- okuhiki
- ohwada
- onokazu
- orrisroot
- pcboy
- sacchan
- slayer_cg
- suin
- tohokuaiki
- tomoro
- Tom_G3X
Changes Log
[Bug Fix - From Bug Tracker]
- Fix Bug #1833191 - lisense message of installer
- Fix Bug #1865695 - XoopsToken Not in use. at legacy_comment_navi.html
- Fix Bug #1978064 - users_group_link doesn't have unique key
- Fix Bug #2014727 - Removed template variable code that is assigned many times.
- Fix Bug #2015589 - genId typo in some handlers in kernel.
- Fix Bug #2018226 - It's impossible to choose portuguese in the installer
- Fix Bug #2018271 - ThemeListAction.class.php resulting Warning and Fatal Error.
- Fix Bug #2018281 - xoopsmailer.php - path disclosure vulnerability.
- Fix Bug #2018284 - path disclosure vulnerability in greek\charset_mysql.php.
- Fix Bug #2018956 - xoops_redirect parameter: path disclosure vulnerability.
- Fix Bug #2019640 - invalid / unnecessary files in portuguese translation.
- Fix Bug #2019660 - "MSN" no longer exists. Replace with "Windows Live ID"
- Fix Bug #2028663 - Update Callback is not called at pending comments approval
- Fix Bug #2062535 - css.php doesn't work perfectly.
- Fix Bug #2073613 - Problem of parse_url().
- Fix Bug #2084802 - Users' posts should not be increased at the control panel
- Fix Bug #2101729 - Typo comment in Legacy_ModulePhasedUpgrader
- Fix Bug #2115390 - GPL V2 License Link is changed
- Fix Bug #2115634 - $db->query() cannot handle only limit query.
- Fix Bug #2121388 - Missing translation in japanese language file.
- Fix Bug #2123870 - register.php :: missing user_mail_ok
- Fix Bug #2129194 - A typo of SID's connector in redirect_header
- Fix Bug #2178519 - "showall" of the search feature doesn't show correct URL
- Fix Bug #2173864 - ModuleInstaller set invalid group permission.
- Fix Bug #2200366 - Cannot set block_read permission.
- Fix Bug #2205261 - A typo in user activation
- Fix Bug #2201567 - Some mistakes in japanese and ja_utf8
- Fix Bug #2209139 - JVN#20502807
- Fix Bug #2216013 - Doesn't assign reference in groupperm.php
- Fix Bug #2235005 - User_RegisterEditForm includes needless fields
- Fix Bug #2282727 - Controller cannot parse request path on IIS
- Fix Bug #2283070 - XoopsObjectGenericHandler cannot insert/update null value.
[Bug Fix - From "XCube" Bug Tracker]
- Fix Bug #2225372 - Bug in delegate signature checking
- Fix Bug #2232981 - Slight typo on error
[Other Changes/Enhancements]
- Patch #2062644 - Re-draw /html/images
- Patch #2120194 - Smarty 2.6.19 & phpmailer 2.0.2
- Patch #2223209 - simplified Chinese language file
- Some URLs description was changed for new lisence URLs.
- The Kick Start Guide was translated for Japanese.
Tuesday, November 18, 2008
Blender Party in Nagoya
Blender is one of my favorite open source software. In this month, Blender Party will be hold in Nagoya, Japan. I will take a part in the party.
BTW, there are many XOOPS Cube develepers in Nagoya. So we will have a lunch meeting with them about next development --- v2.2 and a new Base. Maybe I will be able to meet with tom_g3x, jidaikobo, mumincacao and kilica.
BTW, there are many XOOPS Cube develepers in Nagoya. So we will have a lunch meeting with them about next development --- v2.2 and a new Base. Maybe I will be able to meet with tom_g3x, jidaikobo, mumincacao and kilica.
Sunday, November 2, 2008
jidaikobo's theme foramat test
I had stopped XOOPS Cube Core development and next BASE development for a long time. Today I restarted it for the first time in many months. But, I did not modify most core code, because my first priority task is theme rendering for another developer who tries to define one of next generation themes.
As you know, XOOPS Cube doesn't force a theme format. Therefore, a theme at this entry is not "uniformed new next generation theme", but one of next generation themes. Programmers have to test the feasibility of exchangable theme format.
This theme format written by Mr. jidaikobo has "style" spec. The style is similar into RapidWeaver's "style". See the following screen shot. It is the same look as XOOPS Cube Official Site BETA that is generated by RapidWeaver.

Changes style to change look. That is switching CSS.

Most next generation theme formats are probably not table-based layout. So it will become tough work to create themes. "Style" makes it possible to change looks by switching CSS on the same template.
Jidaikobo has some ideas for CSS-based theme format. He proposed a new way that themes don't have any templates. Instead of templates, the themes have only CSS files and image files. In other words, the themes perhaps equals the style that I've just tested. That's difficult, so there are some discussions.
BTW, code on my PC is very bad. Please wait for my commit.
As you know, XOOPS Cube doesn't force a theme format. Therefore, a theme at this entry is not "uniformed new next generation theme", but one of next generation themes. Programmers have to test the feasibility of exchangable theme format.
This theme format written by Mr. jidaikobo has "style" spec. The style is similar into RapidWeaver's "style". See the following screen shot. It is the same look as XOOPS Cube Official Site BETA that is generated by RapidWeaver.

Changes style to change look. That is switching CSS.

Most next generation theme formats are probably not table-based layout. So it will become tough work to create themes. "Style" makes it possible to change looks by switching CSS on the same template.
Jidaikobo has some ideas for CSS-based theme format. He proposed a new way that themes don't have any templates. Instead of templates, the themes have only CSS files and image files. In other words, the themes perhaps equals the style that I've just tested. That's difficult, so there are some discussions.
BTW, code on my PC is very bad. Please wait for my commit.
Thursday, October 30, 2008
Little Big Planet gives many hints to XOOPS Cube
Little Big Planet will be on sale tommorow in also Japan. This game will give many hints to XOOPS Cube project. If you have PS3 and XC users, it's useful to research this game for you.
Little Big Planet is a platform to share each works. Anybody can download levels that other users created and play the levels with your friends. You can share interesting levels to your friends and tag.
Little Big Planet is a creation tool. Anybody can create a new level and release it freely. It's impossible to prevent any creations.
Little Big Plannet is a community to have fun. It's important that creation is very interesting. Anybody is a creator before tools.
Lastly, Little Big Planet is a different world from your daily world. You will get freedom to create something there.
Little Big Planet is a platform to share each works. Anybody can download levels that other users created and play the levels with your friends. You can share interesting levels to your friends and tag.
Little Big Planet is a creation tool. Anybody can create a new level and release it freely. It's impossible to prevent any creations.
Little Big Plannet is a community to have fun. It's important that creation is very interesting. Anybody is a creator before tools.
Lastly, Little Big Planet is a different world from your daily world. You will get freedom to create something there.
Friday, September 19, 2008
World Time Clock
The Clock APP of iPhone/iPod touch has World Time Clock Feature. The feature is very useful for me. Many developers from variouse countries apply to XOOPS Cube development. I can get the time of their countries.
Now Korea and Japan is in the same time zone, so I added Europa and South-America to the World Time Clock.
Thursday, September 18, 2008
The Feature Requests for 2.2.0
I added a new category "2.2.0 Enhancement" to the feature request tracker. Visit to the Feature Requests:Legacy.
We did not decide what 2.2.0 will implement. Input your idea to the tracker and discuss at each item. Because it's possible to post comments at the item of the tracker system, we can discuss 2.2.0.
We did not decide what 2.2.0 will implement. Input your idea to the tracker and discuss at each item. Because it's possible to post comments at the item of the tracker system, we can discuss 2.2.0.
Wednesday, August 13, 2008
A next base will accept various browsers
A next base that we're developing will accept various browsers that include mobile phones. And, that will be light-weight than XCL. The project develops XOOPS Cube for hobby life. So it's requirements that XC will have to accept mobile phones, Wii Opera, PLAYSTATION3 browser and iPod touch/iPhone safari. Of course, it should be possible to operate control panels by buttons of Wii Controller. And, we will have to accept some rules of accessibility so that many people can enjoy hobby life by XC.
Because XCL is "Legacy" application, it was not smart that a few XCL developers use much time for mobile phone directly. But, they will try it at a next stage (a next base).
BTW, things that a base developers have to do are not much. If a base equips a flexible template system and a flexible main sequence, it can accept multi-browsers. The focal point is a way to supply template resource.
All developers don't have all browsers. Also all designers don't have all browsers. It's easy to download all PC browsers, but you have to buy Wii and PLAYSTATION3 to get browsers of them. In addition, even if a developer has all browsers, we should not request him to implement all. So we will need direct patch system like preload for theme and template system.
In other words, XC supports that end-users compound plural works. Because it's difficult that a single solution that is developed by a couple of developers implements all templates and all programs.
You may think that such patch files should be contributed directly to the archive that developers and designers make. But, they often become busy and unable to keep free software activity, because they are a citizen, an employee of their company and have their family. I trust that the patch mechanism is useful for our world and makes our world rapid.
I have some ideas for porting existing modules of XCL to a next (other) base.
The preparations to manage the project were recovered. So I will concentrate to restart developing. Moving my house will give free time to me.
Because XCL is "Legacy" application, it was not smart that a few XCL developers use much time for mobile phone directly. But, they will try it at a next stage (a next base).
BTW, things that a base developers have to do are not much. If a base equips a flexible template system and a flexible main sequence, it can accept multi-browsers. The focal point is a way to supply template resource.
All developers don't have all browsers. Also all designers don't have all browsers. It's easy to download all PC browsers, but you have to buy Wii and PLAYSTATION3 to get browsers of them. In addition, even if a developer has all browsers, we should not request him to implement all. So we will need direct patch system like preload for theme and template system.
In other words, XC supports that end-users compound plural works. Because it's difficult that a single solution that is developed by a couple of developers implements all templates and all programs.
You may think that such patch files should be contributed directly to the archive that developers and designers make. But, they often become busy and unable to keep free software activity, because they are a citizen, an employee of their company and have their family. I trust that the patch mechanism is useful for our world and makes our world rapid.
I have some ideas for porting existing modules of XCL to a next (other) base.
The preparations to manage the project were recovered. So I will concentrate to restart developing. Moving my house will give free time to me.
Tuesday, August 12, 2008
We began to collect URL of tutorials
We did not complete Official Web Site (beta) for OSC2008 Nagoya. (What is that? I will report about OSC2008 Nagoya next time.)
Now, we began to collect URL of online tutorials for a final stage of making Japanese edition of the official web site. After that, we will start to translate a draft of Japanese edition to English edition.
We are collecting URL of various online resources --- tutorials, video tutorials, ABC guidances and kick start guidances --- from various media --- an entry of a blog, a topic of a forum, a page of a wiki and an article of a personal homepage. The URL link collection will help users who research how to use XOOPS Cube.
I want to keep useful page like blender.org Education & Help. blender.org thinks that the net is bigger than blender.org, so they collect links to outside resources. I think that we should emulate them.
Now, we began to collect URL of online tutorials for a final stage of making Japanese edition of the official web site. After that, we will start to translate a draft of Japanese edition to English edition.
We are collecting URL of various online resources --- tutorials, video tutorials, ABC guidances and kick start guidances --- from various media --- an entry of a blog, a topic of a forum, a page of a wiki and an article of a personal homepage. The URL link collection will help users who research how to use XOOPS Cube.
I want to keep useful page like blender.org Education & Help. blender.org thinks that the net is bigger than blender.org, so they collect links to outside resources. I think that we should emulate them.
Wednesday, July 30, 2008
Package_Legacy 2.1.5 Release
I'm sorry to be late. Package_Legacy 2.1.5 stable edition has been released on the download section of the XOOPS Cube project page. We had to release it at last Sunday as originally scheduled, but I could not do it because the power cable of my iMac was gone while I was preparing to move my house.
2.1.5 needed a month. Thanks all contributors who tried to test RC.
There are already many reports and many patches in the project for 2.1.6. We will keep efforts to the next version of 2.1.x.
BTW, the first edition of the project full-fledged web page will be launched. Because I'm too busy by my works of my company, preparation to move my house and some free ware projects, I could not follow all tasks about the web page, but most tasks have been completed. I've finished works about 2.1.5, so I'll restart the web page works.
--------
XOOPS Cube Legacy (Package_Legacy) 2.1.5 is available. Thanks all contributors who tried to test with RC1, RC2 and RC3 for a month. 2.1.5 is minor upgrade version from 2.1.4. This version fixes one important bug & some bug fixes, and contains some patches. The previous version 2.1.4 had a bug around parsing URL. This bug triggered troubles to some AJAX modules, some users applied a hot fix for the bug. But 2.1.5 contains the fix. Therefore, even if you applied a hot fix for the bug to 2.1.4, you may upgrade to 2.1.5 without special steps.
This version tried to contain many fixes to become last maintenance release, so RC test schedule was very very long. By that, it seems that 2.1.5 is very stable. If you're using Package_Legacy 2.1.x, there are not reasons that you don't upgrade your site to 2.1.5. If you're using a distribution package of Package_Legacy, perhaps a new versions of those packages will be released, so you should wait their announcements.
The project already recieved new reports and new patches for more enhancements. So the project will keep efforts on HEAD of the Package_Legacy module of CVS.
==Upgrade from 2.1.4 to 2.1.5==
Remove mainfile.php and /install directory from the package not to break your current environment. Next, upload files of the package to your server. Finally, do update modules indicating red icon in the module management of the control panel. You may close the site in the control panel to hide your upgrading.
==Upgrade from 2.1.5 RC, RC2 and RC3 to 2.1.5==
Remove mainfile.php and /install directory from the package not to break your current environment. Next, upload files of the package to your server. Finally, do update five modules --- legacy, user, legacyRender, stdCache, pm (if you use) in the module management of the control panel. You may close the site in the control panel to hide your upgrading.
==Staff==
- aaki
- fugafuga
- GIJOE
- gusagi
- JardaR
- jidaikobo
- kilica
- marijuana
- MAT
- mikhail
- minahito
- nbuy (aka nobu)
- nobunobu
- okuhiki
- onokazu
- tohokuaiki
- Tom_G3x
==Changes==
[Bug Fix - From Bug Tracker]
- Fix Bug #1950018 - charset Problem in css.php
- Fix Bug #1950017 - PathDisclo in legacyRender/admin/css.php
- Fix Bug #1944713 - PATH Disclosure ? in Legacy_Controller::_parseUrl()
- Fix Bug #1939992 - Invalid xhtml templates in legacy module.
- Fix Bug #1938443 - ID is multiple defined in TplsetList
- Fix Bug #1924223 - The request which includes URL cannot be processed.
- Fix Bug #1971682 - Could not read PM from a removed user.
- Fix Bug #1971718 - cookie path always becomes '/'.
- Fix Bug #1987219 - Remove invalid files from the extra directory.
- Fix Bug #1989801 - cleanup to notice reference variable in class/tree.php.
- Fix Bug #1990481 - Invalid Regexp at User_AbstractUserEditForm class.
- Fix Bug #1992732 - $xoopsConfig doesn't referer mXoopsConfig in some cases.
- Fix Bug #2003440 - X_UACTLINK is missing used in some languages.
- Fix Bug #2008857 - user level empty when editing user whose level not in 0,1,5
- Fix Bug #2010090 - Missing Content-Type in MailHeader by #1729813.
- Fix Bug #2011775 - When a user deletes his account, principal is not created.
- Fix Bug #2017164 - Can't register new account by #2011775
[Other Changes/Enhancements]
- Patch #1868259 - add alt to smaily icons@legacy_xoopsform_opt_smileys.html
- Patch #1897607 - html/install/include/functions.php
- Patch #1961603 - portuguese translations: bug fix and enhancements.
- Patch #1992777 - xoopsmailerlocal.php for zh-tw.
- Patch #2011199 - Czech message catalog for XCL.
- Patch #2016023 - Package Legacy 215rc patch FR and PT typo.
- (Exception Patch) Improve LostPassAction.
2.1.5 needed a month. Thanks all contributors who tried to test RC.
There are already many reports and many patches in the project for 2.1.6. We will keep efforts to the next version of 2.1.x.
BTW, the first edition of the project full-fledged web page will be launched. Because I'm too busy by my works of my company, preparation to move my house and some free ware projects, I could not follow all tasks about the web page, but most tasks have been completed. I've finished works about 2.1.5, so I'll restart the web page works.
--------
XOOPS Cube Legacy (Package_Legacy) 2.1.5 is available. Thanks all contributors who tried to test with RC1, RC2 and RC3 for a month. 2.1.5 is minor upgrade version from 2.1.4. This version fixes one important bug & some bug fixes, and contains some patches. The previous version 2.1.4 had a bug around parsing URL. This bug triggered troubles to some AJAX modules, some users applied a hot fix for the bug. But 2.1.5 contains the fix. Therefore, even if you applied a hot fix for the bug to 2.1.4, you may upgrade to 2.1.5 without special steps.
This version tried to contain many fixes to become last maintenance release, so RC test schedule was very very long. By that, it seems that 2.1.5 is very stable. If you're using Package_Legacy 2.1.x, there are not reasons that you don't upgrade your site to 2.1.5. If you're using a distribution package of Package_Legacy, perhaps a new versions of those packages will be released, so you should wait their announcements.
The project already recieved new reports and new patches for more enhancements. So the project will keep efforts on HEAD of the Package_Legacy module of CVS.
==Upgrade from 2.1.4 to 2.1.5==
Remove mainfile.php and /install directory from the package not to break your current environment. Next, upload files of the package to your server. Finally, do update modules indicating red icon in the module management of the control panel. You may close the site in the control panel to hide your upgrading.
==Upgrade from 2.1.5 RC, RC2 and RC3 to 2.1.5==
Remove mainfile.php and /install directory from the package not to break your current environment. Next, upload files of the package to your server. Finally, do update five modules --- legacy, user, legacyRender, stdCache, pm (if you use) in the module management of the control panel. You may close the site in the control panel to hide your upgrading.
==Staff==
- aaki
- fugafuga
- GIJOE
- gusagi
- JardaR
- jidaikobo
- kilica
- marijuana
- MAT
- mikhail
- minahito
- nbuy (aka nobu)
- nobunobu
- okuhiki
- onokazu
- tohokuaiki
- Tom_G3x
==Changes==
[Bug Fix - From Bug Tracker]
- Fix Bug #1950018 - charset Problem in css.php
- Fix Bug #1950017 - PathDisclo in legacyRender/admin/css.php
- Fix Bug #1944713 - PATH Disclosure ? in Legacy_Controller::_parseUrl()
- Fix Bug #1939992 - Invalid xhtml templates in legacy module.
- Fix Bug #1938443 - ID is multiple defined in TplsetList
- Fix Bug #1924223 - The request which includes URL cannot be processed.
- Fix Bug #1971682 - Could not read PM from a removed user.
- Fix Bug #1971718 - cookie path always becomes '/'.
- Fix Bug #1987219 - Remove invalid files from the extra directory.
- Fix Bug #1989801 - cleanup to notice reference variable in class/tree.php.
- Fix Bug #1990481 - Invalid Regexp at User_AbstractUserEditForm class.
- Fix Bug #1992732 - $xoopsConfig doesn't referer mXoopsConfig in some cases.
- Fix Bug #2003440 - X_UACTLINK is missing used in some languages.
- Fix Bug #2008857 - user level empty when editing user whose level not in 0,1,5
- Fix Bug #2010090 - Missing Content-Type in MailHeader by #1729813.
- Fix Bug #2011775 - When a user deletes his account, principal is not created.
- Fix Bug #2017164 - Can't register new account by #2011775
[Other Changes/Enhancements]
- Patch #1868259 - add alt to smaily icons@legacy_xoopsform_opt_smileys.html
- Patch #1897607 - html/install/include/functions.php
- Patch #1961603 - portuguese translations: bug fix and enhancements.
- Patch #1992777 - xoopsmailerlocal.php for zh-tw.
- Patch #2011199 - Czech message catalog for XCL.
- Patch #2016023 - Package Legacy 215rc patch FR and PT typo.
- (Exception Patch) Improve LostPassAction.
Sunday, July 20, 2008
Package_Legacy 2.1.5 RC3 Release!
We have just released RC3 to test some additional bug fixes. If those patches will not cause any troubles, we will release the stable edition next week.
Now, some new fixes and new reports were submitted since 2.1.5 RC1. We kept efforts to check those and commit, but the project can not release "2.1.5" one of those days if we keep such a activity. The reason why we decided to release 2.1.5 is that 2.1.4 needs hot fix. But, our 2.1.5 RC schedule is 1 month. We should not reschedule to a later date. Therefore, maybe we will release 2.1.6.
Now, some new fixes and new reports were submitted since 2.1.5 RC1. We kept efforts to check those and commit, but the project can not release "2.1.5" one of those days if we keep such a activity. The reason why we decided to release 2.1.5 is that 2.1.4 needs hot fix. But, our 2.1.5 RC schedule is 1 month. We should not reschedule to a later date. Therefore, maybe we will release 2.1.6.
Saturday, July 5, 2008
Generic Render Sequence (2)
Let's brush up the rendering mechanism of XOOPS Cube. XOOPS Cube has a policy that CMS doesn't force the specific theme format to designers. Programming is necessary to create a new format, but that's much better than not to exchange theme formats.
The XOOPS Cube core abstracts Render-System (drawing mechanism) and Render-Target (output buffer). You can use Render-System and Render-Target without the central control of the main sequence.
Rener-Operation is operation data for the Generic Render-Sequence. It tells the core how to use Render-System and Render-Target. If a BASE module uses the Generic Render-Sequence, each programs don't need to access Render-System and Render-Target directly.
But, the core doesn't put a ban on accessing Render-System and Render-Target. The Generic Render-Sequence is a high-level "sequence". Render-System and Render-Target are a low-level "rendering" mechanism. Both of them are available.
At the XOOPS Cube Developers Group Japan, Onokazu pointed out that Render-Target has similar members of Render-Operation. That's was very very good point.
XOOPS Cube 0.9 that is accepted to Legacy doesn't have a mechanism like Render-Operation. Render-Target has the same role.
When we developed Legacy, I took account of attribute (template variables) cleaning. At XOOPS2, posterior rendering can use template variables registered by anterior rendering. That's one of techniques of XOOPS2. But, Legacy had to accept exchangable Render-System, so Render-System B can not access to template variable registered by Render-System A.
If this is 3D programing, such a use is bug and onus of programers. But, we thought that we had to show that a rendering can not access to template variables of other rendering, to programers who had XOOPS2 experience. So Legacy got the spec that template variables are cleared after rendering.
At this spec implement, it became non-recommendation that programers access to Render-System directly. Normally, programers set requests to Render-Target and send it to Legacy_Controller, instead of direct Render-System access. In most cases, Render-System control is done by Legacy. In other words, "Legacy has Ungeneric Render-Sequence". In this case, Render-Target works a kind of Render-Operation for Legacy Ungeneric Render-Sequence.
XOOPS Cube core 1.0 will take Render-Operation, have to solve confusion of classes and divide those classes correctly. Render-System, Render-Target and Render-Operation are divided correctly.
The XOOPS Cube core abstracts Render-System (drawing mechanism) and Render-Target (output buffer). You can use Render-System and Render-Target without the central control of the main sequence.
Rener-Operation is operation data for the Generic Render-Sequence. It tells the core how to use Render-System and Render-Target. If a BASE module uses the Generic Render-Sequence, each programs don't need to access Render-System and Render-Target directly.
But, the core doesn't put a ban on accessing Render-System and Render-Target. The Generic Render-Sequence is a high-level "sequence". Render-System and Render-Target are a low-level "rendering" mechanism. Both of them are available.
At the XOOPS Cube Developers Group Japan, Onokazu pointed out that Render-Target has similar members of Render-Operation. That's was very very good point.
XOOPS Cube 0.9 that is accepted to Legacy doesn't have a mechanism like Render-Operation. Render-Target has the same role.
When we developed Legacy, I took account of attribute (template variables) cleaning. At XOOPS2, posterior rendering can use template variables registered by anterior rendering. That's one of techniques of XOOPS2. But, Legacy had to accept exchangable Render-System, so Render-System B can not access to template variable registered by Render-System A.
If this is 3D programing, such a use is bug and onus of programers. But, we thought that we had to show that a rendering can not access to template variables of other rendering, to programers who had XOOPS2 experience. So Legacy got the spec that template variables are cleared after rendering.
At this spec implement, it became non-recommendation that programers access to Render-System directly. Normally, programers set requests to Render-Target and send it to Legacy_Controller, instead of direct Render-System access. In most cases, Render-System control is done by Legacy. In other words, "Legacy has Ungeneric Render-Sequence". In this case, Render-Target works a kind of Render-Operation for Legacy Ungeneric Render-Sequence.
XOOPS Cube core 1.0 will take Render-Operation, have to solve confusion of classes and divide those classes correctly. Render-System, Render-Target and Render-Operation are divided correctly.
Tuesday, July 1, 2008
Generic Render Sequence (1)
XOOPS Cube 1.0 implements the Generic Render-Sequence, that's one of major features that we should check.
We already know Ungeneric Render-Sequence. That's a Render-Sequence of Legacy. A rendering process of Legacy has the same step as XOOPS2 and is the following steps:
(1) Renders blocks before a module execution.
(2) Renders a module after a module execution.
(3) Renders a theme as final output after a module rendering.
The Generic Render-Sequence of XOOPS Cube core 1.0 makes those steps general-purpose.
The Render-Sequence of XOOPS Cube core 1.0 is executed after all business logics. And, the sequence doesn't know type of content units --- modules and blocks, because the sequence has to accept the core feature that the core can exchange BASE with other BASE.
A type of contents --- themes, modules and blocks is not important for the Generic Render-Sequence. The important things are order of rendering and that later rendering process may access previouse rendering result or other Render-Target.

In the Ungeneric Render-Sequence of Legacy, the logic to render theme is executed at final step. But, in Generic Render-Sequence, even if CMS's task requests theme rendering at first step, the sequence can render it at final step.
In other words, order of drawing can be different from order of business logic.

Let's check the mechanism. Read a certain PDF document.
Normally, we should use the Generic Render-Sequence with task system that is also a generic main sequencal process mechanism. Because a ungeneric main sequence has a ungeneric render sequence (examples: Legacy and XOOPS2).
The main sequence of XCube_Root collects Render-Operation from each task. A Render-Operation has a name of using Render-System, sequence ID and so on. The sequence ID is number of rendering to be rendered by correct order.
Render-Operation are collected in random order (out-order). In most cases, a first task is a CMS's task, so perhaos a theme rendering is requested firstly.

If the core does nothing for the collected operations, some modules and blocks are rendered after the theme rendering. Such a order is strange.
For that, the XOOPS Cube core sorts the collected operations to execute render-sequence in order.

Sorting corrects order. The condition made by sort is a kind of command queue. The Generic-Render Sequence of the core renders by fetching a operations from the queue. If BASE uses the Generic Render-System, it can entrust handling Render-System and Render-Target to the core.
When the last operation is finished, final output is completed. You check it with sample programs of XCube_PHP4 minahito branch.
BTW, this entry is the another version of Diff between XC and XCL(X2): Render Sequence.
We already know Ungeneric Render-Sequence. That's a Render-Sequence of Legacy. A rendering process of Legacy has the same step as XOOPS2 and is the following steps:
(1) Renders blocks before a module execution.
(2) Renders a module after a module execution.
(3) Renders a theme as final output after a module rendering.
The Generic Render-Sequence of XOOPS Cube core 1.0 makes those steps general-purpose.
The Render-Sequence of XOOPS Cube core 1.0 is executed after all business logics. And, the sequence doesn't know type of content units --- modules and blocks, because the sequence has to accept the core feature that the core can exchange BASE with other BASE.
A type of contents --- themes, modules and blocks is not important for the Generic Render-Sequence. The important things are order of rendering and that later rendering process may access previouse rendering result or other Render-Target.

In the Ungeneric Render-Sequence of Legacy, the logic to render theme is executed at final step. But, in Generic Render-Sequence, even if CMS's task requests theme rendering at first step, the sequence can render it at final step.
In other words, order of drawing can be different from order of business logic.

Let's check the mechanism. Read a certain PDF document.
Normally, we should use the Generic Render-Sequence with task system that is also a generic main sequencal process mechanism. Because a ungeneric main sequence has a ungeneric render sequence (examples: Legacy and XOOPS2).
The main sequence of XCube_Root collects Render-Operation from each task. A Render-Operation has a name of using Render-System, sequence ID and so on. The sequence ID is number of rendering to be rendered by correct order.
Render-Operation are collected in random order (out-order). In most cases, a first task is a CMS's task, so perhaos a theme rendering is requested firstly.

If the core does nothing for the collected operations, some modules and blocks are rendered after the theme rendering. Such a order is strange.
For that, the XOOPS Cube core sorts the collected operations to execute render-sequence in order.

Sorting corrects order. The condition made by sort is a kind of command queue. The Generic-Render Sequence of the core renders by fetching a operations from the queue. If BASE uses the Generic Render-System, it can entrust handling Render-System and Render-Target to the core.
When the last operation is finished, final output is completed. You check it with sample programs of XCube_PHP4 minahito branch.
BTW, this entry is the another version of Diff between XC and XCL(X2): Render Sequence.
Subscribe to:
Posts (Atom)