PEAK XOOPS - pico in englishin japanese

This is a translated document from module manuals in XUGJ


Function: Contents module
Type: Static contents making
Author: GIJOE
Version: 1.20
System requirements: XOOPS2.0, head of the house version 2.2, and XOOS Cube2.1 (Do not work with Oreteki).
Duplicatability: [[Duplicatable V3]]


It is a module with a succession location of TinyD.
The migration path from TinyD is prepared.
However, in the codepicoTinyD is quite a regardless, and independent existence in complete.

It is possible to use it as a module of the type to permit the ordinary user the article contribution depending on the setting though it is suitable for the contents making by webmaster.

The directory name is not limited because it is Duplicatable V3, and either the update ends by one time.

Thing that should be known

File composition of six kinds of

In this module, the file composition is roughly divided into six kinds. Please distinguish respectively neatly.

Main body of module
It is a logic part of the pico module. Only one per one XOOPS site is put. Location on the server is XOOPS_TRUST_PATH/modules/pico/In the archive, xoops_trust_path/modules/pico/
Module front end
It is an entrance part for the module to tie to XOOPS. It is possible to put it on one XOOPS site many. Location on the server, the archive, html/modules/pico/
Smarty plug-in
It is a necessary Smarty plug-in for using pico. Location on the server is XOOPS_ROOT_PATH/class/smarty/plugins/In the archive, html/class/smarty/plugins/
PEAR file
In pico,TextWikiOnly when the function is used, it is necessary. Location on the server is XOOPS_TRUST_PATH/PEAR/In the archive, xoops_trust_path/PEAR/
With picoWysiwygEditorOnly when the function is used, it is necessary. Location on the server is XOOPS_ROOT_PATH/common/It is not included in the archive, and drop WYSIWYG Editor for common if necessary, please.
Wrap directory
Only when the wraps function of pico is used, it is necessary. Location on the server, is not included in the archive. It is a file that puts here that the user made.

Each module put on the module front end might be called "Module instance (substance)".

Wraps mode

There is a feature mode of wraps mode in pico.

The point to use PATH_INFO of Apache in the image of enhancing version of the wraps module is the same. Notes concerning PATH_INFO are also the same as wraps, and refer to that, please.

When the wraps mode is made effective, URI of the article becomes the following forms.

(The mod_rewrite mode is invalid. ) 

(The mod_rewrite mode is effective. ) 

In pico, the part of "/index.html" is called "Virtual path". The extension of a virtual passing. Or, ..html (... Pico is output applying the XOOPS header and Ftta when ending by htm). It is page so-called wrap.

Wrapped contents are usually acquired from the file that the wrap directory corresponds. If a virtual passing is "/index.html", it becomes the following files.

 20 (wrap_dir)/index.html 

An arbitrary virtual passing can be allocated about so-called DB contents. In this case, the text input on the contents edit screen is displayed. When the wraps mode is effective, a virtual passing is automatically allocated about contents for which a virtual passing is not specified specifying it. Contents of number 1 become following URI in default.

(The mod_rewrite mode is invalid. ) 

(The mod_rewrite mode is effective. ) 

The extension of a virtual passing. Html. The correspondence file of the wrap directory is forwarded with the MIME header corresponding to the extension about files other than htm. This operation is quite the same as the wraps module.

Page wrap

In pico, the function to wrap the page is provided as well as TinyD.

TinyD of page wrap function is compared with pico as follows.

Item TinyD pico
Difference with DB contents Each it differs from the edit display, and another complete concept. Difference only whether to pass "Page wrap" as text filter. Other text filters can even be put.
Depository of wrap file Content/on side of opening to the public the under Wrap directory The XOOPS_TRUST_PATH/wraps/(dirname) under
Treatment of relative link WRAP2 and WRAP3 etc. of each contents were prepared. Neither WRAP2 nor WRAP3, etc. exist. When a relative link is used, it naturally connects by using it together with the wraps mode.

Is the former a setting "Where are contents of the specified number (contents) brought?", and very does the latter express "URI though it thinks page wrap to be confused easily with the wraps mode?Which contents number is called from the URI?Do you forward it if there is no corresponding number?It is ..".. setting.


(1) XOOPS_TRUST_PATHIt drinks and Sadamu is done. (If you never do. )

(2) The main body of the module is up-loaded XOOPS_TRUST_PATH/modules/pico as follows.

(3) The Smarty plug-in (two files) is up-loaded XOOPS_ROOT_PATH/class/smarty/plugins as follows. Please anxiously and overwrite though the file of this name might already exist if d3forum etc. were installed before.

(4) The PEAR file is up-loaded XOOPS_TRUST_PATH/PEAR/as follows. (TextWikiOnly at the time of it is time when however... )

(5) WYSIWYG Editor for common is up-loaded XOOPS_ROOT_PATH/common/as follows. (Only when the WYSIWYG function is necessary. )

(6) The directory is made under XOOPS_ROOT_PATH/modules/by a favorite name (It is assumed contents), and the module front end is up-loaded there.

(7) Contents to display in the module there making the directory of (6) and this name under XOOPS_TRUST_PATH/wraps/ It up-loads it by the FTP. If the link between files is a relative link, the link need not be especially rewritten. (Only when you use page wrap function. )

(8) It enters the management screen of XOOPS used, and it installs it from the module management.

It is OK only according to the procedure of (6) - (8) to install pico since piece second.


As for the file composition, if only the main body of the module part is basically up-loaded in the superscription, it is OK. There is an announcement so when it is necessary to overwrite the front end part in some reasons (addition and default CSS change in the picture file).

All installed pico modules from the module management if necessary (There is an announcement when it is necessary)Module updateIs done.

The module update is indispensable to update from especially 1.0 affiliates to 1.1/1.2 affiliates.


  • From the module managementModule uninstallationIt does.

  • When only one piece of two or more pico modules that are is uninstalled, only the module front end is deleted by the FTP etc.Please delete the wrap directory properly if necessary.

  • You may delete the main body of the module when all pico modules are deleted, and it never uses it. However, we will recommend the setting of XOOPS_TRUST_PATH to be left.


Your should would being better to go immediately after the installation is an authority of top category setting. Please enter "Category access right limit" from the management screen, and give the permission setting appropriately. (Refer to the category access right limit. )

The first putting in the future because of becoming of this setting the base when the category is made might be and there not be trouble.

It is necessary to do import at this point when complete succession from TinyD and other pico is done. (synchronous import/reference)

Because when import is done later after new contents are previously made, all made new contents are erased. (The purpose of this specification is to succeed the article number etc. , and it is not avoided. )

The category and contents are only basically made there when it is possible to prepare it.
Properly, it edits and it deletes it.

Hereafter, it explains each controller.

Category making/edit

Parents category
The parents category of the category is selected.
Virtual passing
It is correspondence to the wrap directory when page wrap function is used. The relative path from the wrap directory is described from slash (/). Refer to Tips for details.
It is a title of the category.
It is an explanation of the category. When a category top screen is only a contents list display, it has the meaning. In the default template, the processing such as BBCode automatic links and automatic changing line is passed, and after it is escaped, HTML special character is displayed in the upper part of the contents list.
The order of display
It is a display priority level of the category at the same level. One with few figures is displayed ahead (on). It doesn't have the meaning in the relation to the category with different parents category and level.
It is a function that "General setting" of each category can be changed (superscription). Refer to Tips.

It flies to a general setting of the management screen only a top category when "Edit" is done by a special category.
This is a specification of not abnormality but pico.

The reason for categories other than the top is that it is only a system that does a general setting that becomes basic in override.

For instance, the category title of a top category becomes "Message of a top module" of a general setting. The top category option is each setting of a general setting.

I think coming with the pin though it is not thought that it is easy to understand when making it to the word if it actually uses it.

Contents making/edit

The category that contents belong is selected. When the category without contribution/edit authority is selected when changing from the initial state, it is necessary to note that the contribution is refused.
Virtual path
When the wraps mode is used, it becomes the part PATH_INFO of URI. When page wrap filter is used, the meaning of relative path from the wrap directory is held concurrently.
It is a title of contents.
HTML header
It inputs it here when there is HTML header that outputs only to specific contents. If the entire module is an object, it is necessary to use "Common HTML header of contents" of a general setting. It is displayed by turning on the check box "HTML header customizing part display" when the input form is not displayed.
It is an edit form of the text. The input support part is greatly different depending on the text edit editor. When page wrap filter is used, it doesn't have the meaning.
Text filter
Refer to the text filter item below.
The order of display
The display priority level of contents in the same category in the list and the menu is specified. It is displayed in contents with few these numerical values ahead (on).
Contents not to want to open the item of starting writing to the public turn off here.
It displays it to page Nabis.
It becomes the display object of page navigation.
It displays it in the menu.
It becomes a display object in the contents menu.
It is possible to comment.
Checked contents mean the comment is applied by the d3forum comment integration. If the comment function doesn't function, it doesn't have the meaning.
Text cash
It is specified whether to use the text cash. As for turning on, because the text cash dares to be used when retrieving it, it might be as acceptable for contents that the content of the output is different depending on the inspection condition as the php code the retrieval object and to do though should make to turning off.
The date when contents were made is indicated. After it is made first, it is not updated.
The date when contents were updated is indicated. Whenever changing, it is updated.

When the edit is repeated several times, edit screen under "History" is accumulated. A past version can be referred to from a link here and it download it.
Moreover, the difference with the version just before the difference with present can be confirmed. Because the change point is classified, the difference might be understood only from glancing.

The number of preservation of histories is specified by a general setting.

Text filter

Page wrap
Contents are read from the file corresponding to a virtual in wrap directory path, and the text is disregarded.
The template is done in Perth Smarty. Smarty tag general like < $xoops_url > etc. can be used. It doesn't keep effective excluding the moderator of a pertinent category.
Php code
It passes it as an argument of the eval() function of php. Naturally, is scope local, and < to beginning the PHP code?The php sign is unnecessary. It doesn't keep effective excluding the moderator of a pertinent category.
HTML special character escape
It is so-called htmlspecialchars().
PEAR TextWiki
PEAR TextWikiIt is undergone plastic operation by the rule.
Emoticon conversion
It is emoticon of Textsanitizer conversion.
BBCode conversion
BBCode and the automatic link conversion of Textsanitizer become effective.
Automatic changing line
The line feed code is converted into < br/>. It is so-called nl2br().

Filter item Input value in management screen
Smarty(XoopsTpl) xoopstpl
Php code eval
HTML special character escape htmlspecialchars
PEAR TextWiki textwiki
Emoticon conversion smiley
BBCode conversion xcode
Automatic changing line nl2br

Shift from TinyD

The shift from TinyD to pico must be not very difficult.

It is likely to become the following procedures though it becomes complex a little when shifting with same dirname.

  • Pico for temporary is installed in another dirname (module management).
  • It is import to pico for temporary as for shift former TinyD (pico management screen).
  • The image and the wrap file, etc. move and it is confirmed that it is unquestionable.
  • Shift former TinyD is uninstalled (module management).
  • Deletion of file of shift former TinyD (FTP etc.)
  • Pico installation on former dirname (module management)
  • It is import in new pico from pico for temporary (pico management screen).
  • Copy/movement of image and wrap file, etc.

If the import is done from the management screen, it operates almost without trouble when contents are only DB contents.
Please copy it onto the module front end side if necessary though only passing the image becomes a problem.

When contents are page wraps, it is necessary to copy a certain file onto the wrap directory under ..content/.. directory of TinyD. After the import is done from the pico management screen, it is likely to only have to copy it.

When the WRAP3 mode etc. are used with TinyD the former, pico the shift ahead should turn on the wraps mode.

Moreover, to copy it from TinyD onto pico in each article, you will individually still export the whole from management screen-contents managing for the import doing and temporary collectively to pico for temporary.

Management screen

Contents managing collectively

To make the operation etc. that step over the category easy to do, the controller who can manage contents by the batch on the management side is prepared though all contents can be edited and be managed basically on the side of opening to the public in pico.

First of all, the contents list of the object category is displayed on the screen lower half by pushing the right "Transmission" after the edited category is selected by the drop down. When "All contents" is selected, all contents are displayed without the category relation.

The batch change can be done by pushing "Transmission" button under the screen after each form element of this list screen is rewritten and checked.

After the check box in the rightmost of each line is checked, the button the under the table is clicked when deletion/movement/copying it putting the article together.

It is copied onto a top category of the targeted pico module when copying it to other pico modules (export).

Contents deleted in the past can be referred to to select the category by selecting "Contents that have been deleted". However, it will restore it from the downloaded content by the hand work when reviving because neither the edit nor the revival directly can be done.

Category access right limit

In pico, an authority detailed in each category can be set.

First of all, the edited category is displayed by pushing the right "Transmission" by the drop down after it selects it as two screens of "Each group" and" ..the authority to the object category...

Because all groups are displayed in "Authority of each group", each group is checked to become an appropriate authority, and it removes.

In "Each user's authority", it controls by user-name (uname) or user number (uid). Please remove the check on the inspection authority when you erase the user who has already been added. The entry of the user is deleted when there is no inspection authority because the inspection authority becomes the assumption of all authorities.

As for these authorities, all logical adds (OR) become effective.

For instance, the inspection authority is only given to "Registered user group", and the user who belongs to both groups of that to which the moderator authority is given has the moderator authority in "Privileged Netscape User Group".

If the moderator authority is individually given, it still has the moderator authority in "Each user's authority" even if the user belongs only to "Registered user group".

Because the setting to deprive of the authority individually doesn't exist, each group will be giving an authority as low as possible.

Hereafter, it explains each authority.

Inspection authority
It is an authority that the existence of contents (title etc.) can be recognized. It becomes the assumption of all other authorities.
Full text inspection authority
It is an authority that the text of contents can be read.
Contribution authority
It is an authority that a new article can be contributed to a pertinent category. As for the contribution by the user who doesn't have "Unnecessary approval" authority, even if this authority exists, even approval by the moderator is not displayed.
Edit authority
It is an authority that contents in a pertinent category can be edited. Even if this authority exists, the change by the user who doesn't have "Unnecessary approval" authority is not reflected in the moderator until being approved. (It is displayed like the data as before. )
Deletion authority
It is an authority to delete contents. As for the deletion, it is necessary not to depend on the presence of "Unnecessary approval" authority, and to note the point immediately reflected.
Approval is unnecessary.
It is an authority that the contribution and the edit are immediately reflected. It is necessary to permit only to the user who can trust it to some degree.
It is a manager authority of the category. Concretely, invisibility contents can be seen, and a part of dangerous filter that can approve application by can the edit of the category be used, too. However, it doesn't reach the module manager authority as not putting in the management screen side etc.
Subcategory authority in creation
It is an authority to make a new category under a pertinent category.

The authority of the subcategory made from the side of opening to the public is made automatically by quite the same content as the parents category.

Therefore, time when the authority of an individual category is set again later will decrease greatly if it uses and an appropriate authority is set about a top category at the first stage.



Import can be done from TinyD or other pico installed in the same XOOPS site in each module.

As for the contents data in the current pico module, it is necessary to note all the deleted points because it is import of each module circle to the end. When import in each contents is necessary, the article is selected from "Contents managing collectively" in the reading origin, and "Copy to other pico" ..(.. is done. After the import is done to another pico temporarily made, similar work is done when copying it from TinyD in each article. )

The category of the current pico module (The authority setting to the category also :) is not deleted exceptionally only for import from TinyD. This is because the category doesn't exist in TinyD.

If it is import from other pico, the import is wholly done as for the category and the category authority.

Please use the contents managing collectively when you want copy/to move only a certain specific article.


Please execute it when tedious information that has been given to earn the speed like the number etc. of votes in the tree structure and contents of the category becomes amusing.

Following is php if it doesn't synchronize though must not be so. MyAdminThe vote table and the category table might be convenient for fixing up after it fiddles directly.

Template management

It is so-called tplsadmin.
The template of the module is managed.
Only when altsys is installed, it is displayed.

Block/access control

It is so-called blocksadmin.
The access control concerning the block management, the module, and the block can be done.
Only when altsys is installed, it is displayed.

General setting

The wraps mode is made effective.
The above-mentioned wraps mode is made effective. Please do not keep effective in the server that cannot use the PATH_INFO function of Apache.
The mod_rewrite mode is made effective.
It makes it to URI like more static contents by using the mod_rewrite function of Apache. Module front end right under when balance with wraps mode is important, and wraps mode is turned on. Htaccess_wraps. It renames it to htaccess. Similarly, at off, the wraps mode : .htaccess_normal. It renames it to htaccess. 500 according to this renaming If Internal Server Error goes out, you will give up the use of this mode.
Automatic registration of HTML wrap file DB
It is a function to register the HTML file put on the directory for page wrap automatically as contents. Please refer to Tips for details.
Message of top module
It is an objection displayed when the contents list is made a module top screen. It is "Explanation" field of a top category more accurately.
The automatic generation menu is displayed in a top module.
The delimited menu panel of each hierarchical category is displayed in a top module when assuming, "It is".
The list is displayed a top category.
Contents the subcategory and right under are displayed in the list type for "It is" in a top category. Contents whose display priority is the highest in the category are displayed for "No".
- That is given to priority when "The automatic generation menu is displayed in a top module" is made "It is".
The bread crumb is displayed.
It chooses from "It is" and "No". When the theme corresponding to xoops_breadcrumbs is used, you might nullify it.
Page navigation is displayed.
The link to the print screen is displayed.
The link introduces to the friend is displayed.
The tellafriend module is used.
It is a setting the link "Introduce it to the friend" icon ahead. It becomes a link of tellafriend to a mail form screen for "It is". It becomes a link of mailto (A local mailer stands up) for "No".
The concept "Contributor" is made effective by the retrieval.
You will assume, "It is" when using it as a module of "No" and the contribution type when pico is used as static contents.
Default filter set
An initial check of "Text filter" on the contents making screen is specified. Default is htmlspecialchars. | smiley | xcode | It is nl2br. Smiley when HTML contents are mainly used | xcode | You will assume nl2br.
Compulsion filter
The filter that the content input as a text passes without fail is described. Actually, the usage of compelling setting htmlspecialchars to permit the guest etc. the article contribution might be almost all.
Prohibition filter
The filter that seems to become a problem when used is nullified here. Two (the Smarty filter and the PHP(eval) filter) are recommended to be prohibited when the contribution is permitted excluding the manager. The example of setting in that case becomes "xoopstpl,eval".
Contents are displayed in the submenu.
The display to the submenu for the main menu and the multi menu is assumed to be "Only submenu" or "The submenu and contents are displayed this row" is done or it selects it here. The submenu of pico is done for the layered structure.
Contents also display this row in sitemap.
It is an operation of the plug-in for the sitemap module setting. Sitemap usually displays even only the category level, and only the module comes to display even the contents title by assuming here to be "It is". Contents to be displayed are only the one specified, "Display it in the menu" when contents are edited.
The vote function is used.
It chooses from "It is" and "No".
Time restriction of guest vote
It is a setting to prevent a double vote from the guest. The vote from same IP is not accepted at the number of intervals at the specified second. The guest vote is prohibited when assuming 0. By the way, the registered user doesn't become a double vote but becomes shape to correct the vote on the previous state though can vote for one contents even times how many.
Common HTML header of contents
It describes it here when there is HTML header that outputs to the entire this pico module.
URI of CSS for module
URI of the CSS file is specified. A special notation named mod_url can be used, and it replaces XOOPS_URL/modules/(front end dirname). The default value by 1.0 Mod_url/index.php? since 1.15 though it was mod_url/index.css, and shape to read the file put on the module front end right under as CSS. Shape to use CSS as page=main_css and the template became default. Please describe absolutely/relative path to the CSS file if CSS to be independent as the file uses and it avoids it.
Image file directory
The directory where the image for this module is stored is specified by the relative path from the module directory. Default is images.
Text edit editor
The editor where the text is edited is specified. As for xoopsdhtml, a general XOOPS edit screen, common/spaw, and common/fckeditor mean common edition SPAW and FCKEditor respectively.
Is the history function preserved until the generation how many?
The number of preservation of edit histories is set. It is likely to survive at the emergency if it makes it to the large figure if there is room in the database capacity. Default is the 20th generation.
Time of preservation as fee of age of history (sec)
The history generation collects with surprising swiftness when the same contents are updated many times in detail. It is a setting because it doesn't preserve it as a history when time doesn't pass from the last update so much to avoid it. Default is 300sec (for five minutes).
The browser cash of picture file (Only at the wraps mode. )
Time that the file can be cached is set though the file is forwarded from the wrap directory in the wraps mode. It might be unquestionable for a long figure in many cases. Default is 3600sec (For one hour).
Dirname of d3forum that does comment integration
When the comment is used, dirname of d3forum that becomes an object is specified.
Number of forum where comment integration is done
When the comment is used, the forum number of d3forum that becomes an object is specified.
Setting of event notification function
Standard event notification setting of XOOPS
A specific event is made effective.


Block name Template Explanation Block reproduction Block option
Menu (dirname)_block_menu.html The contents list of each category is displayed. Acceptable Including category Shibori and block template
Content of contents (dirname)_block_conetnt.html Contents of the number specified by the block option (text) are displayed. Acceptable Contents number and block template
Contents list (dirname)_block_list.html The list display is done in order by which contents are specified. Acceptable Including category Shibori, the order of display, and block template

"Including category Shibori" of the block option is a setting to target only a certain specific category.

To target only the top category right under (contents in the inside), it is specified only 0. It is necessary to note that only the right under of the category number becomes an object to the end.

The fifth category grader (cat_id=5) In the under, there are two of two pairs (cat_id=11) subcategories for 5 a couple years and (cat_id=10) and five years, and if it wants to make all contents concerning the fifth grader displayed, it specifies it as follows. (It is noted that the delimiter is a comma. )


If URI is seen in the category display, the category number is sure to be understood at once.

The contents number is specified in "Content of contents" block. When it is from URI on the side of opening to the public when virtual is passed in the wraps mode, the contents number is not easily understood. In this case, please refer to the link on "Contents managing collectively" screen.

In "Template of the block", the method of using a different template for an individual block is being offered. Default is DB template registered when the module is installed, and the following resource names.


An arbitrary template can be allocated in the block by rewriting here.

For instance, when file (themes/default/pico_block_menu_customized.html) named pico_block_menu_customized.html is put under theme default, and the file is made a template, it describes it as follows.


When the resource type is not specified, the standard of passing : It is necessary to note XOOPS_ROOT_PATH/themes/(It remembers because this is a basic specification of XOOPS and there is no disadvantage. )

Of course, the FILE template of the absolute path specification can be used. In this case, the resource type specification is necessary.


The number of DB templates is increased to use altsys and tplsadmin, and the hand is also effective. The file is added under XOOPS_TRUST_PATH/modules/pico/templates/and the module is updated. The DB template is only added only by it. (common specification of D3 module)

Of course, it is not necessary to worry the remainder as garbage because each added DB template is deleted when the module is uninstalled.

Template set

Template name Explanation
pico_admin_category_access.html For category access right limit of management screen
pico_admin_contents.html For contents managing of management screen collectively
pico_admin_import.html For import/synchronization of management screen
pico_block_content.html For contents content block
pico_block_list.html For contents list block
pico_block_menu.html For menu block
pico_inc_breadcrumbs.html Bread crumb part
pico_independent_print.html Screen for print
pico_independent_rss20.html For RSS output
pico_independent_singlecontent.html For single content
pico_main.css CSS when pico is displayed as the main part
pico_main_category_form.html Edit form of category
pico_main_content_form.html Edit form of contents
pico_main_listcontents.html For contents list display
pico_main_menu.html For the automatic generation top menu display
pico_main_viewcontent.html For contents detailed screen

The part of pico replaces the module instance name.

Kind of event notification

The event notification prepared in pico is only kinds.

Approval waiting
It is notified when approval is necessary in a new contribution and the content alteration, etc.The notification destination is only a moderator of the category that the article belongs. The notification of the category without the moderator authority is not transmitted though even the ordinary user can register the event notification. Moreover, it is not still notified when approval is not necessary even if there are a contribution and a change.


Use of category visualization passing

There is a category in pico unlike wraps.

The HTML file put on the wrap directory can be automatically Categoraized by setting a virtual of the category passing well.

For instance, it is assumed that the pico module was installed with dirname named class to make the class homepage of the elementary school. XOOPS_TRUST_PATH/wraps/class/solving, and the directory of each school year is made in the right under, and the wrap directory in that case makes the directory of the class though it becomes each school year directory under. (construction of hierarchy)

 20class/ (Correspond to a top category. )
5/ (Correspond to category "The fifth grader". )
        5-2/ (Correspond to category "It is two pairs for five years". )

The directory of each class is still made from the category management like the tree on that, and a virtual passing is specified. For instance, the category of "It is two pairs for five years" :. Parents..category..virtual..pass.(Naturally, it is necessary to make the category "The fifth grader" first. )

In this case


The access assumes that it is automatically a category of "It is two pairs for five years" and is treated. It is even if not registered as contents. Of course, to the bread crumb

 20 top >  the fifth grader >  It is two pairs for five years &
gt;  (page name. ) 

Printer friendly
Tell a friend
Votes:198 Average:3.28
top of the category
Username or e-mail:


Remember Me

Lost Password?

Register now!