Новости Joomla

WT Set elements v.1.0.0: плагин поля для RadicalMart

WT Set elements v.1.0.0: плагин поля для RadicalMart

👩‍💻 WT Set elements v.1.0.0: плагин поля для RadicalMart.Плагин пользовательского поля компонента интернет-магазина для Joomla - RadicalMart (@radicalmart). Плагин позволяет создавать набор элементов, включающих заголовок, изображение и краткое описание и выбирать необходимые из них в товаре. Отображать наборы элементов можно в виде товара и в списке товаров (в своих макетах). От клиента поступил запрос на возможность добавления для товаров в RadicalMart списка повторяемых элементов. Это должен был быть редактируемый в одном месте список функций и режимов, которые могли относиться к разным товарам одной категории в разных сочетаниях. Во вкладке параметров "Отображение" вы можете выбрать отображать или нет элементы в категории товаров и/или карточке товара. Для каждого вида возможно выбрать собственный макет. Файлы макета находятся в /layouts/plugins/radicalmart_fields/wtsetelements. Вы можете использовать свои файлы макета в формате .php, разместив их в этой папке. Кроме того, файлы макетов можно переопределить стандартным способом Joomla, после чего они будут доступны по адресу: /templates/YOUR_TEMPLATE/html/layouts/plugins/radicalmart_fields/wtsetelements.Плагин предполагает самостоятельную разработку макетов вывода. Макеты "из коробки" следует рассматривать как образец для создания собственных.Плагин бесплатный. Протестирован на Joomla 5.3.3 и RadicalMart 2.2.4.Плагин разработан в соавторстве участниками нашего сообщества: Сергеем Сергевниным (@gresserg) и Сергеем Толкачёвым (@sergeytolkachyov).Страница расширенияGitHub расширения@joomlafeed#joomla #расширения #radicalmart

IWS.BY VK app widget - Виджет приложения ВКонтакте для Joomla

IWS.BY VK app widget - Виджет приложения ВКонтакте для Joomla

👩‍💻 IWS.BY VK app widget - Виджет приложения ВКонтакте для Joomla.Модуль «Виджет приложения ВКонтакте» для Joomla поможет добавить на сайт виджет с карточкой приложения или игры из социальной сети ВКонтакте.У вас возникла потребность отобразить информацию о ваших приложениях или играх на сайте с кнопкой перехода в социальную сеть, то этот модуль для Вас. Вам не придется хранить информацию о приложении у себя на сайте, все данные получаются через публичное API социальной сети ВКонтакте. Хранение информации на стороне ВКонтакте позволит Вам не нагружать базу данных сайта.В модуле имеется всего несколько опций и полей, которые максимально упрощают публикацию виджета. Первая опция позволяет подключить публичное API социальной сети ВКонтакте, необходимое для работы виджетов. Следующее поле потребует ввести идентификатор приложения или игры, присвоенный в социальной сети ВКонтакте. Следующая опция позволит выбрать вид отображаемой информации в виджете.Модуль имеет 3 варианта отображения:- карточка- участники- кнопкаПоддерживаемые версии Joomla: Joomla 3, Joomla 4, Joomla 5.Страница расширенияJoomla Extensions Directory#joomla #расширения #vk

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

👩‍💻 SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla.Компонент - менеджер цифровых проектов для Joomla! CMS. Компонент обеспечивает создание каталога цифровых проектов и предоставляет возможность скачивания, в том числе с использованием лицензионных ключей.👩‍💻 v.2.5.0. Что нового?Схемы структур данных для серверов обновлений. Теперь с SW JProjects вы может создавать сервер обновлений не только для расширений Joomla, но и свои собственные. Например, вам нужно, чтобы структура данных сервера обновлений была другая и формат должен быть, например, не XML, а JSON. Формирование структуры данных для сервера обновлений расширений Joomla вынесено в отдельный плагин. Вы можете создать свой собственный плагин и реализовать в нём нужную вам структуру данных, добавив или наоборот исключив отображаемые данные. Сервер обновлений в компоненте по-прежнему отображает информацию о списке проектов и их версиях, о конкретном проекте и его changelog.Можно выбрать схему данных сервера обновлений глобально для всего компонента, выбрать другую схему данных для категории проектов, а так же выбрать схему в каждом проекте.

Разработчикам в качестве образца можно посмотреть плагин схемы данных для Joomla в составе компонента или же плагин-образец JSON-схемы на GitHub.
Группа плагинов swjprojects. Для нужд компонента создана группа плагинов swjprojects. В частности, в этой группе находится плагин структуры данных Joomla расширений для сервера обновлений.Изменение языковых констант. Изменены некоторые языковые константы в панели администратора. Если вы делали переопределение констант - переопределите их снова.👩‍💻 Joomla 6. Внесены изменения для корректной установки и работы компонента на Joomla 6. Компонент успешно протестирован на Joomla 6-beta2.Минимальная версия Joomla - 5. Подняты минимальные системные требования: Joomla 5.0.0 и PHP 8.1.
- Страница расширения👉 Плагин-образец кастомной JSON-схемы данных для сервера обновлений на GitHub.- GitHub расширения- Документация на GitHub- Joomla Extensions Directory#joomla #расширения

0 Пользователей и 1 Гость просматривают эту тему.
  • 75 Ответов
  • 31889 Просмотров
*

Roman Petrenko

  • Moderator
  • 438
  • 61 / 0
  • Дизайн без секретов
Хочу на сайте разрешить всем комментировать изображения и ставить рейтинг в Phoca gallery 2.1.0. А активировать можно для
 
NOBODY
ALL REGISTERED USERS

а как для всех разрешить без регистрации?
*

Roman Petrenko

  • Moderator
  • 438
  • 61 / 0
  • Дизайн без секретов
Пока никак, читал на форуме разработчика. Может сделает в следующих версиях, но он один работает и не может все охватить. Будем ждать. ^-^
*

Zuev

  • Захожу иногда
  • 211
  • 15 / 1
  • В дальнем плавании
У меня теже самые задачи.

Ну с комментариями, как я понимаю, разобрались здесь:http://joomlaforum.ru/index.php/topic,52403.0.html

А вот с рейтингом что-нибудь решилось?
*

Zuev

  • Захожу иногда
  • 211
  • 15 / 1
  • В дальнем плавании
Предлагаю попробовать совместными усилиями "научить" фокагалери принимать рейтинг от незарегестрированных пользователей.

По теории надо просто в коде найти часть отвечающую за проверку пользователя, зарегестрирован он или нет, ну и вырезать ее.

И скорее всего еще надо найти часть кода которая записывает данный при голосовании в БД. так как вполне возможно что там же сразу записывается ид юзера, а так он не зареган возможны ошибки.
*

Zuev

  • Захожу иногда
  • 211
  • 15 / 1
  • В дальнем плавании
кстати я свой эксперимент буду проводить над версией 2.2.4
*

Zuev

  • Захожу иногда
  • 211
  • 15 / 1
  • В дальнем плавании
шаг 1.
убираем проверку зерегестрирован пользователь или нет:

D:\com_phocagallery_v2.2.4\front\views\category\tmpl\default_rating.php

вырезаем\комментируем строки с 18 по 42 включительно:
Код
/*	if ($this->tmpl['alreadyrated']) {

echo '<ul class="star-rating">'
.'<li class="current-rating" style="width:'.$this->tmpl['voteswidth'].'px"></li>'
.'<li><span class="star1"></span></li>';

for ($i = 2;$i < 6;$i++) {
echo '<li><span class="stars'.$i.'"></span></li>';
}
echo '</ul>'
    .'<p>'.JText::_('You have already rated this category').'</p>';

} else if ($this->tmpl['notregistered']) {

echo '<ul class="star-rating">'
.'<li class="current-rating" style="width:'.$this->tmpl['voteswidth'].'px"></li>'
.'<li><span class="star1"></span></li>';

for ($i = 2;$i < 6;$i++) {
echo '<li><span class="stars'.$i.'"></span></li>';
}
echo '</ul>'
    .'<p>'.JText::_('Only registered and logged in user can rate this category').'</p>';

} else {*/

и 57 строку:
Код
/*	}*/

Теперь при в ходе в категорию никаких сообщений что вы не зарегестрированы не вылазиет, но при попытке проголосовать перенаправляет на страницу регистрации, так что копаю дальше.


Кстати, при таких действиях перестанет работать проверка повторного голосования юзера, т.к. в фока галери данная проверка реализована не куками или запоминанием IP, а именно записью ID проголосовавшего юзера в БД.
« Последнее редактирование: 26.05.2009, 19:09:58 от Zuev »
*

Zuev

  • Захожу иногда
  • 211
  • 15 / 1
  • В дальнем плавании
Шаг 2.
в файле \com_phocagallery_v2.2.4\front\controller.php

удаляем\комментируем строки с 492 по 498
Код
/*		$checkUserVote	= $model->checkUserVote( $post['catid'], $post['userid'] );

// User has already rated this category
if ($checkUserVote) {
$msg = JText::_('You have already rated this category');
} else {
*/

строку 503
Код
 //			if ($user->aid > 0 && $user->id > 0) {
строки с 509 по 514
Код
/*			} else {
$mainframe->redirect(JRoute::_('index.php?option=com_user&view=login', false), JText::_("NOT AUTHORISED TO DO ACTION"));
exit;
}

}
*/
*

Zuev

  • Захожу иногда
  • 211
  • 15 / 1
  • В дальнем плавании
после этого в галерее голосовать может кто угодно и сколько угодно.

Еще бы конечно убрать вот это самое "сколько угодно".

При первых проверках ошибок не выявлено.
« Последнее редактирование: 26.05.2009, 21:26:59 от Zuev »
*

anis

  • Захожу иногда
  • 130
  • 1 / 0
а для версии 2,5,4 такое возможно???
*

Zuev

  • Захожу иногда
  • 211
  • 15 / 1
  • В дальнем плавании
не знаю, на новой версии не пробовал такое проделать.
да и вообще с выходом новой версии фока разочаровала меня, большим наличием багов.

на данный момент сделал выбор в пользу Datso галери.
Там кстати, как я понял (пока поюзал ее только в демо режиме), могут голосовать незареганные юзеры. ну и естественно стоит фильтр голосовавших, так что она не дает повторно кликать по звездачкам.
*

anis

  • Захожу иногда
  • 130
  • 1 / 0
datso не плохая но и не бесплатная
*

Zuev

  • Захожу иногда
  • 211
  • 15 / 1
  • В дальнем плавании
http://joomlaforum.ru/index.php/topic,71112.0.html
вот тут ребята делятся датсогалери.
если что это не я писал
*

Zuev

  • Захожу иногда
  • 211
  • 15 / 1
  • В дальнем плавании
первая часть описана здесь: http://joomlaforum.ru/index.php/topic,52912.0.html

Но как говорится начнем с самого начала.
Итак, задачи:
1. что бы незареганные юзеры могли голосовать.
2. фильтр голосовавших по ИП.

за основу берем фока галери 2.5.5
пример голосовалки с фильтром по ип беру с плагина extravote.

Если кто примет участие буду рад.
но больше всего буду рад если это кому то пригодится, судя по форуму должно пригодиться ^-^
*

Zuev

  • Захожу иногда
  • 211
  • 15 / 1
  • В дальнем плавании
Поехали.

кусок кода из екстравоте, отвечающий за запись голов в бд, а каже определения голосовал ли этот юзер или нет
Код
$user_rating    = JRequest::getInt('user_rating');
$cid            = JRequest::getInt('cid');
$xid = JRequest::getVar('xid');

if (($user_rating >= 1) and ($user_rating <= 5)) {
$currip = ( phpversion() <= '4.2.1' ? @getenv( 'REMOTE_ADDR' ) : $_SERVER['REMOTE_ADDR'] );
if ( !(int)$xid ){
$query = "SELECT * FROM #__content_rating WHERE content_id = " . $cid;
$db->setQuery( $query );
$votesdb = $db->loadObject();
if ( !$votesdb ) {
$query = "INSERT INTO #__content_rating ( content_id, lastip, rating_sum, rating_count )"
. "\n VALUES ( " . $cid . ", " . $db->Quote( $currip ) . ", " . $user_rating . ", 1 )";
$db->setQuery( $query );
$db->query() or die( $db->stderr() );;
} else {
if ($currip != ($votesdb->lastip)) {
$query = "UPDATE #__content_rating"
. "\n SET rating_count = rating_count + 1, rating_sum = rating_sum + " .   $user_rating . ", lastip = " . $db->Quote( $currip )
. "\n WHERE content_id = " . $cid;
$db->setQuery( $query );
$db->query() or die( $db->stderr() );
} else {
echo 0;
exit();
}
}
} else {
$query = "SELECT * FROM #__content_extravote WHERE content_id=".$cid." AND extra_id=".$xid;
$db->setQuery( $query );
$votesdb = $db->loadObject();
if ( !$votesdb ) {
$query = "INSERT INTO #__content_extravote  (content_id,extra_id,lastip,rating_sum,rating_count)"
. "\n VALUES (".$cid.",".$xid.",".$db->Quote($currip).",".$user_rating.",1)";
$db->setQuery( $query );
$db->query() or die( $db->stderr() );;
} else {
if ($currip != ($votesdb->lastip)) {
$query = "UPDATE #__content_extravote"
. "\n SET rating_count = rating_count + 1, rating_sum = rating_sum + " .  $user_rating . ", lastip = " . $db->Quote( $currip )
. "\n WHERE content_id=".$cid." AND extra_id=".$xid;
$db->setQuery( $query );
$db->query() or die( $db->stderr() );
} else {
echo 0;
exit();
}
}
}
echo 1;
}
*

Zuev

  • Захожу иногда
  • 211
  • 15 / 1
  • В дальнем плавании
поюзал галери, вернулся к фоке. и как раз вышла новая версия. фока все же лучшая
*

Zuev

  • Захожу иногда
  • 211
  • 15 / 1
  • В дальнем плавании
теперь надо найти куда этот код воткнуть в фоку
*

Zuev

  • Захожу иногда
  • 211
  • 15 / 1
  • В дальнем плавании
давайте разберем что к чему в верхнем
коде
Код
$user_rating    = JRequest::getInt('user_rating');//оценка выставленная юзером
$cid            = JRequest::getInt('cid'); //ИД (в данном случае материала "content ID"), за который ставили оценку
$xid = JRequest::getVar('xid'); //ума не приложу что это

if (($user_rating >= 1) and ($user_rating <= 5)) {//проверяем что бы оценка была в пределах от 1 до 5, страхуемся от сильно умных, которые знают как подправить адрес, так как оценка передается методом гет
$currip = ( phpversion() <= '4.2.1' ? @getenv( 'REMOTE_ADDR' ) : $_SERVER['REMOTE_ADDR'] );//считываем ИП юзера
if ( !(int)$xid ){//опять эта непонятная строка
$query = "SELECT * FROM #__content_rating WHERE content_id = " . $cid;
$db->setQuery( $query );
$votesdb = $db->loadObject();//считываем из таблици райтингов запись с ид текущего материала
if ( !$votesdb ) {//если такой записи в таблице нет, значит за нее голосуют впервые и доп проверка по ип не нужна
$query = "INSERT INTO #__content_rating ( content_id, lastip, rating_sum, rating_count )"
. "\n VALUES ( " . $cid . ", " . $db->Quote( $currip ) . ", " . $user_rating . ", 1 )";
$db->setQuery( $query );//записываюм в таблицу рейтингов запись с ИД контента, ИП последнего юзера за него проголосовавшим, общим рейтингом статьи и количество голосов
$db->query() or die( $db->stderr() );;
} else {// если такая запись в таблице существует, т.е. за данный материал голосуют не в первые, то
if ($currip != ($votesdb->lastip)) {//проверяем не равен ли ИП текущего пользователя с ИП последнего пользователя проголосовавшего за данный материал, если не равен, то
$query = "UPDATE #__content_rating"
. "\n SET rating_count = rating_count + 1, rating_sum = rating_sum + " .   $user_rating . ", lastip = " . $db->Quote( $currip )
. "\n WHERE content_id = " . $cid;
$db->setQuery( $query );//заносим последний голос в таблицу
$db->query() or die( $db->stderr() );
} else {//если ИП текущего пользователя равен ИПу последнего пользователя проголосовавшего за данный материал, то

echo 0;
exit();//выходим из функции
}
}
*

Zuev

  • Захожу иногда
  • 211
  • 15 / 1
  • В дальнем плавании
т.е. получается что один и тот же юзер в принципе может голосоват по нескольку раз, но только ему тогда нужно дождаться пока не проголосует кто-нибудь другой.
В принципе не плохой вариант и мне он подходит, надеюсь что вам тоже
*

Zuev

  • Захожу иногда
  • 211
  • 15 / 1
  • В дальнем плавании
продолжение эпопеи разрешения голосования незареганным юзерам здесь:http://joomlaforum.ru/index.php/topic,74248.0.html
*

anis

  • Захожу иногда
  • 130
  • 1 / 0
так а в фоку куда это прикрутить
*

Zuev

  • Захожу иногда
  • 211
  • 15 / 1
  • В дальнем плавании
пока работаю над этим, думаю что сегодня до вечера доделаю.
Пока приходится разрываться между решением этой задачи и основной работой
*

anis

  • Захожу иногда
  • 130
  • 1 / 0
с нетерпением будем ждать
*

Zuev

  • Захожу иногда
  • 211
  • 15 / 1
  • В дальнем плавании
и так, появились первые результаты.
все измененные файлы прикреплю к посту. А также постараюсь в кратце описать, что и зачем изменил.
Описываю пошагово, кому что будет непонятно, пишим сразу в форум,

1.В БД в таблице _phocagallery_votes тип поля userid меняем на varchar(50), до этого оно было int(11). Делается это для того чтобы в него можно было записать ИП юзера.

Кроме того, раз уж полезли в таблицу, предлагаю в таблице fur_phocagallery_votes_statistics изменить тип поля count на int.
Потому что тип эого поля установленный разработчиком ("tinyint(11)"), позволяет проголосовать только 127 юзером, больше голосов он не воспринимает. Эта проблема обсуждалась здесь http://joomlaforum.ru/index.php/topic,72687.0.html.


2. В файле ваш_сайт/components/com_phocagallery/controllers/category.php
- комментируем строку $user =& JFactory::getUser();, она нам больше не нужна, так мы будем работать не с зареганными юзерами.
-Изменили данные переменной $post['userid'] ранее в нее заносились данные из таблицы зареганных юзеров на сайте, теперь в нее заносится ип юзера.
Код
//$post['userid']	= $user->id;
//вместо ид записываем ип юзера
$post['userid'] = ( phpversion() <= '4.2.1' ? @getenv( 'REMOTE_ADDR' ) : $_SERVER['REMOTE_ADDR'] );
-Комментируем строки которые отвечают залогинился юзер или нет.
Код
//проверяет заголинился юзер или нет, нам не нужно	if ($user->aid > 0 && $user->id > 0) {
if(!$model->rate($post)) {
$msg = JText::_('Error Rating Phoca Gallery');
} else {
$msg = JText::_('Phoca Gallery Rated');
}
/* } else {
$mainframe->redirect(JRoute::_('index.php?option=com_user&view=login', false), JText::_("NOT AUTHORISED TO DO ACTION"));
exit;
}*/

3. В файле ваш_сайт/administrator/components/com_phocagallery/libraries/phocagallery/rate/ratecategory.php
-комеентируем оригинальный запрос к БД, и записываем свой
Код
function checkUserVote($catid, $userid) {

$db =& JFactory::getDBO();
/*$query = 'SELECT v.id AS id'
    .' FROM #__phocagallery_votes AS v'
    .' WHERE v.catid = '. (int)$catid
//.' AND v.userid = '. (int)$userid;
.' AND v.userid = '. $userid;
$db->setQuery($query, 0, 1);
$checkUserVote = $db->loadObject();*/

$query = "SELECT id FROM `#__phocagallery_votes` WHERE `catid` = '$catid'  AND `userid` = '$userid'";
$db->setQuery($query);
$checkUserVote = $db->loadObject();


if ($checkUserVote) {
return true;
}
return false;
}
Авторский запрос, не смотря ни на какие манипуляции с ним, так и не захотел работать.
Цель данного запроса считать из таблицы строку которая содержала бы ИП юзера и ИД статьи, если такая строка есть, то получается что юзер за данную статью пытается проголосовать дважды.

3.В файле ваш_сайт/components/com_phocagallery/views/category/tmpl
комментируем строки 18-42 и 52
Код
/*	if ($this->tmpl['alreadyrated']) {

echo '<ul class="star-rating">'
.'<li class="current-rating" style="width:'.$this->tmpl['voteswidth'].'px"></li>'
.'<li><span class="star1"></span></li>';

for ($i = 2;$i < 6;$i++) {
echo '<li><span class="stars'.$i.'"></span></li>';
}
echo '</ul>'
    .'<p>'.JText::_('You have already rated this category').'</p>';

} else if ($this->tmpl['notregistered']) {

echo '<ul class="star-rating">'
.'<li class="current-rating" style="width:'.$this->tmpl['voteswidth'].'px"></li>'
.'<li><span class="star1"></span></li>';

for ($i = 2;$i < 6;$i++) {
echo '<li><span class="stars'.$i.'"></span></li>';
}
echo '</ul>'
    .'<p>'.JText::_('Only registered and logged in user can rate this category').'</p>';

} else {*/

echo '<ul class="star-rating">'
    .'<li class="current-rating" style="width:'.$this->tmpl['voteswidth'].'px"></li>'
.'<li><a href="'.$this->tmpl['action'].$amp.'controller=category&task=rate&rating=1&tab='.$this->tmpl['currenttab']['rating'].$this->tmpl['limitstarturl'].'" title="1 '. JText::_('star out of').' 5" class="star1">1</a></li>';

for ($i = 2;$i < 6;$i++) {
echo '<li><a href="'.$this->tmpl['action'].$amp.'controller=category&task=rate&rating='.$i.'&tab='.$this->tmpl['currenttab']['rating'].$this->tmpl['limitstarturl'].'" title="'.$i.' '. JText::_('star out of').' 5" class="stars'.$i.'">'.$i.'</a></li>';
}
echo '</ul>';
// }
?>
Данный код не дает даже попробовать проголосовать если вы не алогинились, вот мы его и комментируем.
об этом уже писалось вот здесь http://joomlaforum.ru/index.php/topic,52912.0.html.

Так вроде это пока все изменения.


[вложение удалено Администратором]
*

Zuev

  • Захожу иногда
  • 211
  • 15 / 1
  • В дальнем плавании
теперь фока записывает в таблицу phocagallery_votes данные: catid (ид категории) userid(ип юзера, имя я менять не стал, дабы избежать ошибок),    date (дата голоса), rating(оценка), ну и остальное нас не интерисует.

Каждый новый голос добавляет дополнительную строку с этими данными в таблицу. Т.е. один юзер с одним ИП сможет всего один раз проголосовать за конкретную категорию.

И это не всегда хорошо, так многие юзеры ходят в инет через проксик, и это не их вина, а техническое решение провайдера. В принципе это не так кретично если у сайта широкая "географическая" аудитория, а если сайт ориентирован на небольшой городок (например "Токио" :) ) в котором один-два провайдера, то это проблема.

Поэтому возращаясь к решению предпринятому в екстравоте. там каждый голос не записывается новой строкой в БД. а просто в строке содержащей ИД категории обновляется запись "lastip". т.е. екстравоте запоминает только последний ип.
таким образом там запрещается голосовать за материал несколько раз подряд с одого ип, но если подождать пока проголосуют с другого ип, то можно будет потом еще раз щелкнуть по звездачкам.

Плюсы такого метода, 1. более гуманное отношение к юзерам сидящим под одним прокси-сервером. Какого-же у людей будет разочарование зашедшиг впервый на сайт, попробавших проголосовать, а им "вы уже голосовали".
2.В отличии от записи каждого нового голоса в БД, данный метод не так сильно будет раздувать базу.
« Последнее редактирование: 08.08.2009, 01:50:21 от Zuev »
*

Zuev

  • Захожу иногда
  • 211
  • 15 / 1
  • В дальнем плавании
Да кстати, в новой версии фоки появилось так же голосование за картинку, до этого доберемся позже, там алгоритм реализации рейтинга такой же как и в категориях.
*

Zuev

  • Захожу иногда
  • 211
  • 15 / 1
  • В дальнем плавании
На данный момент то что было мною описано уже протестировано и работоспособно. Так что можете проверять. Жду замечаний, предложений, пожеланий.

еще осталось реализовать две задачи, что бы фока запоминала только последний ип, а так же применить все здесь описанное не только к категориям, но и к картинкам.
« Последнее редактирование: 09.08.2009, 13:39:18 от Zuev »
*

Zuev

  • Захожу иногда
  • 211
  • 15 / 1
  • В дальнем плавании
теперь чтобы разрешить незарегестрированным посетителям голосовать не только за категорию но и за конкретное изображение необходимо проделать то же что делали и с категорией.
Начнем:

1. в файле ваш_сайт/components/com_phocagallery/controllers/detail.php
- комментируем строку 27;
- строку 37 удаляем, вместо нее пишем $post['userid']   = ( phpversion() <= '4.2.1' ? @getenv( 'REMOTE_ADDR' ) : $_SERVER['REMOTE_ADDR'] );
-комментируем строки 58, 64-67.

2. в файле ваш_сайт/components/com_phocagallery/views/detail/tmpl/default_rating.php
-комментируем строки 25-49, 59

3. в файле ваш_сайт/administrator/components/com_phocagallery/libraries/phocagallery/rate/rateimage.php
-изменяем запрос в БД на
      $query = "SELECT id FROM `#__phocagallery_img_votes` WHERE `imgid` = '$imgid'  AND `userid` = '$userid'";
      $db->setQuery($query);
      $checkUserVote = $db->loadObject();

4..В БД в таблице _phocagallery_img_votes тип поля userid меняем на varchar(50), до этого оно было int(11). Делается это для того чтобы в него можно было записать ИП юзера.

Кроме того, раз уж полезли в таблицу, предлагаю в таблице _phocagallery_img_votes_statistics изменить тип поля count на int.
Потому что тип этого поля установленный разработчиком ("tinyint(11)"), позволяет проголосовать только 127 юзером, больше голосов он не воспринимает. Эта проблема обсуждалась здесь http://joomlaforum.ru/index.php/topic,72687.0.html.
 
Вот и все после этого незарегестрированные юзеры могут голосовать за картинки, вдобавок реализована фильтрация по ИП, что бы лешить пользователя возможности голосовать за одну и туже картинку несколько раз.
*

Zuev

  • Захожу иногда
  • 211
  • 15 / 1
  • В дальнем плавании
В прошлом топике забыл прикрепить изменненые файлы.


[вложение удалено Администратором]
*

anis

  • Захожу иногда
  • 130
  • 1 / 0
Zuev спасибо огромнейшее все работает как часы.
Но есть несколько моментов в этой новой версии. первое так это то что когда голосуешь за фото, нажав на звездочку открывается еще одно окно с фото (и не очень оно удобно) возможно ли сделать чтоб просто нажав на звездочку сразу шел голос без открытия еще окна с фото. Это было бы очень классно
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joomla 5 Модули: PhocaGallery Image Module ошибка Class "JRequest" not found

Автор prostoy

Ответов: 0
Просмотров: 1370
Последний ответ 05.09.2024, 09:41:27
от prostoy
PhocaGallery

Автор rezchik

Ответов: 6
Просмотров: 2266
Последний ответ 07.01.2024, 16:59:36
от SeBun
Русификация PhocaGallery 3 и 4 для Joomla 2.5\3.0

Автор HiopsNerevar

Ответов: 118
Просмотров: 101825
Последний ответ 11.03.2022, 16:24:13
от sergeytolkachyov
Сортировка категорий в столбцах/колонках PhocaGallery 3.2.2

Автор remix8080

Ответов: 0
Просмотров: 2909
Последний ответ 20.06.2021, 17:09:27
от remix8080
PhocaGallery 2.8.1 для Joomla 1.5

Автор iGoldSilver

Ответов: 3
Просмотров: 3134
Последний ответ 16.12.2020, 10:10:17
от iGoldSilver