Окт 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

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


3 коммент. к “Доработка модуля опросов в CMS 2z”

  1. 1. Unknown пишет:

    А почему в шаблоне нельзя редактировать прямо? почему только в voting?

  2. 2. Кирилл Павлюков пишет:

    В шаблоне нельзя использовать код php. Соответственно, вычислить необходимую ширину шкалки в пикселях – не получится.

  3. 3. kt2k пишет:

    :)
    Я видел, что на форуме разработчиков 2z этот вопрос озвучивали, но решение так и не было найдено.

    Решение было найдено (точнее оно не искалось, а был предложен макет), правльней надо было читать, и если кто-то сделал это то забыл поделится :) , кстати реализовано было на javascript без дописывание модуля ;)

Оставьте комментарий или два