Фальсификации выборов президента: как это делается Не смотря на огромное количество нарушений ...
АЛЫЕ ПАРУСА В ПЕТЕРБУРГЕ - (0)«Алые паруса» — один из самых известных праздников в Северной столице, ...
Владимир Румянцев.Ангелы и коты - (0)Владимир Румянцев.Ангелы и коты. Владимир Румянцев родился в 1957 году, рисовать начал в ...
фото Санкт-Петербурга - (0)Санкт-Петербург Санкт-Петербург невероятно красивый город, думаю даже коренным "питерцам" будет и...
Ближневосточная проблема - простое объяснение за пять минут - (0)Ближневосточная проблема - простое объяснение за пять минут простое объяснение ближневосточ...
Как перенести сайт на MODx Revo на другой хостинг |
Дневник |
Для переноса сайта на MODx Revolution на другой хостинг выполняем следующие шаги:
Site —> Clear Cache
Security —> Flush All Sessions
или
удаляем содержимое core/cache
Через SSH на UNIX системах можно сделать так:
tar -czf /path/to/backups/modx_revo_site.tar.gz /path/to/modx_doc_root/
Архив надо класть в ОТДЕЛЬНУЮ папку.
gunzip modx_revo_site.tar.gz
или
tar xvf modx_revo_site.tar
Либо используем phpMyAdmin, либо через SSH:
mysqldump -u username -p your_revo_db > /path/to/backups/my_revo_db.sql
Либо используем 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 Внедрение |
Дневник |
Комментарии 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 уже установлен. Вот и всё.
Метки: MODx |
Карта сайта и google sitemap в MODx |
Дневник |
Каждый сайт, содержимое которого обновляется достаточно динамично, неплохо дополнять картой сайта в формате xml. Также хорошим тоном является составление карты сайта для пользователей. Поисковые системы их тоже “любят”. Рассмотрим, как это можно сделать в MODx.
Для создания карты сайта, как правило, необходимо создать специальную страницу, используя шаблон, который вы считаете для нее наиболее подходящим. Затем вызвать сниппет 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 можно почитать
Динамическую карту сайта можно сделать, используя сниппет 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 |
Дневник |
MODx - очень функциональная, расширяемая и удобная система разработки сайта (cmf), а также удобная система управления (cms). Это движок нового поколения, который изначально рассчитан на создание проектов поколения Веб 2.0
Основные особенности
1. интегрированный механизм работы с Ajax
2. встроенная поддержка ЧПУ (SEF)
3. управление пользователями
4. эффективная работа с документами
5. полный контроль HTML-кода, позволяющий реализовать любой дизайн
6. встроенный механизм SEO (управление ключевыми словами и мета-тегами)
7. интуитивно-понятный интерфейс системы управления (cms)
8. отличная расширяемость (с помощью сниппетов, плагинов и модулей)
9. простой язык шаблонов
Метки: modx |
MODx. Базовые вещи |
Дневник |
Шаблон - содержит общую верстку страницы со структурой и дизайном. Также в нем определяются места для вывода динамического содержимого. Для каждого документа можно выбрать свой шаблон.
Параметры (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] |