CMS | Кирилл Павлюков
Окт 12

В предыдущей заметке я вкратце рассказал о том, что представляет из себя CMS 2z. В этой – приведу пример того, как можно доработать модуль голосования, чтобы результаты опросов выводились в более приятном для глаза виде. По-умолчанию результаты опросов выводятся в текстовом виде: вариант ответа, количество ответов и процент проголосовавших за этот вариант. А душа просила чего-то более красивого… В этой заметке речь пойдет о том, как вывести результаты голосования в виде красивых цветных шкалок. Я видел, что на форуме разработчиков 2z этот вопрос озвучивали, но решение так и не было найдено. Чтож, попытаюсь восполнить пробел своим примером. Так как в коде шаблона PHP использовать не получится, придется дорабатывать непосредственно код модуля voting. Итак, нам нужно доработать 2 файла плагина + шаблоны.
2z/extras/voting/config.php:
Найдите строку 27 с таким текстом:

1
array_push($cfg, array('name' => 'skin', 'title' => 'Используемый скин', 'descr' => 'Вы можете использовать только один скин единовременно', 'type' => 'select', 'values' => $skList, 'value' => extra_get_param('voting','skin')));

После нее вставьте еще одну строку:

1
array_push($cfg, array('name' => 'max_px', 'title' => 'Максимальная ширина шкалы', 'descr' => 'Укажите максимальный размер шкалы в пикселах', 'type' => 'input', 'value' => extra_get_param('voting','max_px')));

2z/extras/voting/voting.php:
Найдите строку 82:

1
$cnt = 0;

И вставьте после нее 2 строки:

1
2
$max_px = extra_get_param('voting','max_px');
$max_cnt = 0;

Теперь найдите строку (87):

1
foreach ($lrows as $lrow) { $cnt += $lrow['cnt']; }

И ЗАМЕНИТЕ ее на:

1
foreach ($lrows as $lrow) { $cnt += $lrow['cnt']; $max_cnt = max($lrow['cnt'], $max_cnt); }

Найдите строку:

1
'perc' => intval($lrow['cnt']*100/$cnt),

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

1
'px' => intval($lrow['cnt']*$max_px/$max_cnt),

Теперь у вас в шаблне появилась еще 1 переменная: {px}
Используйте ее в свое удовольствие!
Ну, например, вот так:

1
<div style="height: 10px; background-color: #003399; width: {px}"></div>
Share

Автор: Кирилл Павлюков \\ Метки: , , ,

Окт 12

2z – это шустро-быстрая модульная CMS. Призвана служить во благо инернет-СМИ и прочих подобных сайтов. Мое мнение о ней неоднозначное. С одной стороны, весь необходимый функционал есть, все работает, баги регулярно исправляются, новые модули пишутся. Это, безусловно, плюсы.
С другой стороны – мне не нравится качество кода. Много лишнего, кое что требует серьезной подчистки, ну и процедурное программирование почти в чистом виде. Вероятно, в этом нет ничего плохого – ведь множество популярных проектов процедурно… Но мне просто такой подход кажется не достаточно масштабируемым, хоть и более производительным. И еще админка… С ней пришлось поковыряться, чтобы понять, как она работает. У меня это заняло минут 15, отсилы. Но редактора сайта, которому я сегодня показывал новую админку интерфейс привел в ужас! Пришлось объяснять как для идиота: нажимаем кнопочку такую-то, чтобы получилось то-то. И это при том, что редактор отнюдь не новичек, сайты редактирует уже больше 4 лет. Это что касается минусов.

Но вернусь снова к плюсам.
Во-первых, несмотря на процедурное программирование, код довольно-таки интуитивно понятен. Мне потребовалось не больше 2 часов, чтобы разобраться с принципами системы.
Во-вторых, простой шаблонизатор. Стандартный шаблон отвратителен, но поменять его на что-то более-менее нормальное не требуется много усилий. Создание шаблона для проекта, который мы запустили на 2z, заняло меньше примерно полдня. (Имеется ввиду на простой дизайн, порезку, верстку и адаптацию к шаблону).
В третьих, много бесплатных модулей и шаблонов. Для нормального новостного сайта более чем достаточно. Кстати, говорят, что 2z любят СЕОшники, за то, что на основе этой системы можно сделать десятки сайтов которые функционально будут на весьма высоком уровне. Среди модулей есть генератор карты сайта и файла Sitemap. Ну и другие вкусности типа календаря, архива, опросов…

Короче, маст кноу )
Даже если вы не будете использовать 2z, то просто посмотреть на него вы обязаны!

ЗЫ. На правах, так сказать, рекламы презентую линк свежезапущенного проекта: Выборы 2008 – достали!. Он конечно еще безумно сырой, но так как тематика довольно недолгоиграющая, было принято решение вывешивать «те, що маємо», а дорабатывать уже по ходу.

Share

Автор: Кирилл Павлюков \\ Метки: , , ,