avatar

Как в CMS Made Simple сделать автоматический sitemap для новостей

Рейтинг 4 из 5. Голосов: 235
Masha 3 года назад
2
,

0


Ответы (2)

Masha
avatar
Администратор За 6 месяцев на форуме За год на форуме За два года на форуме за 10 сообщений Девушкам форума
57 Jan 10
3 года назад
Как в CMS Made Simple сделать автоматический sitemap для новостей Я установила модули CGExtensions и SiteMapMadeSimple но он генерирует карту сайта только для страниц и меню сайта но мне нужно для всех опубликованых статей карта сайта
отправить
+ 0

Den
avatar
Модератор За 6 месяцев на форуме За год на форуме За два года на форуме за 10 сообщений За 100 сообщений за 500 сообщений За 700 сообщений №1 по сообщениям
1026 Mar 10
3 года назад
в файле добавьте функию
PHP:
function GetAllNewsUrl() { $gCms = cmsms(); $results = $res = $params = array(); $detailpage = 23; $db = $this->GetDb(); $query = "SELECT news_title,news_url,news_id,modified_date FROM " . cms_db_prefix() . "module_news WHERE status = 'published'"; $result = $db->Execute($query); while ($result && !$result->EOF) { $aliased_title = munge_string_to_url($result->fields['news_title']); $prettyurl = 'news/' . $result->fields['news_id'] . '/' . $detailpage . "/$aliased_title" . $detailtemplate; $res['prettyurl'] = $prettyurl; $res['id'] = $result->fields['news_id']; $res['time'] = $result->fields['modified_date']; $parms = array(); $parms['articleid'] = $result->fields['news_id']; $res['url'] = $this->CreateLink('cntnt01', 'detail', $detailpage, '', $parms, '', true, false, '', true, $prettyurl); $results[] = $res; $result->MoveNext(); } return $results; }
и внутри функции
CODE:
function GenerateSiteMap(&$params) {
после $output[] = $obj; }добавьте цикл
CODE:
$news = $this->GetAllNewsUrl(); foreach ($news as $onecontent) { $obj = new StdClass(); $priority = 0.7; $obj->priority = number_format($priority, 1, '.', ''); $obj->encoded_url = cms_htmlentities($onecontent['url']); $obj->cachable = false; $obj->child_count = 0; $obj->hierarchy = ''; $obj->date = trim($db->DbTimeStamp($onecontent['time']), "'"); $obj->url = $onecontent['url']; $obj->id = $onecontent['id']; $obj->type = 'news'; $obj->frequency = $this->GetPreference('change_frequency', 'auto'); if ($obj->frequency == 'auto') { $obj->frequency = 'hourly'; if ($mdate < $onedayago) $obj->frequency = 'daily'; if ($mdate < $oneweekago) $obj->frequency = 'weekly'; if ($mdate < $onemonthago) $obj->frequency = 'monthly'; if ($mdate < $oneyearago) $obj->frequency = 'yearly'; } $output[] = $obj; }
отправить
+ 0


Чтобы оставить комментарий войдите или зарегистрируйтесь