Плагин "Мнения" - расширенный функционал голосования
Плагин выполняет две задачи: отображает в профиле пользователя его текущее место в общем рейтинге пользователей и реализует отправку и отображение анонимных сообщений при голосовании.
1. Отображение места пользователя в общем рейтинге.
Так выглядит дополнительный индикатор в профиле пользователя
Если с момента последнего посещения профиля пользователем произошли какие-то изменения, то они отображаются так:
Или так:
2. Отправка и отображение анонимных сообщений при голосовании
При голосовании за Пользователя (Топик, Блог, Сообщение) открывается окно с предложением отправки анонимного сообщения:
В профиле пользователя появился элемент меню для доступа к списку отправленных сообщений:
Настройки
В настройках есть возможность выбирать режимы работы: только учет мета пользователя в общем рейтинге, только систему отправки и отображения анонимных сообщений и оба режима сразу.
Функционал простой, но как дополнительное средство активизации пользователя, думаю, нужный.
ЗЫ:
Плагин находиться на модерации.
Плагин будет распространяться по свободной лицензии.
upd
1. Демо можно попробовать на gihub (спасибо aex за напоминание). Только не забываем, что это dev-версия с соответствующими следствиями. Если есть желание, присоединяйтесь к разработке. Папка плагина, куда распаковываются файлы c гитхаба должна назваться «opinion»
2. Реализованы настройки, позволяющие отключать варианты мнений так, как предложил acobat в этом комментарии
78 комментариев
Совместимость с admvote, сейчас тестируется.
а то каждый раз при голосовании за комент или топик людей будет напрягать вводить что то — но на ряду с те м полезная штука. в профиле особенно учитывая что за профиль можно 1 раз голосовать. или за блог.
но за каждый топик и комент имхо перебор :)
Я думаю интересно многим была бы опция закрытия профиля, даже от зарегистрированных пользователей. Знаю что подобный плагин есть, но всё же :P
Fatal error: Call to undefined method PluginAceadminpanel_ModuleUser_MapperUser::GetCurrentRating()
Спасибо за плагин, отослал 2$ на пиво.
Как мне его включить?
Залез сам вписал andrey-v-livestreet_plugin_opinion-d804e57
Вылезла ошибка:
Может нужно задать другое имя плагина?
1 — Не удаляются «Мнения» в рубрике «Мнения сообщества обо мне»
2 — Когда кликаешь ссылку оставленного Мнения, открывается страница «Ошибка, такой страницы не существует...»
3 — Не приходят уведомления ни на почту, ни в ЛС о том, что кто то проголосовал или оставил мнение… Незнаю, должны ли они быть вообще, просто по логике вещей, хотя бы для мнений (счетчиков также не обнаружил)…
Пока все, а так плагин Бомба просто, автору Респект!
Надеюсь он будет дорабатываться
2 — Исправлено
3 — Отправка сообщений не предусмотрена
Депозитарий на гитхабе обновлен. Обновленная версия отправлена на модерацию. Еще раз спасибо за замечания.
Этой страницы не существует! -> О Вас еще не сформировалось мнение у пользователей!
В чем может быть проблема? Если права ставить то где… и если нужно лить базу то в какую именно таблицу
* Является частью плагина Opinion
* @version 1.0 от 12.10.12 14:31 — Создание файла экшена.
* * @package plugins/opinion */ class PluginOpinion_ActionProfile extends PluginOpinion_Inherit_ActionProfile { protected function RegisterEvent() { parent::RegisterEvent(); if (Config::Get('plugin.opinion.mode') == 'full' || Config::Get('plugin.opinion.mode') == 'vote-control') { $this->AddEventPreg('/^.+$/i', '/^votinginfo$/i', '/^$/i', 'EventVotingInfo'); $this->AddEventPreg('/^.+$/i', '/^votinginfo$/i', '/^(page([1-9]\d{0,5}))?$/i', 'EventVotingInfo'); } } public function EventVotingInfo() { if (!$this->CheckUserProfile()) { return parent::EventNotFound(); } $bDelete = getRequest('form_votes_list_submit_del'); if ($bDelete) { $aVoteIds = getRequest('vote_select'); $this->User_DeleteVotesByIds($this->oUserProfile->getId(), $aVoteIds); } /** Передан ли номер страницы */ $iPage = $this->GetParamEventMatch(1, 2)? $this->GetParamEventMatch(1, 2): 1; /** Получаем список голосований */ $aResult = $this->User_GetVotesByUserId($this->oUserProfile->getId(), $iPage, Config::Get('plugin.opinion.votes_per_page')); if (!empty($aResult)) { /** @var $aVotes Массив голосований */ $aVotes = $aResult['aVotes']; foreach ($aVotes as $key => $aVote) { switch ($aVote['target_type']) { case 'comment': $aVotes[$key]['url'] = '/comments/'. $aVote['target_id']; break; case 'topic': $oTopic = $this->Topic_GetTopicById($aVote['target_id']); $aVotes[$key]['url'] = $oTopic->getUrl(); break; case 'blog': $oBlog = $this->Blog_GetBlogById($aVote['target_id']); $aVotes[$key]['url'] = '/blog/'. $oBlog->getUrl(); break; case 'user': $aVotes[$key]['url'] = $this->oUserProfile->getUserWebPath(); break; } } /** Формируем постраничность */ $aPaging = $this->Viewer_MakePaging($aResult['iCount'], $iPage, Config::Get('plugin.opinion.votes_per_page'), Config::Get('pagination.pages.count'), $this->oUserProfile->getUserWebPath(). 'votinginfo'); } else { $aVotes = $aPaging = array(); } /** Загружаем переменные в шаблон */ $this->Viewer_Assign('aPaging', $aPaging); $this->Viewer_Assign('aVotes', $aVotes); $this->Viewer_AddHtmlTitle($this->Lang_Get('plugin.opinion.about_user'). ' '. $this->oUserProfile->getLogin()); /** Устанавливаем шаблон вывода */ $this->SetTemplateAction('voting_info'); } }
Fatal error: Call to undefined method PluginAceadminpanel_ModuleUser_MapperUser::GetCurrentRating() in C:\Program Files\VertrigoServ\www\plugins\opinion\classes\modules\user\User.class.php on line 61
— 61 строка
Работает без ошибок, если отключить
При этом должен быть активирован synio шаблон!
По другому выдает разные ошибки. Не знаю что делать. До этого со всеми плагинами проблем небыло.
Например рейтинг я вывожу {$oUserCurrent->getRating()}
Как место вывести? Заранее спасибо.