[Хак] Альбомы клубов в админ-панели

+28
1.46K
как известно у клубов есть свои фотоальбомы. столкнулся с проблемой, когда в одном из клубов сделали ошибку в названии, а как отредактировать не знают. в управлении клубам ни я ни админ клуба не нашли кнопочки редактировать (только удалить). а в админке я вообще не нашёл список альбомов клубов (потом нашёл — нажал все фотографии, выбрал фотку из этого альбома, потом перешёл в настройки самого альбома — через ж… не правда ли???)
задался вопросом как сделать удобный список альбомов с возможностью их редактировать
вот оно решение
нам понадобится отредактировать 2 файла
для начала создадим переменную функции для вывода названия клубов
открываем /admin/includes/cp.php
находим
  1. function cpBoardCatById($id){
  2.  
вставляем перед
  1. // клуб по id
  2. function cpClubsById($id){
  3.  
  4. $result = dbQuery("SELECT title FROM cms_clubs WHERE id = $id") ;
  5.  
  6. if (mysql_num_rows($result)) {
  7. $cat = mysql_fetch_assoc($result);
  8. return 'Клуб "'.$cat['title'].'" ('.$id.')';
  9. } else { return '--'; }
  10.  
  11. }
  12.  
сохраняем
открываем /admin/components/photos/backend.php
находим
  1.  
  2. $toolmenu[0]['icon'] = 'newfolder.gif';
  3. $toolmenu[0]['title'] = 'Новый альбом';
  4. $toolmenu[0]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=add_album';
  5.  
  6. $toolmenu[1]['icon'] = 'newphoto.gif';
  7. $toolmenu[1]['title'] = 'Новая фотография';
  8. $toolmenu[1]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=add_photo';
  9.  
  10. $toolmenu[2]['icon'] = 'newphotomulti.gif';
  11. $toolmenu[2]['title'] = 'Массовая загрузка фото';
  12. $toolmenu[2]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=add_photo_multi';
  13.  
  14. $toolmenu[3]['icon'] = 'folders.gif';
  15. $toolmenu[3]['title'] = 'Фотоальбомы';
  16. $toolmenu[3]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_albums';
  17.  
  18. $toolmenu[4]['icon'] = 'listphoto.gif';
  19. $toolmenu[4]['title'] = 'Все фотографии';
  20. $toolmenu[4]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_photos';
  21.  
  22. $toolmenu[5]['icon'] = 'config.gif';
  23. $toolmenu[5]['title'] = 'Настройки';
  24. $toolmenu[5]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=config';
  25.  
заменяем на
  1.  
  2. $toolmenu[0]['icon'] = 'newfolder.gif';
  3. $toolmenu[0]['title'] = 'Новый альбом';
  4. $toolmenu[0]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=add_album';
  5.  
  6. $toolmenu[1]['icon'] = 'newphoto.gif';
  7. $toolmenu[1]['title'] = 'Новая фотография';
  8. $toolmenu[1]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=add_photo';
  9.  
  10. $toolmenu[2]['icon'] = 'newphotomulti.gif';
  11. $toolmenu[2]['title'] = 'Массовая загрузка фото';
  12. $toolmenu[2]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=add_photo_multi';
  13.  
  14. $toolmenu[3]['icon'] = 'folders.gif';
  15. $toolmenu[3]['title'] = 'Фотоальбомы';
  16. $toolmenu[3]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_albums';
  17.  
  18. $toolmenu[4]['icon'] = 'clubs_album.png';
  19. $toolmenu[4]['title'] = 'Фотоальбомы клубов';
  20. $toolmenu[4]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_albums_clubs';
  21.  
  22. $toolmenu[5]['icon'] = 'listphoto.gif';
  23. $toolmenu[5]['title'] = 'Все фотографии';
  24. $toolmenu[5]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_photos';
  25.  
  26. $toolmenu[6]['icon'] = 'config.gif';
  27. $toolmenu[6]['title'] = 'Настройки';
  28. $toolmenu[6]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=config';
  29.  
  30.  
находим
  1. //=================================================================================================//
  2.  
  3. if ($opt == 'list_albums'){
  4.  
  5. echo '<h3>Фотоальбомы</h3>';
  6.  
  7. //TABLE COLUMNS
  8. $fields = array();
  9.  
  10. $fields[0]['title'] = 'Lt'; $fields[0]['field'] = 'NSLeft'; $fields[0]['width'] = '30';
  11.  
  12. $fields[1]['title'] = 'Название'; $fields[1]['field'] = 'title'; $fields[1]['width'] = '';
  13. $fields[1]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=edit_album&item_id=%id%';
  14.  
  15. $fields[2]['title'] = 'Показ'; $fields[2]['field'] = 'published'; $fields[2]['width'] = '100';
  16. $fields[2]['do'] = 'opt'; $fields[2]['do_suffix'] = '_album'; //Чтобы вместо 'do=hide&id=1' было 'opt=hide_album&item_id=1'
  17.  
  18. //ACTIONS
  19. $actions = array();
  20. $actions[0]['title'] = 'Редактировать';
  21. $actions[0]['icon'] = 'edit.gif';
  22. $actions[0]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=edit_album&item_id=%id%';
  23.  
  24. $actions[1]['title'] = 'Удалить';
  25. $actions[1]['icon'] = 'delete.gif';
  26. $actions[1]['confirm'] = 'Вместе с альбомом будут удалены все фотографии. Удалить фотоальбом?';
  27. $actions[1]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=delete_album&item_id=%id%';
  28.  
  29. //Print table
  30. cpListTable('cms_photo_albums', $fields, $actions, 'parent_id>0 AND NSDiffer=""', 'NSLeft');
  31. }
  32.  
  33. //=================================================================================================//
  34.  
вставляем после
  1. //=================================================================================================//
  2.  
  3. if ($opt == 'list_albums_clubs'){
  4.  
  5. echo '<h3>Фотоальбомы клубов</h3>';
  6.  
  7. //TABLE COLUMNS
  8. $fields = array();
  9.  
  10. $fields[0]['title'] = 'Lt';
  11. $fields[0]['field'] = 'NSLeft';
  12. $fields[0]['width'] = '30';
  13.  
  14. $fields[1]['title'] = 'Название';
  15. $fields[1]['field'] = 'title';
  16. $fields[1]['width'] = '';
  17. $fields[1]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=edit_album&item_id=%id%';
  18.  
  19. $fields[2]['title'] = 'Клуб';
  20. $fields[2]['field'] = 'user_id';
  21. $fields[2]['width'] = '250';
  22. $fields[2]['prc'] = 'cpClubsById';
  23.  
  24.  
  25. $fields[3]['title'] = 'Показ';
  26. $fields[3]['field'] = 'published';
  27. $fields[3]['width'] = '100';
  28. $fields[3]['do'] = 'opt';
  29. $fields[3]['do_suffix'] = '_album';
  30.  
  31. //ACTIONS
  32. $actions = array();
  33. $actions[0]['title'] = 'Редактировать';
  34. $actions[0]['icon'] = 'edit.gif';
  35. $actions[0]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=edit_album&item_id=%id%';
  36.  
  37. $actions[1]['title'] = 'Удалить';
  38. $actions[1]['icon'] = 'delete.gif';
  39. $actions[1]['confirm'] = 'Вместе с альбомом будут удалены все фотографии. Удалить фотоальбом?';
  40. $actions[1]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=delete_album&item_id=%id%';
  41.  
  42. //Print table
  43. cpListTable('cms_photo_albums', $fields, $actions, 'parent_id>0 AND (NSDiffer LIKE "club%")', 'NSDiffer');
  44. }
  45.  
  46. //=================================================================================================//
  47.  
сохраняем
заливаем картинку — содержимое архива в корень сайта
instantcms.ru/users/files/download1647.html

заходим в админку — компоненты — фотогалерея. видим в панели новую кнопочку — жмём на неё и видим список альбомов клубов со строкой к какому клубу принадлежит альбом

ps и как обычно — от поощрений не откажусь (инфа на стене и в подписе на форуме), а так же приветствуется плюс в карму
0
nikitka nikitka 13 лет назад #
Да давняя проблема!Спасибо за решение ++++++++++++++++
+8
Sergey Platonov Sergey Platonov 13 лет назад #
думаю ещё альбомы пользователей сделать там же в админке, но сегодня меня хватило только на клубы
0
bondar bondar 13 лет назад #
для версии 1.7 пройдет ??
0
Sergey Platonov Sergey Platonov 13 лет назад #
не знаю, не пробовал, но если там такой же код (а я так думаю что там так же за исключением может небольших мелочей) то всё подойдёт.
0
bondar bondar 13 лет назад #
вроде работает спс
+4
moHAX moHAX 13 лет назад #
очень полезно, но стоит дождаться пока еще и альбомы пользователей будут. А пока в закладки
0
джин джин 13 лет назад #
+
0
Patriot Patriot 13 лет назад #
В админ панели это хорошо.+++ А когда тысячи клубов и у админа клуба нет возможности редактирования альбома? Будет туча ошибок и за всеми админу сайта не угнаться...Прикрутить бы кнопку редактирования, возле кнопки удаления для админа клуба. Было бы отлично!

Еще от автора

Модуль для бесплатной версии компонента "Попутчики" автора Олег
и так представляю вашему вниманию модуль для бесплатной версии компонента "Попутчики" написанной Олегом.
список всех Event-ов системы
решил отдохнуть минут пять от подготовки к госам - полез сюда на сайт, прочитал такую строку в комментах в одном из последних блогов пришла идея разыс
[Хак] Выйти/войти и остаться на той же странице
где то видел на форуме тему про редирект при логине \ разлогине - как остаться на той же самой странице, если у вас стоит форма входа на всех страница
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.