-Цитатник

Фальсификации выборов президента: как это делается - (0)

Фальсификации выборов президента: как это делается Не смотря на огромное количество нарушений ...

АЛЫЕ ПАРУСА В ПЕТЕРБУРГЕ - (0)

«Алые паруса» — один из самых известных праздников в Северной столице, ...

Владимир Румянцев.Ангелы и коты - (0)

Владимир Румянцев.Ангелы и коты. Владимир Румянцев родился в 1957 году, рисовать начал в ...

фото Санкт-Петербурга - (0)

Санкт-Петербург Санкт-Петербург невероятно красивый город, думаю даже коренным "питерцам" будет и...

Ближневосточная проблема - простое объяснение за пять минут - (0)

Ближневосточная проблема - простое объяснение за пять минут  простое объяснение ближневосточ...

 -Фотоальбом

Посмотреть все фотографии серии природа фото Andy Mumford
природа фото Andy Mumford
05:54 16.05.2009
Фотографий: 40
Посмотреть все фотографии серии Общая
Общая
04:52 16.05.2009
Фотографий: 1
Посмотреть все фотографии серии позитиф
позитиф
03:00 01.01.1970
Фотографий: 0

 -Я - фотограф

 -Поиск по дневнику

Поиск сообщений в spacesite

 -Подписка по e-mail

 

 -Интересы

создание сайта продвижение сайтов авто бизнес

 -Сообщества

Читатель сообществ (Всего в списке: 1) Photoshopinka

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 15.05.2009
Записей:
Комментариев:
Написано: 1213

Как перенести сайт на MODx Revo на другой хостинг

Дневник

Четверг, 23 Августа 2012 г. 15:52 + в цитатник

Для переноса сайта на MODx Revolution на другой хостинг выполняем следующие шаги:

1. Входим в админку — чистим кеш и сессии

Site —> Clear Cache

Security —> Flush All Sessions

или

удаляем содержимое core/cache

2. Архивируем файлы сайта

Через SSH на UNIX системах можно сделать так:

tar -czf /path/to/backups/modx_revo_site.tar.gz /path/to/modx_doc_root/

 

3. Копируем архив на новый хостинг и разархивируем

Архив надо класть в ОТДЕЛЬНУЮ папку.

gunzip modx_revo_site.tar.gz

или

tar xvf modx_revo_site.tar

 

4. Делаем дамп БД

Либо используем phpMyAdmin, либо через SSH:

mysqldump -u username -p your_revo_db > /path/to/backups/my_revo_db.sql

 

5. Заливаем БД на новый хостинг

Либо используем phpMyAdmin, либо через SSH:

mysql -u username -p target_db < my_revo_db.sql

 

Вносим изменения в конфиг

core/config/config.inc.php

/* PATHS */ $modx_core_path= '/path/to/modx_doc_root/core/'; $modx_processors_path= '/path/to/modx_doc_root/core/model/modx/processors/'; $modx_connectors_path= '/path/to/modx_doc_root/connectors/'; $modx_manager_path= '/path/to/modx_doc_root/manager/'; $modx_base_path= '/path/to/modx_doc_root/'; $modx_assets_path= '/path/to/modx_doc_root/assets/'; /* HOST (used for command-line PHP stuff) */ $http_host='yoursite.com';

 

Апдейтим БД, т.к. некоторые пути хранятся там

UPDATE `your_revo_db`.`workspaces` SET path='/path/to/modx_doc_root/core/' WHERE id='1

 

Рубрики:  Создание сайта
MODx

Метки:  

Комментарии Disqus в MODx Внедрение

Дневник

Вторник, 07 Февраля 2012 г. 17:20 + в цитатник

Комментарии Disqus в MODx Внедрение

Система DISQUS, позволяющую подключить комментарии на абсолютно любую страницу сайта в Интернете посредством простого JavaScript одним из лучших начинаний в вебе за последние несколько лет. Это реально работающая штука. Чтобы пользоваться комментариями DISQUS нужно сначала зарегистрироваться в системе и добавить туда свой домен. Затем идем в Tools->install и выбираем код для Other or Custom - Universal code. Система дает два куска кода:

<div id="disqus_thread"></div>
<script type="text/javascript">
  /**
    * var disqus_identifier; [Optional but recommended: Define a unique identifier (e.g. post id or slug) for this thread]
    */
  (function() {
   var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
   dsq.src = 'http://....disqus.com/embed.js';
   (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
  })();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript=...">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a>

<script type="text/javascript">
//<! [ CDATA [
(function() {
    var links = document.getElementsByTagName('a');
    var query = '?';
    for(var i = 0; i < links.length; i++) {
    if(links[i].href.indexOf('#disqus_thread') >= 0) {
        query += 'url' + i + '=' + encodeURIComponent(links[i].href) + '&';
    }
    }
    document.write('<script charset="utf-8" type="text/javascript" src="http://disqus.com/forums/.../get_num_replies.js' + query + '"></' + 'script>');
})();
// ] ] >
</script>

Помещаем все это в один чанк, коорый подключил внутри контента. И тут начались грабли - MODX считает экранирование CDATA каким-то вызовом сниппета(тут я специально воткнул пробелы, чтобы не распарсился) и на этом загрузка страницы останавливается. Я просто унес эти два скрипта в JS-файлы, вот и всё.

Теперь просто вызываем чанк { { disqus } } в конце контента внутри шаблона страницы. У меня есть небольшая доработка для включения/выключения комментариев. Я сделал новый TV с именем comments и типом drop down list, в качестве значений указав "0||1" по умолчанию 0.

В итоге вызов чанка с помощью Phx преобразился так:

[ + phx:if=`[ * comments * ]`:is=`1`:then=`{ { disqus } }`+ ]

Подразумевается, что Phx уже установлен. Вот и всё.

источник http://webdev.vdzr.ru/articles/disqus-modx

Рубрики:  Создание сайта
MODx

Метки:  

каталог на CMS MODx ( Ditto + PHx )

Дневник

Четверг, 26 Мая 2011 г. 08:44 + в цитатник

Делаем каталог на CMS MODx ( Ditto + PHx )

Для работоспособности, приведённого ниже примера каталога для сайта на CMS MODx, необходимо установить плагин PHx
Пример структуры каталогаЭтот пример позволяет формировать структуру каталога автоматически, без какого либо участия со стороны администратора сайта. Редакторам остаётся лишь наполнить каталог добавляя папки ( дочерние ресурсы контейнеры) или простые документы ( дочерние ресурсы) .

Так как это решение базируется на ditto, то совсем не трудно развить этот пример до чего нибудь более интересного, например добавить теги или фильтрацию.

 

  

 

 

 
1) Создаём папку в дереве документов modx ( контейнер документов ), где у нас будет находиться каталог

2) Создаём шаблон для отображения каталога и для этого шаблона создаём две переменные ( tv )
cat - тип текст , значение по умолчанию - @CHUNK catalog
catimage - тип image  ( поле для ввода пути к изображению ) , визуальный компонент- image.

3) создаём чанк catalog

  1.  
  2. [*isfolder:is=`1`:then=`
  3. <div class="catalog">[!Ditto? id=`cat[*id*]` &parent=`[*id*]` &display=`all` &tpl=`catalog_tpl` &filter=`isfolder,1,1` &noResults=`{{ditto_empty}}` &sortBy=`menuindex` &sortDir=`ASC`!]</div>
  4.  
  5. <div class="catdocs">
  6. [!Ditto? id=`doc[*id*]` &parent=`[*id*]` &paginate=`1` &display=`all` &tpl=`catalog_content_tpl` &filter=`isfolder,1,2` &noResults=`{{ditto_empty}}` &sortBy=`menuindex` &sortDir=`ASC`!]
  7. </div>
  8. `*]
  9.  

Содержимое чанка выполняется если текущий документ папка (текущий ресурс - контейнер). &noResults=`{{ditto_empty}}` - чанк из которого берётся содержимое в случае если не найдены дочерние документы. Можно обойтись пробелом. Первый запрос выводит только папки , второй только документы в текущей папке. То есть вначале - каталог , ниже содержимое категории. 4) Выводим картинку и название категории, ниже список подкатегорий. Cоздаём чанк catalog_tpl

  1.  
  2. <div class="block_category">
  3. <span class="catimage">[+catimage+]</span><span class="category">
  4. <a href="[(site_url)][~[+id+]~]">[+pagetitle+]</a><br />
  5. <span class="subcategory">
  6. [[Ditto? id=`sub[+id+]` &parents=`[+id+]` &display=`all` &save=`1` &tpl=`subcatalog_tpl` &filter=`isfolder,1,1` &noResults=`{{ditto_empty}}` &sortBy=`menuindex` &sortDir=`ASC` ]]
  7. </span></span>
  8. </div>
  9.  

Выводим картинку и название категории, ниже список подкатегорий. 5) Формируем вывод подкатегорий . Создаём чанк subcatalog_tpl

  1.  
  2. <span><a href="[(site_url)][~[+id+]~]">[+pagetitle+]</a></span>
  3.  

6) Создаём чанк catalog_content_tpl

  1.  
  2. <a href="[(site_url)][~[+id+]~]">[+pagetitle+]</a><br />
  3. [+introtext+]<br /><br />
  4.  

7) Добавляем CSS

  1.  
  2. .catalog{
  3. display: block;
  4. float: left;
  5. width: 100%;
  6. }
  7. .block_category{
  8. padding: 10px 10px 10px 5px;
  9. margin: 5px;
  10. display: block;
  11. background-color: #E6F4F8;
  12. height: 90px;
  13. width: 300px;
  14. vertical-align: top;
  15. float: left;
  16.  
  17. }
  18. .catimage{
  19. float: left;
  20. }
  21. .category a{
  22. font: bold 15px Verdana, Geneva, Arial, Helvetica, sans-serif;
  23. text-decoration: none;
  24. }
  25. .subcategory a{
  26. font: normal 11px Verdana, Geneva, Arial, Helvetica, sans-serif;
  27.  
  28. }
  29.  
  30. .catdocs{
  31. display: block;
  32. float: left;
  33. width: 100%;
  34. }
  35.  

В шаблон каталога вставляем вывод TV - [*cat*]

Пример того что получилось Основное достоинство данного решения - автоматическое формирование всей структуры каталога, просто добавляем дочерние документы и папки в общее дерево документов modx. Шаблон и переменные наследуются автоматически. Для картинок можно прикрутить directresize.

 

 

Чтобы вывести эту конструкцию на страницу вставляем вывод TV например так.

  1.  
  2. <body>
  3. [*cat*]
  4. </body>
  5.  

Но лучше так:

  1.  
  2. <body>
  3. {{header}}
  4. {{menu}}
  5. [*longtitle*]
  6. [*content*]
  7. [*cat*]
  8. {{bottom}}
  9. </body>
 
источник http://h88.ru/modx/dokumentaciya/katalog-na-cms-modx.html?jnebdeaa9c=3#jotnavebdeaa9cd1a62c8cfd9ed91948e92f1e
Рубрики:  Рабочее

Метки:  

Доработка MODx 1.0.4 дистрибутива

Дневник

Среда, 27 Октября 2010 г. 09:18 + в цитатник

Некоторые советы по доработке MODx 1.0.4

Версия MODx 1.0.4 корректно работает без каких-либо исправлений, но для плодотворного использования системы при создании сайтов удобнее создать собственный дистрибутив, внеся ряд изменений в оригинал. В первую очередь полезно произвести полную русификацию всех компонентов, кроме того, некоторые изменения позволят избежать ряда проблем при установке и эксплуатации системы на сайте. При этом в данной статье не приводится подробное описание всех исправлений, упомянуты только некоторые рекомендации.

О работе MySQL в режиме strict

В последних версиях MODx при установке производится проверка сервера MySQL на режим STRICT_TRANS_TABLES и при его наличии выводится предупреждение, что в данном режиме некоторые возможности MODx не могут работать должным образом. При этом проверка выполняется не совсем корректно, так что в большинстве случаев, даже при наличии данного режима, предупреждений не появляется. Однако следует понимать, что режим strict предписывает проверять все запросы к базе на строгое соответствие стандарту SQL, и его отключение позволит записывать неверные и потенциально опасные данные в базу данных. Также следует отметить, что данный режим по умолчанию задается при установке сервера MySQL в Windows, поэтому нередко встречается на локальных компьютерах. На хостингах этот режим чаще всего отключен.

Правильнее было бы исправить все фрагменты, где генерируются неверные запросы к базе, а не отключать проверку корректности, тем более что в последней версии системы такие фрагменты исправлены, что позволяет без каких-либо проблем работать с MODx, даже если используется сервер MySQL в режиме strict.

Исправление ошибок

В версии 1.0.4 исправлены ошибки версии 1.0.3, и из ошибок, которые рекомендуется исправить, осталась только одна. Сниппет Breadcrumbs добавляет лишний псевдоним при ссылке на главную страницу сайта и неверно формирует список для страниц, дочерних относительно главной. Для исправления необходимо в папке install/assets/snippets в файле breadcrumbs.tpl строку

$pretemplateCrumb .= '<a class="'.$crumbClass.'" href="'.$modx->makeUrl($c['id']).'" title="'.$title.'">'.$text.'</a>';

изменить на

$pretemplateCrumb .= '<a class="'.$crumbClass.'" href="'.(($c['id'] == $modx->config['site_start']) ? $modx->config['base_url'] : $modx->makeUrl($c['id'])).'" title="'.$title.'">'.$text.'</a>';

а строку

while ( $parent && $loopSafety < 1000 )

изменить на

while ( $parent && $parent!=$modx->config['site_start'] && $loopSafety < 1000 )

также в строку, начинающуюся следующими выражениями:

if ( $showHomeCrumb && $homeCrumb = $modx->getPageInfo

следует добавить проверку, чтобы строка начиналась так:

if ( $showHomeCrumb && $homeId != $modx->documentObject['id'] && $homeCrumb = $modx->getPageInfo

Добавления и русификация

В составе MODx поставляется устаревшая версия PHPMailer, не удовлетворяющая современным требованиям. Рекомендуется заменить ее на версию 5.1, которую можно получить с официального сайта данной системы. Возможно, потребуются незначительные доработки, но в целом последняя версия работает намного лучше. Чрезвычайно полезно заменить все вызовы стандартной функции PHP mail отправкой писем через PHPMailer. Для этого требуется внести изменения в сниппеты Jot, Weblogin, плагин ForgotManagerPassword а также в файлы save_user.processor.php и save_web_user.processor.php. Например, в ForgotManagerPassword.tpl следует изменить функцию sendEmail таким образом:

function sendEmail($to) {

 global $modx, $_lang;

 

 $user = $this->getUser(0, '', $to);

 

 if($user['username']) {

  include_once "includes/controls/class.phpmailer.php";

  $mail = new PHPMailer();

  $mail->IsMail();

  $mail->CharSet = $modx->config['modx_charset'];

  $mail->IsHTML(true);

  $mail->From = $modx->config['emailsender'];

  $mail->FromName = 'MODx';

  $mail->Subject = $_lang['password_change_request'];

  $mail->Body = <<<EOD

<p>{$_lang['forgot_password_email_intro']} <a href="{$modx->config['site_url']}manager/processors/login.processor.php?username={$user['username']}&hash={$user['hash']}">{$_lang['forgot_password_email_link']}</a></p>

<p>{$_lang['forgot_password_email_instructions']}</p>

<p><small>{$_lang['forgot_password_email_fine_print']}</small></p>

EOD;

  $mail->AddAddress($to);

  $mail->AddReplyTo("no-reply@{$_SERVER['HTTP_HOST']}")

  if(!$mail->send()) { $this->errors[] = $_lang['error_sending_email']; }

 

  return $mail;

 }

}

Аналогично можно исправить и другие программы.

Если вы собираетесь создавать русскоязычные сайты, рекомендуется перевести сниппеты Jot, Weblogin, плангин ForgotManagerPassword и файлы login.processor.php, error.class.inc.php, save_user.processor.php, save_web_user.processor.php. Также полезно перевести менеджер файлов mcpuk и добавить в него транслитерацию имен файлов, о чем писалось на форуме MODx.

Для повышения эффективности сниппета Wayfinder, как рекомендовано на форуме MODx, следует в файле wayfinder.inc.php вместо строки:

$ids = $modx->getChildIds($this->_config['id'],$this->_config['level']);

подставить:

if (!$this->_config['hideSubMenus']) {

 $ids = $modx->getChildIds($this->_config['id'],$this->_config['level']);

} else { // then hideSubMenus is checked, we don`t need all children

 // first we always included the chilren of startId document

 // this fix problem with site root chidrens,

 // because site root not included in $modx->getParentIds

 $ids = $modx->getChildIds($this->_config['id'], 1, $ids);

 

 $parents = array($modx->documentIdentifier);

 $parents += $modx->getParentIds($modx->documentIdentifier);

 

 // if startId not in parents, only show children of startId

 if ($this->_config['id'] == 0 || in_array($this->_config['id'], $parents)){

 

 //remove parents higher than startId(including startId)

  $startId_parents = array($this->_config['id']);

  $startId_parents += $modx->getParentIds($this->_config['id']);

  $parents = array_diff($parents, $startId_parents);

 

 //remove parents lower than level of startId + level depth

  $level = $this->_config['level'];

  if ($level == 0)

   $level = 10; // constant getted from getParentIds function

  $parents = array_slice(array_reverse($parents), 0, $level-1);

 

  foreach($parents as $p)

   $ids = $modx->getChildIds($p, 1, $ids);

  }

}

Для корректной работы сниппета Ditto полезно исправить файл summary.extender.inc.php, добавив обработку строк функциями mbstring при использовании кодировки UTF-8.

Чтобы по умолчанию выполнялась правильная транслитерация русских псевдонимов, следует в папке install/assets/plugins в файле transalias.tpl заменить:

&table_name=Trans table;list;common,russian,utf8,utf8lowercase;utf8lowercase

на:

&table_name=Trans table;list;common,russian,utf8,utf8lowercase;russian

Возможно, потребуются и некоторые другие исправления, в соответствии с вашими собственными предпочтениями.

Дополнительные исправления

Вы можете добавить любые сниппеты, модули и плагины в состав собственного дистрибутива MODx. Например, для добавления плагина EditArea необходимо добавить папку assets из дистрибутива плагина в дистибутив MODx, а из папки install плагина взять файл plugin.EditArea.tpl и, переименовав его в EditArea.tpl, поместить в папку install/assets/plugins. Дополнительно необходимо исправить строки, расположенные в самом начале файла, чтобы он начинался так:

//<?php

/**

 * EditArea

 * Allows text formatting, search and replace and real-time syntax highlighting

 * @status     GA

 * @version    0.5.2

 * @date       March 17, 2010

 * @category   plugin

 * @EditArea   Packaged version: 0.8.2

также после строки:

* @bugs       See plugin_bugs.txt

необходимо добавить следующие строки:

* @internal      @properties &eadbg=Debug Enabled?;list;true,false;false &word_wrap=Word Wrap Enabled?;list;true,false;true &font_size=Font Size;list;8,9,10,11,12;9 &defaultHeight=Initialize editor height;list;300px,400px,500px,600px,700px;500px &min_height=Minimum editor height;list;200,300,400;400 &start_highlight=Initialize with highlighting enabled?;list;true,false;true &allow_toggle=Allow editor toggling?;list;true,false;true &allow_resize=Allow editor resizing?;list;y,n;y &fullscreen=Initialize editor in fullscreen mode?;list;true,false;false &replace_tab_with_spaces=Replace tab with spaces?;list;// No,// Yes ;// Yes &tab_as_spaces=How many spaces per tab?;list;3,4,5;4 &plugins=Active Plugins;string;modx, syntax_selection &catchunload=Try/Catch on Unload?;list;yes,no;yes&compressor=PHP Compressor Enabled?;list;0,1;0

 * @internal     @events OnChunkFormRender,OnDocFormRender,OnModFormRender,OnPluginFormRender,OnSnipFormRender,OnTempFormRender

 * @internal     @modx_category Manager and Admin

 * @internal    @legacy_names EditArea

В результате плагин будет устанавливаться точно так же, как и любые другие компоненты, включенные в состав MODx.

Вы также можете изменить настройки по умолчанию конфигурации, которые предлагаются после установки MODx. Для этого в папке install следует исправить в файле setup.sql нужные поля. Например, чтобы в капче использовать только цифры, следует заменить соответствующую строку на:

('captcha_words','0,1,2,3,4,5,6,7,8,9'),

а для того, чтобы вновь создаваемые документы были сразу опубликованы, следует задать:

('publish_default','1'),

Также можно изменить внешний вид визуального редактора, сделав его таким же, как в предыдущих версиях системы, введя:

('tinymce_editor_theme','custom'),

Кстати, чтобы в списке стилей не появлялись непонятные строки, следует в папке assets/plugins/tinymce/style в файле content.css закомментировать две последние строки.

Чтобы после установки не менялись названия полей при редактировании ресурсов, следует в файле assets/plugins/managermanager/mm_rules.inc.php закомментировать все строки.

Если вы хотите получать на русском языке статистику работы парсера MODx, следует в файле manager/includes/document.parser.class.inc.php найти соответствующие строки и заменить английские названия на русские (s на с, base на базы и так далее):

$queryTime= sprintf("%2.4f с", $queryTime);

$totalTime= sprintf("%2.4f с", $totalTime);

$phpTime= sprintf("%2.4f с", $phpTime);

$source= $this->documentGenerated == 1 ? "базы" : "кэша";

Чуть ниже можно добавить:

$phpMemory = (memory_get_peak_usage(true) / 1024 / 1024) . " МБ";

$out= str_replace("[^m^]", $phpMemory, $out);

При работе с кодировкой UTF-8 не забудьте кодировать этот файл в UTF-8 (без BOM). Если теперь вы в шаблоне добавите строку:

MySQL: [^qt^], запросов: [^q^], PHP: [^p^], всего: [^t^], памяти [^m^], документ взят из [^s^]

то на страницах сайта появится примерно такая строка:

MySQL: 0.1646 c, запросов: 24, PHP: 0.1785 c, всего: 0.3430 c, памяти 3.25 МБ, документ взят из базы

Аналогично можно вносить и другие изменения в дистрибутив MODx, однако рекомендуется записывать все исправления, чтобы при выходе следующей версии вы смогли и в нее внести аналогичную правку.

Рубрики:  Рабочее

Метки:  

Карта сайта и google sitemap в MODx

Дневник

Воскресенье, 06 Сентября 2009 г. 17:59 + в цитатник

Каждый сайт, содержимое которого обновляется достаточно динамично, неплохо дополнять картой сайта в формате xml. Также хорошим тоном является составление карты сайта для пользователей. Поисковые системы их тоже “любят”. Рассмотрим, как это можно сделать в MODx.

Карта сайта в формате HTML

Для создания карты сайта, как правило, необходимо создать специальную страницу, используя шаблон, который вы считаете для нее наиболее подходящим. Затем вызвать сниппет Wayfinder, например следующим образом:

[[Wayfinder? &startId=`0` &level=`0` ]]

Сниппет Wayfinder входит в список поставляемых вместе с CMS сниппетов и идеально подходит для решения задачи создания карты сайта. Отмечу только то, что по умолчанию страницы, у которых не стоит флаг «показывать в меню» не включаются в карту сайта. Чтобы исправить ситуацию, надо вызвать Wayfinder с параметром &ignoreHidden=1:

[[Wayfinder? &startId=`0` &level=`0` &ignoreHidden=`1` ]]

Для решения этой задачи можно использовать сниппет sitemap с кодом вызова:

[[sitemap? &format=`ulli`]]

Об этом сниппете речь пойдет дальше, но его использование для составления HTML карты сайта может оказаться неудобным, т.к. сниппет не имеет расширенных возможностей по оформлению карты по сравнению с Wayfinder.

Google sitemap для MODx

О google sitemap можно почитать здесь. Сгенерировать карту сайта можно с помощью различных online сервисов, например этого. Файл sitemap.xml придется обновлять после добавления или удаления страниц сайта. Для редко обновляющихся сайтов такое решение может оказаться приемлемым, но в большинстве случаев желательно создать динамически обновляющуюся карту сайта.

Динамическую карту сайта можно сделать, используя сниппет Ditto или специальный сниппет sitemap. Найти его в Интернете стоило немалых усилий, поэтому я раместил его у себя на сайте, сохранив информацию о разработчике.

Сниппет sitemap работает несколько быстрее Ditto, его мы и рассмотрим. Для его установки необходимо создать сниппет sitemap и скопировать в него содержимое этого файла.

Для того чтобы сгенерировать карту сайта, нужно следующее:

1) Создать TV параметры sitemap_changefreq и sitemap_priority

sitemap_changefreq
Тип: DropDown List Menu
Возможные значения : always||hourly||daily||weekly||monthly||yearly||never
Значение по умолчанию : поставьте наиболее актуальный для вашего сайта период обновления.

sitemap_changefreq
Тип: DropDown List Menu
Возможные значения : .1||.2|| .3|| .5|| .6|| .7|| .8|| .9 || 1
Значение по умолчанию : .5 (можете поставить любое другое).

2) Создать новый документ в корне сайта

3) Установить “Псевдоним” = sitemap.xml(Семантические URL должны быть включены)

4) Выбрать шаблон “(blank)” в настройках документа-общие

5) Если HTML-редактор контента включен, отключить его

6) Выбрать тип содержимого “text/xml’ в настройках страницы

7) Вставить в “Содержимое страницы”

8) В контент внести [[sitemap]]

9) Обновить сайт.

Возникает вопрос: как исключить из google sitemap некоторые страницы. Сниппет sitemap поддерживает два способа исключения документов:

- по TV-параметру

Необходимо создать TV-параметр sitemap_exclude типа DropDown List Menu с возможными значениями 0||1 и значением по умолчанию 0 для всех шаблонов. Далее выбрать для него значение 1 на всех страницах, которые не должны отображаться в карте сайта.

- по имени шаблона

В вызове можно указать шаблоны или идентификаторы шаблонов страниц, которые не должны отображаться в карте сайта. Код вызова будет примерно таким:

[[sitemap? &excludeTemplates=`myTemplateName,3,4`]]

 

источник http://www.mgordeev.ru

 

создание сайтов, продвижение сайтов, поддержка сайтов в Санкт-Петербурге и Москве. создание сайтов Создание интернет магазина SEO заказать сайт поддержка сайтов создание сайтов

Рубрики:  MODx

Метки:  

ModX CMS

Дневник

Воскресенье, 06 Сентября 2009 г. 17:50 + в цитатник

MODx - очень функциональная, расширяемая и удобная система разработки сайта (cmf), а также удобная система управления (cms). Это движок нового поколения, который изначально рассчитан на создание проектов поколения Веб 2.0

Основные особенности

1. интегрированный механизм работы с Ajax
2. встроенная поддержка ЧПУ (SEF)
3. управление пользователями

  • разделение менеджеров и пользователей вэб-пользователей
  • создание групп пользователей
  • создание групп документов с ограниченным доступом как для посетителей, так и менеджеров

4. эффективная работа с документами

  • удобное дерево документов
  • публикация и отмена публикации документа, в том числе в указанное время
  • поддержка документов разных типов (MIME)
  • создание дополнительных параметров различных типов (текстовое поле, чекбоксы, выпадающий список и т.д.)

5. полный контроль HTML-кода, позволяющий реализовать любой дизайн
6. встроенный механизм SEO (управление ключевыми словами и мета-тегами)
7. интуитивно-понятный интерфейс системы управления (cms)
8. отличная расширяемость (с помощью сниппетов, плагинов и модулей)
9. простой язык шаблонов

Рубрики:  MODx

Метки:  

MODx. Базовые вещи

Дневник

Воскресенье, 06 Сентября 2009 г. 17:47 + в цитатник

Шаблон - содержит общую верстку страницы со структурой и дизайном. Также в нем определяются места для вывода динамического содержимого. Для каждого документа можно выбрать свой шаблон.

Параметры (TV) - дополнительные параметры, которые подключаются к шаблону. Параметры могут быть разных типов (текст, ссылка, файл, дата, число и т.д.). Более подробно о типах ждите в следующих статьях.

Чанк - маленький шаблон, который может использоваться как просто для вывода какого-то содержимого (телефона на всех страницах), так и для обработки (шаблон отправляемого письма eForm, шаблон каталога выводимого Ditto и т.д.). Таким образом, вид (представление) информации отделяется от места обработки и легко управляется.

Сниппет - код для обработки информации. Анализируют полученную информацию (например, сообщение пользователя) и предоставляют результат (например, отправляют сообщение по почте, а пользователю показывают сообщение о результате). Сниппеты формируют меню (Wayfinder), выводят списки статей с разбиением на страницы (Ditto), строят формы (eForm). Для вывода используют Чанки.

Плагин - код, который запускается при наступлении какого-то события. Например, подсвечивает искомые слова (Search Highlighting) при переходе со страницы поиска. Событий много и их рассмотрение стоит отдельной статьи.

Специальные теги

Для вывода динамических данных используются специальные теги.

Системные

[(site_name)] - название сайта
/ или [(site_url)] - адрес сайта
[(modx_charset)] - используемая кодировка
[^qt^] - время на запросы к базе данных
[^q^] - запросов к базе данных
[^p^] - время на работу PHP скриптов
[^t^] - общее время на генерацию страницы
[^s^] - источник содержимого (база или кэш)

Стандартные

[pagetitle*] - заголовок документа
[longtitle*] - расширенный заголовок документа
[description*] - описание документа
[introtext*] - аннотация документа
[content*] - содержимое документа
[alias*] - псевдоним документа
[id*] - идентификатор (номер) документа
0 - дата публикации документа
[unpub_date*] - дата завершения публикации
[createdby*] - Идентификатор пользователя создавшего документ
[createdon*] - Дата создания документа
[editedby*] - Идентификатор пользователя редактировавшего документ
[editedon*] - Дата редактирования документа
[~идентификатор~] - URL указанного документа

Дополнительные

[type*] - вариант (документ, папка или ссылка)
[contentType*] - тип содержимого (например, text/html)
[published*] - опубликован ли документ (1|0)
[parent*] - номер (ID) родительского документа
[isfolder*] - является ли документа папкой (1|0)
[richtext*] - используется ли при редактировании документа визуальный редактор
[template*] - номер (ID) используемого шаблона для документа
[menuindex*] - порядковый номер отображения в меню
[searchable*] - доступен ли документ для поиска (1|0)
[cacheable*] - Кэшируется ли документ (1|0)
[deleted*] - Документ удален (1|0)
[deletedby*] - Идентификатор пользователя удалившего документ
[menutitle*] - Заголовок меню. Если не используется, то заголовок документа
[donthit*] - Слежение за количеством посещений отключено (1|0)
[haskeywords*] - Документ содержит ключевые слова (1|0)
[hasmetatags*] - Документ имеет метатеги (1|0)
[privateweb*] - Документ входит в частную группу пользовательских документов (1|0)
[privatemgr*] - Документ входит в частную группу менеджерских документов (1|0)
[content_dispo*] - Вариант выдачи содержимого (1 - для отображения | 0 - для скачивания)
[hidemenu*] - Документ не отображается в меню (1|0)

Параметры TV, сниппеты и чанки

[НазваниеПараметраTV*] - выводит значение параметра в документе.
{{НазваниеЧанка}} - возвращает содержимое чанка.
[[НазваниеСниппета]] - возвращает результат работы сниппета. Также можно передавать сниппету дополнительные параметры, перечисляя их при вызове - [[НазваниеСниппета? &параметр1=`значение1` &параметр2=`значение2` &параметрN=`значениеN`]
[+НазваниеПеременной+] - встречается в чанках, которые используются для обработки (Ditto, eForm и т.д.). После обработки вместо них вставляются значения. Таким образом, это тоже вроде мини-языка, но для сниппетов.

Нюансы

1) На самом деле есть два варианта вызова сниппета:
[[НазваниеСниппета]] - кэшируемый вызов сниппета
[!НазваниеСниппета!] - некэшируемый вызов сниппета

2) При использовании дополнительных параметров в сниппете нужно убедиться, что запись не разбивается переносом строки. Если это так, то сниппет откажется работать.

Где использовать

Все очень гармонично используется друг с другом.
В шаблонах можно использовать параметры TV, сниппеты и чанки.
В чанках можно вызывать сниппеты, параметры TV и другие чанки.
В сниппетах можно вызывать вообще все, но через PHP.
В конечном счете вам вернется итоговый результат обработки всех сниппетов/чанков/параметровTV.

Пример шаблона

<html>
<head>
<title>[(site_name)] | [pagetitle*]</title>
<meta http-equiv="Content-Type" content="text/html; charset=[(modx_charset)]" />
<base href="[(site_url)]"></base>
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="[(site_url)][~11~]" />
</head>
<body>

<div id="header">
<h1><a id="logo" href="[~[(site_start)]~]" title="[(site_name)]">[(site_name)]</a></h1>
<div id="ajaxmenu"> [[Wayfinder?startId=`0` &outerTpl=`mh.OuterTpl` &innerTpl=`mh.InnerTpl` &rowTpl=`mh.RowTpl` &innerRowTpl=`mh.InnerRowTpl` &firstClass=`first` &hereClass=``]] </div>
</div>

<h2>News:</h2>

[[Ditto? &startID=`2` &summarize=`2` &total=`20` &commentschunk=`Comments` &tpl=`nl_sidebar` &showarch=`0` &truncLen=`100` &truncSplit=`0`]]

<div id="content">
<h2>[longtitle*]</h2>
[#content*]
</div>

</body>
</html>

На эту информацию опирается все остальное.
 Источник: http://www.modx-cms.ru/ 
Рубрики:  MODx

Метки:  

 Страницы: [1]