1

Тема: Голосование. Как реализовать?

Как сделать голосование в блоге?



2

Re: Голосование. Как реализовать?

http://www.eatdrinksleepmovabletype.com … _position/



3

Re: Голосование. Как реализовать?

Поставил. Установка прошла успешно. Создал опрос. Но он нигде не отображается :rolleyes:
Что сделать, чтобы отображался?



4

Re: Голосование. Как реализовать?

Практически любой плагин, который будет как-то задействован на сайте, нужно не просто установить, но и добавить в шаблоны теги плагина. Список тегов этого плагина: http://www.eatdrinksleepmovabletype.com … n/tags.php

http://www.eatdrinksleepmovabletype.com … figure.php



5

Re: Голосование. Как реализовать?

Не знаю английского, а электронный переводчик настолько коверкает что сути не понятно :(
Можете сказать поточнее в какой шаблон и куда именно в шаблоне вставлять теги?



6

Re: Голосование. Как реализовать?

Я бы сделал так:

1. Скачал плагин, загрузил на сервер в необходимые папки, установил на скрипт vote.cgi права 755. А затем сделал бы папку mt-static/plugins/PollPosition/ перезаписываемой. Обычно хватает прав 755, но может быть понадобится и 777.

2. Далее создал бы шаблон, на котором бы находился опрос/голосование. Я так уже делал с этим плагином, когда опрос выводится в отдельном индексном шаблоне. Для этого нужно просто создать новый индексный шаблон на основе главной страницы, вырезать оттуда всё лишнее, а затем добавить код плагина.
Потом необходимо добавить между тегами head (обычно они находятся в шаблоне HTML Head) следующую строчку:

<mt:Include module="YUI Javascript">
<script type="text/javascript" src="<mt:BlogURL>pollposition.js"></script>

3. Теперь, когда шаблон создан, необходимо добавить в него код плагина:

<mt:CompletePoll poll_id="123">

Где poll_id — это ID опроса.
Чтобы узнать ID, нужно сначала создать опрос.



7

Re: Голосование. Как реализовать?

saahov пишет:

Для этого нужно просто создать новый индексный шаблон на основе главной страницы, вырезать оттуда всё лишнее, а затем добавить код плагина.

- клонировал шаблон Главная страница     index.html
- переименовал в Голосование
- вставил туда это:
<div class="poll-container" id="poll-1">
    <div class="poll-question">
        <p>What is your favorite color?</p>
    </div>
    <form id="poll-form-1" class="poll-form" name="poll-form-1" method="post" action="" onsubmit="return submitVote(1);">
        <input type="hidden" name="__mode" value="save_poll_choice" />
        <input type="hidden" name="poll_id" value="1" />
        <input type="hidden" name="blog_id" value="1" />
        <input type="hidden" name="type" id="type_1" value="poll" />
        <input type="hidden" name="results_only" value="0" />
        <div class="poll-choices">
            <div class="poll-choice">
                <input type="radio" class="poll-choice-option" id="poll-1-choice-0" name="poll_choice" value="0" /> <label for="poll-1-choice-0">Red</label>
            </div>
            <div class="poll-choice">
                <input type="radio" class="poll-choice-option" id="poll-1-choice-1" name="poll_choice" value="1" /> <label for="poll-1-choice-1">Green</label>
            </div>
        </div>
        <input type="submit" class="poll-submit" id="poll-submit-1" value="Submit" />
        <p class="view-results-link"><a href="javascript:viewResults(1);">View results</a></p>
    </form>
    <div class="poll-results" id="poll-results-1"></div>
    <script type="text/javascript">
        checkVote(1);
    </script>
</div>



saahov пишет:

Потом необходимо добавить между тегами head (обычно они находятся в шаблоне HTML Head) следующую строчку:

где это? нигде не нашел head :(



8

Re: Голосование. Как реализовать?

Frax29 пишет:

нигде не нашел head

Шаблоны -> HTML Head

Только в склонированный шаблон нужно вставлять не уже готовый код, а тег шаблона — <mt:CompletePoll poll_id="123">



9

Re: Голосование. Как реализовать?

А у меня как-то криво плагин этот работает. Генерирует ссылку на картинку с графиком, но файла самого в папке cache нет. Права на папку 777 стоят. На vote.cgi -  755. Чего это может быть?



10

Re: Голосование. Как реализовать?

Возможно, в конфиге не указана директива StaticFilePath: http://www.movabletype.org/documentatio … epath.html



11

Re: Голосование. Как реализовать?

Да, действительно, сходу не обратил внимания, что StaticFilePath и StaticWebPath не одно и тоже. Заработало. Спасибо! :)



12

Re: Голосование. Как реализовать?

Думаю как прикрутить к записи опрос. Вроде логично создать для записи поле с id опроса и вставить код в шаблон вывода записи: если есть id, то выводим опрос. Но как заполнять это поле? В админке нет возможности редактировать Custom Fields. Надо править редактор записи админки? Как это сделать?

Отредактировано VladimirG (01:08:2009 11:45:49)



13

Re: Голосование. Как реализовать?

На странице сравнения http://www.eatdrinksleepmovabletype.com … ompare.php есть пункт «Easily include polls on Entries, Pages, etc.», там написано, что в бесплатной версии нельзя просто добавить опрос в запись/страницу.

Кстати, ваше решение с Custom Fields — отличное :) Подозреваю, что именно что-то подобное и есть в платной версии плагина.

Я бы вот его реализовал так:

1. Создал бы дополнительное поле (Single-Line Text), назвав его PollID, а тег шаблона — mypollid (лучше всегда добавлять какой-нибудь префиск к тегу, чтобы вдруг не возникло конфликтов с тегами плагина или MT).

2. Затем добавил бы в архивный шаблон записей (Запись) вывод опроса — в том месте, где необходимо. Вот пример кода:

<mt:If tag="mypollid">
    <mt:SetVar name="exist_poll" value="<mt:mypollid />" />
    <mt:CompletePoll poll_id="$exist_poll" />
</mt:If>

Если поле PollID не было заполнено в редакторе, то ничего не будет выведено, а если было, то будет выведен опрос с тем ID, которое было указано в редакторе.

3. И последнее, что необходимо сделать — сделать видимым поле PollID в редакторе при помощи ссылки «Опции отображения», которая располагается справа от меню редактора.



14

Re: Голосование. Как реализовать?

А я и не знал, что в "Опциях отображения" можно открыть поле для редактирования!
Все получилось! Спасибо!
Только вместо конструкции

<mt:SetVar name="exist_poll" value="<mt:mypollid />" />

лучше использовать

<mt:SetVarBlock name="entry_poll"><mt:mypollid /></mt:SetVarBlock>