Fuzzy

Fuzzy
Рейтинг
27
Регистрация
29.05.2005
VolCh:
Может быть подскажите, реально ли на MODx сделать (точнее перенести с html) трехязычный сайт с полностью дублированным контентом и "сквозными" ссылками на страницы с другими языками в сжатые сроки. Сайт довольно примитивный, статический по сути контент - пара десятков страниц (умноженное на 3 языка) который изредка "менеджеры" должны редактировать в визивиг режиме.

Абсолютно реально и должно занять совсем немного времени.

VolCh:

Пробежал бегло глазами вики - пугают выражения типа {{chunk}} ... [+placeholder+]

На самом деле проще всего начать с того, что вставить безо всяких плейсхолдеров, чанков и сниппетов свой шаблон в MODx (для этого там есть отдельный ресурс - шаблоны), сделанный полностью на HTML. Далее можно попробовать создать три-четыре страницы сайта и заполнить их своей информацией, выбрав свой заранее подготовленный шаблон. При этом у Вас получится, что на каждой странице сайта будет один и тот же контент. Теперь вернитесь обратно в шаблон и в месте, где выводится основной текст поставьте такую конструкцию [*content*]. Посмотрите на свой сайт теперь - Вы увидите, что теперь созданные страницы уже наполнились разной соответствующей информацией.

Это уже неплохо :). И можно двигаться далее.

Конечно, без чтения документации, хотя бы основных терминов, - не обойтись. Либо двигаться методом проб и ошибок, что значительно дольше.

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

Чанк (chunk) - это просто кусок HTML кода, который также может включать специальные конструкции MODx. Обычно в чанки выносятся повторяющиеся куски кода на сайт и затем используют эти чанки в шаблонах. Чанки могут быть вложенными.

Например, у нас есть примитивный шаблон в HTML:


<html>
<head>
<title>Заголовок для данной страницы</title>
<meta name="keywords" content="" />
<meta name="description" content="Описание для данной страницы" />
<head>
<body>
<div id="header">Здесь идет верх сайта</div>
<div id="menu">Здесь идут ссылки меню</div>
<div id="content">
<h1>Основной заголовок</h1>
<p>Основной контент</p>
</div>
<div id="footer">А здесь идет низ сайта - копирайты, контактная информация и проч.</div>
</body>
</html>

Обычно стараются упрощать работу, вынося части HTML кода в чанки, хотя это и не обязательно.

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


<html>
{{HEAD}}
<body>
{{HEADER}}
{{MENU}}
{{CONTENT}}
{{FOOTER}}
</body>
</html>

А в чанки выносится соответствующий код, например чанк CONTENT:


<div id="content">
<h1>Основной заголовок</h1>
<p>Основной контент</p>
</div>

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

Сниппеты - это части PHP кода (скрипты или функции, если упрощенно), которые могут использовать встроенный набор API функций MODx, а могут и не использовать. Сниппеты выполняют основную работу по построению программной логики сайта, т.е. например могут выводить меню сайта, путь к текущей странице (breadcrumbs), обслуживать работу самых разных онлайн форм связи и многое другое. Существует обширный репозитарий готовых сниппетов http://modxcms.com/resources.html, где можно подобрать что-то для себя при необходимости. Также Вы можете писать свои сниппеты, т.к. это обычный PHP код.

Сниппеты вызываются в шаблоне или в чанке так:

[[НазваниеСниппета]] - при этом сниппет будет кешируемый, т.е. выполняющий свою работу один раз. Это удобно, когда нет необходимости выводить постоянно меняющуюся информацию на сайте. Сниппет выполнит работу один раз (например, выведет меню на текущей странице), а далее выведенная информация попадает в кеш данной страницы и уже не происходит дополнительной нагрузки на сайт, т.к. выдается статичная HTML страница из кеша.

Если Вам нужно выводить все-же динамичную информацию, например, для обработки интерактивной формы связи с сайта, то вызывайте свой сниппет так: [!НазваниеСниппета!].

Иногда Вы встретитесь с ситуацией, когда какой-то готовый сниппет будет использовать какой-то свой чанк (часто это бывает с интерактивной формой связи). Это также возможно и часто удобно, т.к. если данный сниппет использует повторяющийся HTML код для вывода, то его не приходится постоянно вставлять в код PHP. Можно просто вставить в нужное место PHP кода сниппета конструкцию {{НазваниеЧанка}} и в соответствующем чанке прописать нужный код. Интерпретатор MODx обработает такую конструкцию и выведет нужный HTML код в соответствующем месте.

Плейсхолдеры - это еще одна конструкция MODx, которая помогает Вам прописывать прямо в HTML коде (в чанке или шаблоне) некие данные, которые создаются программно, например, вывод каких-то заголовков страниц или другие данные. Есть такие встроенные плейсхолдеры, как

[*pagetitle*] = Плейсхолдер для короткого заголовка страницы

[*longtitle*] = Плейсхолдер для длинного заголовка страницы

[*description*] = Описание страницы (например, может быть META Description)

[*content*] = Основное содержимое страницы

а также есть и другие плейсхолдеры, с которыми Вы можете ознакомиться сами.

Исходя из этих данных, теперь мы можем переделать свой экспериментальный шаблон так:


<html>
{{HEAD}}
<body>
{{HEADER}}
{{MENU}}
{{CONTENT}}
{{FOOTER}}
</body>
</html>

Шаблон не изменился :), это правда. Но теперь зайдем в каждый из чанков и посмотрим на них:

Чанк HEAD:


<title>[*longtitle*]</title>
<meta name="description" content="[*description*]" />

Чанк HEADER (не изменился):


<div id="header">Здесь идет верх сайта</div>

Чанк CONTENT:


<div id="content">
<h1>[*pagetitle*]</h1>
[*content*]
</div>

Чанк FOOTER (не изменился):


<div id="footer">А здесь идет низ сайта - копирайты, контактная информация и проч.</div>
VolCh:

Думаю что проще и быстрее будет - написать тему для друпала (включая админку менеджера) и разобраться с поддержкой многоязычности в нем или, все же, MODx попробовать? Не хочется убивать несколько дней, а потом окажется, что вывод меню в боковине в зависимости от папки в url (/en/... /ru... ) на разных языках решается только путем хаков ядра или разработкой своего плагина.

Это, конечно, дело привычки и предпочтений каждого. Я выше показал, насколько просто создавать шаблоны на MODx, попробуйте и поймете, нужно ли это Вам :).

kappa:
Ни как не могу выбрать CMS для проекта: выбираю между MODx и Made Simple (пока склоняюсь ко второй, т.к. с ней немного больше знаком).
Основное требование - наложение на каркас любого дизайнерского шаблона (именно любого!!).

Прорекламирую все же MODx :) Как совладелец проекта modx.ru и человек, создавший множество очень разных сайтов на этой системе, могу сказать точно - MODx абсолютно никак Вас не ограничит в дизайне. Ну просто вообще никак, это одно из самых приятных особенностей данной системы.

kappa:

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

http://modx.ru/about/seo/ - это о SEO параметрах.

С документацией может быть не очень на русском языке, но если есть знание английского на техническом уровне - документация имеется в полном объеме.

kappa:
Что подскажите?

MODx! 🚬

Делал заказ по 3-му тарифу для нулевого сайта. Пришло 1340 писем. Есть немного повторных писем.

А вобщем впечатление от работы отличное, описания для сайта сделаны очень хорошо. Рекомендую!

hypno:
В последнее время появились бесючие рамки вокруг флэш-вставок на сайтах ... их можно убрать я точно знаю ( пример www.adobe.com ) судя по всему с помощью яваскрипт. У кого нибудь есть мануальчик на эту тему ? помогите плиз.

Я это решаю так: сразу после закрывающего тега <object ... >... </object> вставляю следующий код

<script type="text/javascript" src="iefix.js"></script>

где содержимое iefix.js:

objects = document.getElementsByTagName("object");
for (var i = 0; i < objects.length; i++)
{
objects.outerHTML = objects.outerHTML;
}
Garini4:
пользовался все время cms e107 TYPO3 не смог осилить -время мало

Fuzzy, спасибо за наводку на MODx Очень интересная система. Разбираюсь

Удачи :) Разобраться довольно легко, интерфейс админки очень дружелюбный.

svarog:
Спасибо, очень интересная система.
Кстати, я не нашел, многосайтовость она поддерживает?

Не поддерживает. По крайней мере - пока не поддерживает ;).

vrom:
посмотрите вот это обсужение:
(там чел. выбирает систему для портала по туризму, обсуждаются MODx и TYPO3)
http://modxcms.com/forums/index.php/topic,6810.0.html

vrom, привет от того самого чела :) простите за оффтоп ))

P.S.: А туристический сайт (не портал) еще на Etomite строили.. Не очень удобно потом управлять, но все-же реально :) На MODx оно, конечно, проще.

На форуме http://skypeclub.ru/ множество вариантов рассматривалось.

Deni:
Приветствую всех

Потребовался скрипт плавающей формы. Подобие на http://www.iiyama.ru/ (поиск форма)
То есть что бы нужный мне элемент при прокрутки страницы всегда оставался по центру.

Подскажите плиз.....Даже не знаю как его искать так как не знаю как такие вещи называются.

Не сразу понял, о чем речь, просто нажал там на поиск... :)

http://www.iiyama.ru/folders/2135/.folder/2135/.text./.r/1/.where/server/.folders./.sd/01.01.2000/.ed/04.09.2006%2023%3A35%3A59/.news/1/.articles/1/.files/0/.postings./.goods/1/.name/1/.description/1/.content/1/.keywords/1/.sort/0/search-results

Ayavryk:
Хм. А что есть CMS с открытым кодом без дыр?
UPD впрочем, без дыр вообще ничего не бывает. Просто придуркам проще ломать распространенные системы чем самописные.

Да, наверное есть дыры и в MODx, только от ruswebart.com я пока не получил сообщения, о каких именно дырах он говорил. Я думаю, что если я получу такие сведения, то данные дыры будут в скором времени устранены.

Константин:
MODx - а как в нем реализовать интернет-магазин, может примерчики есть?

Не стоит использовать MODx для создания интернет-магазина, если Вам нужно готовое решение.

Всего: 53