... Elxis version 2009.1 codename Hecate is out, download it from Elxis Download Cender (EDC) ...

IOS Sitemap

From Elxis Official Documentation

Jump to: navigation, search
Component IOS Sitemap by Is Open Source generates a site map for your Elxis site and also special maps for Google, Yahoo and other search engines. If you have more than one published language then it will automatically generate separately maps for each language. To see the component is action visit Isternia sitemap.


Contents

License and Copyright

Component IOS Sitemap up to version 1.6 was a commercial component.
Since version 2.0 IOS Sitemap is released for free under the Creative Commons 3.0 Attribution Share Alike license.
Copyright (c) 2008 - 2009 Ioannis Sannos (Is Open Source). All rights reserved


Compatibility

  • Elxis 2008.x, 2009.x
  • PHP 5.x


Features

  • HTML sitemap generation.
  • XML sitemap generation.
  • Multi-lingual sitemaps (one sitemap per published language).
  • Option to create a 2-columns layout for the HTML site map.
  • Option to display icons next to each link on the HTML site map.
  • Option to display extra informational links for some third party components.
  • Easily change of the HTML sitemap style by editing the CSS file.
  • CSS style for the XML site map.
  • Valid XML and (X)HTML sitemaps.
  • SEO PRO extension for search engines friendly URLs.
  • Extensions for all famous Elxis third party components. You can easily add/create more.
  • Full Object Oriented programming (OO).
  • Does not uses database. So it is database independent.
  • Optimized for fast SEO PRO URLs generation.
  • Static cache ready (Elxis 2009.0+).
  • RTL compatible.
  • Multi-language interface.
  • Also compatible to PHP 5.3 (version 2.2)


Configuration

Sitemap's configuration is split into 3 tabs.


Menus

Here you set the menus for which you wish the Sitemap to be generated from. To enable a menu just check the checkbox next to it. In order for the site map to work it is required to have at least one menu enabled. You can also set the order of the menus. The systemmenu and the usermenu can not be enabled in Sitemap.


Display

Various Sitemap settings, regarding mostly its layout.

Display Options settings

  • Show Menu Titles. If yes, Sitemap will display the menu titles.
  • Expand Content Sections. If yes, Sitemap will display the section's categories.
  • Expand Content Categories. If yes, the sitemap will display the categories's articles.
  • Expand IOS Reservations locations. If yes, Sitemap will display the locations's hotels (IOS Reservations is required).
  • Expand IOS Eshop categories. If yes, Sitemap will display the category's products (IOS Eshop is required).
  • Expand IOS Downloads categories. If yes, Sitemap will display the category's listings (IOS Downloads is required).
  • Full expand. If yes, Sitemap will generate more links for some third party components to pages other than products, listings, hotel, etc, like help or contact pages.
  • Show Copyright. If yes, Sitemap will display a copyright message at the bottom of the page (recommended).


Second column

IOS Sitemap can show the HTML sitemap links in 2 columns. If you wish to use that second column enter here the, comma separated, parent menu item IDs you wish to be displayed in the second column. To help you finding the Item IDs, IOS Sitemap lists you next to this setting a full list of your current menus items that have no parent items (top level menu items).


Cache

Select if you wish to use cache or not. Caching works independently from the global Elxis standard cache setting. Standard cache makes IOS Sitemap component to be loaded up to 50% faster.

The component also supports Elxis 2009.0 Static cache. If Static cache is enabled in Elxis global configuration then the IOS Sitemap cache is automatically being disabled as the Static Cache is, by far, a better caching system.
Component's loading time with Static cache enabled can be decreased up to the incredible number of 90%!


Extensions

Extensions extend sitemap's capability allowing it to expand a link to a component and create a detailed links tree for that particular component. Select which extensions you wish to enable for your sitemap. Extensions for non-installed components can not be selected. Here is a list of the supported extensions (more might have been added by the time you download the component).


XML (Google) Sitemap

IOS Sitemap also generates multi-lingual XML site maps for Google, Yahoo, and other search engines. IOS Sitemap can generate separate XML sitemaps for each published language. The SEO PRO URLs to these site maps are formatted like this:

http://www.mysite.com/google_language.xml

Where language an Elxis valid language name.

Sample multi-lingual XML site maps:
http://www.mysite.com/google_english.xml
http://www.mysite.com/google_greek.xml
http://www.mysite.com/google_german.xml

http://www.mysite.com/google.xml point to the sitemap of the site's default language


SEO Tips

Enable Elxis SEO PRO
All Elxis powered sites should have SEO PRO enabled!

Add sitemap to your robots.txt file
Copy-paste the line bellow to robots.txt:

Sitemap: http://www.mysite.com/google.xml

Submit your Sitemap via an HTTP request to search engines.
Request format: <searchengine_URL>/ping?sitemap=sitemap_url
sitemap_url should be URL encoded!

Here is this request for Google:

http://www.google.com/ping?sitemap=http%3A%2F%2Fwww.mysite.com%2Fgoogle.xml
If you don't use SEO PRO then re-format properly the above URLs.


Translations

As the component re-created all previous translations were lost. IOS Sitemap is translated into English, Greek, Serbian and Srpski languages. If you wish you can translate IOS Sitemap in more languages.

Translation instructions

  • Copy english.php file and rename it as the language you wish to translate it into (example: german.php).
  • Translate the new language file. It won't take you more than 30 minutes.
  • Save the file as UTF-8 without BOM characters and place it inside folder language.
  • That's it, IOS Sitemap's interface is now available in your language!

If you wish to share your translation with the community please send the translated file to Ioannis Sannos (datahell) in order to include it in the component's main release. You will find me at the Elxis forums as datahell.


For developers

In this section we will show you how you can build by your own a sitemap extension for a third party component. We assume your component is named com_sample. Let's go through all required steps to create a sitemap extensions for the com_sample component.

Create extension file

Create a PHP file that will become the sitemap extension. Name it as com_sample.php and place it inside administrator/components/com_sitemap/extensions/ folder.


Write sitemap class

Open com_sample.php file and create in it a PHP class named sitemap_sample. This class should have at least two public methods: isOfType and getTree.

isOfType checks if the current menu item object belongs to our component so it must be processed by our extension.


public function isOfType($parent) {
	if (strpos($parent->link, 'option=com_sample')) { return true; }
	return false;
}

getTree generates the links tree of our component. Each node of this tree is an object. All nodes are being added to an array which finally is returned as the function's output. Here is a sample node.

$node = new stdClass;
$node->name = 'Link title'; //the node title
$node->link = 'index.php?option=com_sample&amp;task=xxx'; //non sef link to this items
$node->seolink = 'com_sample/xxx/'; //for SEO PRO optimazation try to always fill this in
$node->id = $_Itemid; //calculated itemid for that component
$node->modified = time(); //timestamp this link was last modified
$node->changefreq = 'daily'; //always, hourly, daily, weekly, monthly, yearly, never
$node->priority = '0.7'; //0.0 to 1.0
$node->pid = 0; //parent item id
$node->icon = 'cube'; //icon for the HTML site map
 
$list['xxx'] = $node; //assign node to the final list tree (xxx is a sample list index).


Initialize extension

Your sitemap_sample class should be initialized and loaded by IOS Sitemap when ever the extension file is included. So, after the end of the sitemap_sample class we write this:

global $xartis;
$tmp = new sitemap_sample();
$xartis->addExtension($tmp);
unset($tmp);


Finished?

When your extension is ready send it to Ioannis Sannos (datahell) to add it to the IOS Sitemap main release in order to ebcome accessible to mroe people.


HTML Sitemap preview

Here is a screen shot of the HTML map generated by IOS Sitemap. The display of icons next to the children links is enabled.

Personal tools