Хак, позволяющий добавить функцию "на фотографии себя нашли".Работает на оригинальной 12-й версии (на других, кроме 1.5 тоже должен) и на версии галереи 1.6 (в предыдущих версиях будет отличаться пункт 2 (вместо $header там $lightbox).
Исправил ошибку повторного добавления юзером себя в список. Если для данной картинки он уже существует - будет выдано соответствующее предупреждение.
Хак в данной вариации работает, если для фотографий разрешен показ дополнительной информации.
На AJAX конкретно не заморачивался, чтобы после добавления запись появилась в списке - необходимо обновить страницу.
Внимание - необходимо скачать обновленный
архив (для тех, кто эксперементировал ранее)
Демо-версия (просьба не шалить, ибо сайт собственный-рабочий
)
порядок действий1 - создать таблицу в бд
CREATE TABLE `префикс_datsogallery_users` (
`pic_id` int(5) NOT NULL default '0',
`user_id` int(5) NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Где "префикс" - префикс таблиц, по умолчанию jos
2 - открыть файл sub_viewdetails.php найти строки примерно 255-258:
$frating = "$fimgvotesum ($imgvotes "._DG_VOTES.")";
} else {
$frating = _DG_NO_VOTES;
}
и добавить после них код:
//// новая фишка для пользователей, нашедших себя на фото
echo "<b>На этой фотографии себя нашли уже:</b><br />";
$query="SELECT d.id AS did, u.name AS uuname "
. " FROM #__datsogallery_users AS du "
. " JOIN #__datsogallery AS d ON d.id = du.pic_id "
. " JOIN #__users AS u ON u.id = du.user_id "
. " WHERE du.pic_id = $id";
$database->setQuery($query);
$rows = $database->loadObjectList();
foreach($rows as $row1) {
echo $row1->uuname." ";
}
if ($my->username) {
echo "<div id='comtab'></div>";
echo "<div align='center' id='cerror'></div>";
$my_user = $my->id;
echo "<form action='' name='comment' id='com' method='GET' enctype='multipart/form-data'>";
echo "<input type='hidden' name='picid' value='".$id."'/>";
echo "<input type='hidden' name='userid' value='".$my_user."' />";
echo "<input id='sub' class='button' type='submit' value='Добавить себя в список' onclick='addComment(); return false;'>";
echo "</form>";
}
else {
echo "<br />Чтобы оставить о себе упоминание необходимо авторизоваться на сайте либо пройти <a href='index.php?option=com_registration&task=register'>регистрацию</a>";
}
////////////////////////////////////////////////////////////////////
3 - в этом же файле в самом начале найти строки:
$header .= "<script type=\"text/javascript\" src=\"$gallerypath/js/slimbox/js/mootools.js\"></script>\n";
}
$header .= "<script type=\"text/javascript\" src=\"$gallerypath/js/slimbox/js/slimbox.js\"></script>\n";
$header .= "<link rel=\"stylesheet\" href=\"$gallerypath/js/slimbox/css/slimbox.css\" type=\"text/css\" media=\"screen\" />\n";
и добавить после две строки:
$header .= "<script type=\"text/javascript\" src=\"$gallerypath/ajax/comm.js\"></script>\n";
$header .= "<script type=\"text/javascript\" src=\"$gallerypath/ajax/JsHttpRequest.js\"></script>\n";
4 - В папке components\com_datsogallery создать каталог ajax и распаковать в него
архив Параметры вывода на экран списка юзеров - пункт 2 в добавленном коде.
Тексты успешного добавления и ошибки - в файле components\com_datsogallery\ajax\comm.js