Вывод голосовавших за фото, в постах блога и статьях сайта (3в1)

+38
2.52K
Всем привет!
Поступило предложение объединить три ранее созданных плагина выводивших голосовавших в один, сделав одной кнопкой. Сделал новый плагин, который объединил три ранее созданных. При этом заменил спойлер, на вывод голосовавших при помощи ajax, при клике по ссылке «проголосовали (±)». Как и ранее выводится только группы голосовавших, только если есть голоса.

Иллюстрация
Иллюстрация
Иллюстрация
Иллюстрация
Иллюстрация
Установка:
Устанавливается как обычный плагин. Распаковываем и заливаем содержимое распакованного архива в корень сайта. В админке устанавливаем плагин как обычно.
Далее открываем css файл своего шаблона и прописываем:
  1.  
  2. #voteds { clear: both; margin-top:15px; }
  3. .userslist{padding:10px;border:solid 1px #C3D6DF;border-radius:6px;}
  4. #flash {padding-left: 30px;background:url(../images/load.gif) no-repeat left top ;color: #375E93;}
  5. .list-minus, .list-plus {width: 100%;padding-left:10px;padding-bottom:15px; }
  6. .userslist .list-user { overflow:hidden; }
  7. .userslist .list-user { float:left; padding:5px; border:solid 1px #C3D6DF; border-radius:6px; margin-right:5px; }
  8. .userslist .list-user .avatar { display: block; float: left; height: 64px; width: 64px; margin-right: 10px; }
  9. .userslist .list-user .name { display: block; float: left; height: 64px; line-height: 64px; margin-right: 10px; }
  10. .list-title { clear: both;padding-left:10px; font-weight:bold; margin-bottom:6px;}
  11. .clear{clear:both;display:block;overflow:hidden;visibility:hidden;width:0;height:0;}
  12.  
В папку images шаблона закидываем load.gif из архива.
Далее, для того чтобы в статьях отображались голосовавшие открываем файл com_content_read.tpl и в том месте где хотим видеть вывод голосов прописываем:
  1.  
  2. {* =============== Вывод голосовавших =============================== *}
  3. {if $karma_votes >0}
  4. <div class="users_voteds">
  5. <input type="hidden" name="item_id" value="{$item_id}">
  6. <div id="ssilk"><a href="#" id="golosa">Проголосовали (+|-)</a></div>
  7. <div id="flash"></div>
  8. <div id="voteds"></div>
  9. </div>
  10. <div class="clear"></div>
  11. {/if}
  12.  
Если файл com_content_read.tpl шаблона не менялся то можно взять из архива. Только в неё вывод голосовавших идёт перед комментариями.

В Блоге:
Открываем файл com_blog_view_post.tpl и в том месте где хотим видеть вывод голосов прописываем:
  1. {* =============== Вывод голосовавших =============================== *}
  2. {if $blog.rating !='0'}
  3. <div class="users_voteds">
  4. <input type="hidden" name="item_id" value="{$item_id}">
  5. <div id="ssilk"><a href="#" id="bloggolos">Проголосовали (+|-)</a></div>
  6. <div id="flash"></div>
  7. <div id="voteds"></div>
  8. </div>
  9. <div class="clear"></div>
  10. {/if}
  11.  
Или берём из архива.

Фото:
Открываем файл com_photos_view_photo.tpl и в том месте где хотим видеть вывод голосов прописываем:
  1. {* =============== Вывод голосовавших =============================== *}
  2. {if $photo.rating !='0'}
  3. <div class="users_voteds">
  4. <input type="hidden" name="item_id" value="{$item_id}">
  5. <div id="ssilk"><a href="#" id="fotogolos">Проголосовали (+|-)</a></div>
  6. <div id="flash"></div>
  7. <div id="voteds"></div>
  8. </div>
  9. <div class="clear"></div>
  10. {/if}
  11.  
Тем самым мы выводим голоса там где хотим мы, а не там где выведет плагин.

скачать

Старые плагины можно удалить, или отключить.
P.S.
Плагин будет дорабатываться, будет добавлена погинация голосовавших списками по 10 если много голосовавших.
Есть желание добавить в плагин систему баллов к фото, хотелось бы узнать Ваше мнение по этому… С выводом кто когда и какую оценку поставил (Сколько бальная система нужна от 1 до 5 или 1 до 10? Интегрировать ли в личные фотоальбомы? Минисовать карму или рейтинг за возможность поставить наивысший бал? и т.д.).
0
Darik Darik 12 лет назад #
+1
0
Patriot Patriot 12 лет назад #
Сейчас работает отлично!+++ Спасибо за плагин Михаил!
0
GarikKR GarikKR 12 лет назад #
Миш тоесть это сразу для статей блогов и фото?
0
GarikKR GarikKR 12 лет назад #
В личный альбам интеграция нужна!очень нужна ,и пятибальная система,и кто когда какую оценку поставил,Миш большое спасибо за твою работу,!
0
Zau4man Zau4man 12 лет назад #
+1. сегодня вечером поставлю на живой проект.
Надеюсь не передерутся!
+1
Zau4man Zau4man 12 лет назад #
ПОМОГИТЕ! Как сделать чтобы данный блок выводился только для авторизованных пользователей?
Не хочу чтобы поисковые системы тыкали по ссылкам и создавали нагрузку...
Код PHP:
{if $is_auth}
не работает ((
0
reload reload 12 лет назад #
может так?
Код PHP:
{if !$no_guests && $is_user}
0
Zau4man Zau4man 12 лет назад #
вряд ли) из того, что вы написали достаточно последнего. просто переменная $is_user в смарти не инициализирована.
пытаюсь инициализировать)
+1
Zau4man Zau4man 12 лет назад #
По аналогии с компонентами...
Нужно
Код PHP:
$smarty= $this->inCore->initSmarty('plugins', 'p_golosovanie.tpl');
$smarty->assign('item_id', $item_id);
$smarty->display('p_golosovanie.tpl');
заменить на
Код PHP:
$smarty= $this->inCore->initSmarty('plugins', 'p_golosovanie.tpl');
$smarty->assign('item_id', $item_id);
[b]$smarty->assign('is_user', $inUser->id);[/b]
$smarty->display('p_golosovanie.tpl');
а в место вывода в шаблоне добавить
Код PHP:
{if $photo.rating !='0'}
заменить на
Код PHP:
{if $is_user && $photo.rating !='0'}
В теории... На практике не робит чего-то, что-то я не так делаю ((
0
reload reload 12 лет назад #
Зачем в плагине инициализировать?
проверка проходит в шаблоне/компоненте в котором выводите (поидее)

Код PHP:
{* =============== Вывод голосовавших =============================== *}
{if !$no_guests && $is_user}
{if $photo.rating !='0'}
<div class="users_voteds">
	<input type="hidden" name="item_id" value="{$item_id}">
		<div id="ssilk"><a href="#" id="fotogolos">Проголосовали (+|-)</a></div>
	    <div id="flash"></div>
	<div id="voteds"></div>
</div>
<div class="clear"></div>
{/if}
{/if}
вроде так должно быть.
0
reload reload 12 лет назад #
проверил на денвере, так как написал работает)
0
Zau4man Zau4man 12 лет назад #
у меня не работает ((
0
Zau4man Zau4man 12 лет назад #
Просто смысл проверять если "не гость и юзер"... когда достаточно только если "юзер". но такой переменной нет...
вношу вашу правку исчезает для всех. убираю, появляется для всех...
0
Zau4man Zau4man 12 лет назад #
Все, разобрался. Переменная $is_user действительно не фигурирует при просмотре блога.
Зафигурируем, по аналогии с комментами.
в файле \components\blogs\frontend.php
где то в
Код PHP:
//выводим пост
    $smarty = $inCore->initSmarty('components', 'com_blog_view_post.tpl');
        $smarty->assign('post', $post);
        $smarty->assign('blog', $blog);
        $smarty->assign('id', $id);
добавим
Код PHP:
$smarty->assign('is_user', $inUser->id);
все, теперь можно юзать конструкцию
Код PHP:
{if $is_user}
{if $blog.rating !='0'}
<div class="users_voteds">
	<input type="hidden" name="item_id" value="{$item_id}">
		<div id="ssilk"><a href="#" id="bloggolos">Проголосовали (+|-)</a></div>
	    <div id="flash"></div>
	<div id="voteds"></div>
</div>
<div class="clear"></div>
{/if}
{/if}
0
iLoveNY iLoveNY 12 лет назад #
А можно это сделать в ajax окне?
+2
Coolmax Coolmax 11 лет назад #
Для ветки 1.10.x не переделывали?
+1
Александр Александр 10 лет назад #
поддерживаю хорошо было бы аналог, а лучше этот прям
+1
Coolmax Coolmax 10 лет назад #
Как я понимаю для 1.10.3 так и не реализовали? Жаль...
0
Александр Александр 9 лет назад #
да

Еще от автора

Система оценок пользователей в общих и личных фотоальбомах.
Плагин позволяет зарегистрированным пользователям оценивать фото в общих и личных фотоальбомах, по пятибалльной шкале (т.е. от 1 до 5).
Вывод голосовавших (+/-) за фото.
Плагин выводит голосовавших за фото в общих альбомах.
Вывод голосовавших (+/-) в постах блога. Обновление
Обновил плагин голосовавших для блога, он работает так же как и плагин в статьях.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.