Собственно, самому нужно было. за пример взял топик с форума JoomGallery. Но там, говорили что хак не рабочий.. Но этот работает, проверено.
Хак работает для версии JoomGallery 1.0 и 1.5
для Version 1.5.6.3 - смотрите ниже. Для начала, нам необходимо добавить поля отключения\включения блокировки по IP и Cookies в админку JoomGallery.
Находим файл
/administrator/components/com_joomgallery/includes/html/ admin.configuration.html.phpВ нем, где то после строки 248 добавляем следующий код.
HTML_Joom_AdminConfig::Joom_ShowConfigRow('jg_checkcookievotes', 'yesno', 'JGA_ALLOW_RATING_COOKIE_CHECK', $config->jg_checkcookievotes);
HTML_Joom_AdminConfig::Joom_ShowConfigRow('jg_checkipvotes', 'yesno', 'JGA_ALLOW_RATING_IPADDR_CHECK', $config->jg_checkipvotes);
Он выведет нам переключатель да\нет для выбора блокировки голосования по IP или Cookies.
Дальше, нам необходимо в нашей базе MySQL добавить два поля, где будут хранится наши настройки.
Для это необходимо выполнить следующий запрос MySQL к базе где установлена JoomGallery.
ALTER TABLE `jos_joomgallery_config` ADD `jg_checkipvotes` INT(1) NOT NULL AFTER `jg_onlyreguservotes`, ADD `jg_checkcookievotes` INT(1) NOT NULL AFTER `jg_checkipvotes`
Как делается запрос После этого, можем по желанию добавить в нашу локализацию JoomGallery названия полей в админке. Это не обязательно, но для полноты картины можно.
Открываем файл administrator/ language/uk-UA/ uk-UA.com_joomgallery.ini
Название файла локализации и папки, зависит от установленной локализации у вас.
В нем где то добавляем строки:
JGA_ALLOW_RATING_COOKIE_CHECK=Блокування по COOKIE
JGA_ALLOW_RATING_COOKIE_CHECK_LONG=Задіяти блокування багаторазового голосування за технологією COOKIE
JGA_ALLOW_RATING_IPADDR_CHECK=Блокування по IP
JGA_ALLOW_RATING_IPADDR_CHECK_LONG=Задіяти блокування багаторазового голосування за технологією IP
Теперь нам необходимо научить наш класс работы с базой, обрабатывать наши новодобавленные поля .
Открываем файл
/administrator/components/com_joomgallery/includes/ admin.configuration.php и после строки class Joom_AdminConfiguration {
добавляем
var $jg_checkipvotes;
var $jg_checkcookievotes;
После строки $this->jg_impath = Joom_mosGetParam('jg_impath', '','post');
Добавляем
if (isset($_POST['jg_checkipvotes']))
$this->jg_checkipvotes = JRequest::getInt('jg_checkipvotes', 1,'post');
if (isset($_POST['jg_checkcookievotes']))
$this->jg_checkcookievotes = JRequest::getInt('jg_checkcookievotes', 1,'post');
На этом, хак админки закончен. В настройках JoomGallery – Права пользователей – Оценки : появилось два новых параметра.
Теперь, нам нужно добавить условие, которое устанавливать cookies или проверять IP. Но посоветую вам использовать все таки проверку по куки. Так как на одном IP может быть целая локальная сеть.
В конце заменить файл
components/com_joomgallery/includes/ joom.votepic.php на этот -
файлТеперь можете проверить. Как результат при активной блокировке по cookies, страница с фото будет перегружаться, но рейтинг в базе не обновится. Конечно, можно добавить еще вывод алерта, что вы уже проголосовали один раз за данное изображение, но это уже по желанию.
Хак для версии JoomlaGallery Version 1.5.6.3 (блокировка по IP)Добавление поля "Блокировка по IP" в дминку JG
Кто не хочет делать пошагово - заливаем в корень Joomla содержимое папки patch_JG (в аттаче)
и делаем запрос БД (см. ниже)
1. Файл /administrator/components/com_joomgallery/helpers/config.php
После строки
Добавлялем
2. Файл /administrator/components/com_joomgallery/tables/joomgalleryconfig.php
После строки
Добавлялем
3. Файл /administrator/components/com_joomgallery/views/config/tmpl/default.php
После
JHTML::_('joomconfig.row', 'jg_showauthor', 'yesno', 'JGA_CONFIG_CV_GS_AUTHOR', $this->_config->jg_showauthor);
Добавляем
JHTML::_('joomconfig.row', 'jg_checkipvotes', 'yesno', 'JGA_CONFIG_CV_GS_CHECKIPVOTES', $this->_config->jg_checkipvotes);
4. Делаем следующий запрос БД MySQL
ALTER TABLE `jos_joomgallery_config` ADD `jg_checkipvotes` INT(1) NOT NULL AFTER `jg_onlyreguservotes`;
Как делается запрос 5. Добавление локализации наших поля в админке
Файл /administrator/language/en-GB/en-GB.com_joomgallery.ini
JGA_CONFIG_CV_GS_AUTHOR=Show Author
Добавляем
J
GA_CONFIG_CV_GS_CHECKIPVOTES=Block vote IP
JGA_CONFIG_CV_GS_CHECKIPVOTES_LONG=Block a second vote on IP
Теперь в админке JoomGallery в
Configuration Manager-Category View Block vote IP И наконец меняем файл
/components/com_joomgallery/models/vote.php
[вложение удалено Администратором]