File Manager
<?php
#-------------------------------------------------------------------------
# Module: SiteMapMadeSimple - A module to easily create a sitemap for
# google maps, and other search engines.
#
# Version: 1.0, calguy1000 <calguy1000@hotmail.com>
#
#-------------------------------------------------------------------------
# CMS - CMS Made Simple is (c) 2005 by Ted Kulp (wishy@cmsmadesimple.org)
# This project's homepage is: http://www.cmsmadesimple.org
# The module's homepage is: http://dev.cmsmadesimple.org/projects/skeleton/
#
#-------------------------------------------------------------------------
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# However, as a special exception to the GPL, this software is distributed
# as an addon module to CMS Made Simple. You may not use this software
# in any Non GPL version of CMS Made simple, or in any version of CMS
# Made simple that does not indicate clearly and obviously in its admin
# section that the site was built with CMS Made simple.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Or read it online: http://www.gnu.org/licenses/licenses.html#GPL
#
#-------------------------------------------------------------------------
$cgextensions = cms_join_path($gCms->config['root_path'],'modules','CGExtensions','CGExtensions.module.php');
if( !is_readable( $cgextensions ) )
{
echo '<h1><font color="red">ERROR: The CGExtensions module could not be found.</font></h1>';
return;
}
require_once(dirname(dirname(__FILE__)).'/CGExtensions/CGExtensions.module.php');
class SiteMapMadeSimple extends CGExtensions
{
function GetName() { return 'SiteMapMadeSimple'; }
function GetFriendlyName() { return $this->Lang('friendlyname'); }
function GetVersion() { return '1.2.7'; }
function GetHelp() { return file_get_contents(dirname(__FILE__).'/help.inc'); }
function GetAuthor() { return 'calguy1000'; }
function GetAuthorEmail() { return 'calguy1000@hotmail.com'; }
function GetChangeLog() { return file_get_contents(dirname(__FILE__).'/help.inc'); }
function GetDependencies() { return array('CGExtensions'=>'1.31'); }
function IsPluginModule() { return true; }
function HasAdmin() { return true; }
function HandlesEvents() { return true; }
function GetAdminSection() { return 'extensions'; }
function GetAdminDescription() { return $this->Lang('moddescription'); }
function MinimumCMSVersion() { return "1.11.3"; }
function LazyLoadAdmin() { return TRUE; }
function InstallPostMessage() { return $this->Lang('postinstall'); }
function UninstallPostMessage() { return $this->Lang('postuninstall'); }
function UninstallPreMessage() { return $this->Lang('preuninstall'); }
function VisibleToAdminUser()
{
return $this->CheckPermission('Modify Templates') ||
$this->CheckPermission('Modify Site Preferences');
}
function InitializeFrontend()
{
$this->RegisterModulePlugin();
$this->RestrictUnknownParams();
$this->RegisterRoute('/[sS]itemap.xml$/');
}
function GenerateSiteMap(&$params)
{
$gCms = cmsms();
$db = $this->GetDb();
$smarty = $gCms->GetSmarty();
$config = $gCms->GetConfig();
$contentops = $gCms->GetContentOperations();
$allcontent = $contentops->GetAllContent(false);
$priority_field = $this->GetPreference('priority_field','');
$oneyearago = strtotime("-1 year");
$onemonthago = strtotime("-1 month");
$oneweekago = strtotime("-1 week");
$onedayago = strtotime("-1 day");
$onehourago = strtotime("-1 hour");
$output = array();
foreach( $allcontent as $onecontent ) {
$depth = count(explode('.', $onecontent->Hierarchy()));
if (!$onecontent->Active()) {
continue;
}
if ($onecontent->Type() == 'separator') {
continue;
}
if ($onecontent->Type() == 'sectionheader') {
continue;
}
if ($onecontent->Type() == 'pagelink') {
continue;
}
if( !$onecontent->ShowInMenu() &&
!$this->GetPreference('allow_hidden',0) ) {
continue;
}
// test this
if ( strpos($onecontent->GetURL(), $config['root_url'] ) === false ) {
continue;
}
$obj = new StdClass();
$priority = 0.7 / $depth;
if( $onecontent->DefaultContent() ) {
$priority = 1.0;
}
if( !empty($priority_field) && $onecontent->HasProperty($priority_field) ) {
$val = intval($onecontent->GetPropertyValue($priority_field));
if( $val >= 1 && $val <= 10 ) {
$priority = (float)(10 - $val + 1) / 10.0 ;
}
}
$mdate = '';
if( version_compare(CMS_VERSION,'1.10-beta0') >= 0 ) {
$mdate = $onecontent->GetModifiedDate();
}
else {
// older versions of CMSMS
$mdate = $onecontent->mModifiedDate;
}
$unixtime = $db->UnixTimeStamp($mdate);
$obj->priority = number_format($priority, 1, '.', '');
$obj->encoded_url = cms_htmlentities($onecontent->GetURL());
$obj->cachable = $onecontent->Cachable();
$obj->child_count = $onecontent->ChildCount();
$obj->hierarchy = $onecontent->Hierarchy();
$obj->date = $mdate;
$obj->url = $onecontent->GetURL();
$obj->id = $onecontent->Id();
$obj->type = $onecontent->Type();
if( !$onecontent->Cachable() ) {
$obj->frequency = 'always';
}
else {
$obj->frequency = $this->GetPReference('change_frequency','auto');
if( $obj->frequency == 'auto' ) {
$obj->frequency = 'hourly';
if( $unixtime < $onedayago ) {
$obj->frequency = 'daily';
}
if( $unixtime < $oneweekago ) {
$obj->frequency = 'weekly';
}
if( $unixtime < $onemonthago ) {
$obj->frequency = 'monthly';
}
if( $unixtime < $oneyearago ) {
$obj->frequency = 'yearly';
}
}
}
$output[] = $obj;
}
$smarty->assign('internal_pretty_urls',$config['internal_pretty_urls']);
$smarty->assign('assume_mod_rewrite',$config['assume_mod_rewrite']);
$smarty->assign('output',$output);
$template = $this->GetPreference('dflt_xml');
if( isset($params['template'] ) ) {
$template = trim($params['template']);
}
$template = 'xml_'.$template;
$xmlfile = $this->ProcessTemplateFromDatabase($template);
return $xmlfile;
}
} // class
?>
File Manager Version 1.0, Coded By Lucas
Email: hehe@yahoo.com