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

802
как известно у клубов есть свои фотоальбомы. столкнулся с проблемой, когда в одном из клубов сделали ошибку в названии, а как отредактировать не знают. в управлении клубам ни я ни админ клуба не нашли кнопочки редактировать (только удалить). а в админке я вообще не нашёл список альбомов клубов (потом нашёл - нажал все фотографии, выбрал фотку из этого альбома, потом перешёл в настройки самого альбома - через ж... не правда ли???)
задался вопросом как сделать удобный список альбомов с возможностью их редактировать
вот оно решение
нам понадобится отредактировать 2 файла
для начала создадим переменную функции для вывода названия клубов
открываем /admin/includes/cp.php
находим
Код PHP:
function cpBoardCatById($id){
вставляем перед
Код PHP:
// клуб по id 
function cpClubsById($id){

	$result = dbQuery("SELECT title FROM cms_clubs WHERE id = $id") ;
	
	if (mysql_num_rows($result)) { 
		$cat = mysql_fetch_assoc($result);		
		return 'Клуб "'.$cat['title'].'" ('.$id.')';
	} else { return '--'; }

}
сохраняем
открываем /admin/components/photos/backend.php
находим
Код PHP:
		$toolmenu[0]['icon'] = 'newfolder.gif';
		$toolmenu[0]['title'] = 'Новый альбом';
		$toolmenu[0]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=add_album';
	
		$toolmenu[1]['icon'] = 'newphoto.gif';
		$toolmenu[1]['title'] = 'Новая фотография';
		$toolmenu[1]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=add_photo';

		$toolmenu[2]['icon'] = 'newphotomulti.gif';
		$toolmenu[2]['title'] = 'Массовая загрузка фото';
		$toolmenu[2]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=add_photo_multi';
	
		$toolmenu[3]['icon'] = 'folders.gif';
		$toolmenu[3]['title'] = 'Фотоальбомы';
		$toolmenu[3]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_albums';
	
		$toolmenu[4]['icon'] = 'listphoto.gif';
		$toolmenu[4]['title'] = 'Все фотографии';
		$toolmenu[4]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_photos';

		$toolmenu[5]['icon'] = 'config.gif';
		$toolmenu[5]['title'] = 'Настройки';
		$toolmenu[5]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=config';
заменяем на
Код PHP:
		$toolmenu[0]['icon'] = 'newfolder.gif';
		$toolmenu[0]['title'] = 'Новый альбом';
		$toolmenu[0]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=add_album';
	
		$toolmenu[1]['icon'] = 'newphoto.gif';
		$toolmenu[1]['title'] = 'Новая фотография';
		$toolmenu[1]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=add_photo';

		$toolmenu[2]['icon'] = 'newphotomulti.gif';
		$toolmenu[2]['title'] = 'Массовая загрузка фото';
		$toolmenu[2]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=add_photo_multi';
	
		$toolmenu[3]['icon'] = 'folders.gif';
		$toolmenu[3]['title'] = 'Фотоальбомы';
		$toolmenu[3]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_albums';
	
		$toolmenu[4]['icon'] = 'clubs_album.png';
		$toolmenu[4]['title'] = 'Фотоальбомы клубов';
		$toolmenu[4]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_albums_clubs';
	
		$toolmenu[5]['icon'] = 'listphoto.gif';
		$toolmenu[5]['title'] = 'Все фотографии';
		$toolmenu[5]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_photos';

		$toolmenu[6]['icon'] = 'config.gif';
		$toolmenu[6]['title'] = 'Настройки';
		$toolmenu[6]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=config';

находим
Код PHP:
//=================================================================================================//

	if ($opt == 'list_albums'){
		
		echo '<h3>Фотоальбомы</h3>';

		//TABLE COLUMNS
		$fields = array();

		$fields[0]['title'] = 'Lt';			$fields[0]['field'] = 'NSLeft';			$fields[0]['width'] = '30';
		
		$fields[1]['title'] = 'Название';	$fields[1]['field'] = 'title';		$fields[1]['width'] = '';
		$fields[1]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=edit_album&item_id=%id%';

		$fields[2]['title'] = 'Показ';		$fields[2]['field'] = 'published';	$fields[2]['width'] = '100';
		$fields[2]['do'] = 'opt'; $fields[2]['do_suffix'] = '_album'; //Чтобы вместо 'do=hide&id=1' было 'opt=hide_album&item_id=1'

		//ACTIONS
		$actions = array();
		$actions[0]['title'] = 'Редактировать';
		$actions[0]['icon']  = 'edit.gif';
		$actions[0]['link']  = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=edit_album&item_id=%id%';

		$actions[1]['title'] = 'Удалить';
		$actions[1]['icon']  = 'delete.gif';
		$actions[1]['confirm'] = 'Вместе с альбомом будут удалены все фотографии. Удалить фотоальбом?';
		$actions[1]['link']  = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=delete_album&item_id=%id%';
				
		//Print table
		cpListTable('cms_photo_albums', $fields, $actions, 'parent_id>0 AND NSDiffer=""', 'NSLeft');		
	}

//=================================================================================================//
вставляем после
Код PHP:
//=================================================================================================//

	if ($opt == 'list_albums_clubs'){
		
		echo '<h3>Фотоальбомы клубов</h3>';

		//TABLE COLUMNS
		$fields = array();

		$fields[0]['title'] = 'Lt';
		$fields[0]['field'] = 'NSLeft';
		$fields[0]['width'] = '30';
		
		$fields[1]['title'] = 'Название';
		$fields[1]['field'] = 'title';
		$fields[1]['width'] = '';
		$fields[1]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=edit_album&item_id=%id%';

		$fields[2]['title'] = 'Клуб';
		$fields[2]['field'] = 'user_id';
		$fields[2]['width'] = '250';
		$fields[2]['prc'] = 'cpClubsById';


		$fields[3]['title'] = 'Показ';
		$fields[3]['field'] = 'published';
		$fields[3]['width'] = '100';
		$fields[3]['do'] = 'opt';
		$fields[3]['do_suffix'] = '_album'; 

		//ACTIONS
		$actions = array();
		$actions[0]['title'] = 'Редактировать';
		$actions[0]['icon']  = 'edit.gif';
		$actions[0]['link']  = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=edit_album&item_id=%id%';

		$actions[1]['title'] = 'Удалить';
		$actions[1]['icon']  = 'delete.gif';
		$actions[1]['confirm'] = 'Вместе с альбомом будут удалены все фотографии. Удалить фотоальбом?';
		$actions[1]['link']  = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=delete_album&item_id=%id%';
				
		//Print table
		cpListTable('cms_photo_albums', $fields, $actions, 'parent_id>0 AND (NSDiffer LIKE "club%")', 'NSDiffer');		
	}

//=================================================================================================//
сохраняем
заливаем картинку - содержимое архива в корень сайта
/users/files/download1647.html

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

ps и как обычно - от поощрений не откажусь (инфа на стене и в подписе на форуме), а так же приветствуется плюс в карму
[Модуль] Слайдер Последние материалы (модифицированный с сортировкой) | [Модуль] Последние материалы (выбор вывода по отдельности автора, даты, комментариев и просмотров)
Комментарии (8)
͡﴾͡๏̯͡๏﴿ 6 декабря 2011 в 23:36 0
Да давняя проблема!Спасибо за решение ++++++++++++++++
Sergey Platonov 6 декабря 2011 в 23:41 +8
думаю ещё альбомы пользователей сделать там же в админке, но сегодня меня хватило только на клубы
krz 7 декабря 2011 в 01:01 0
для версии 1.7 пройдет ??
Sergey Platonov 7 декабря 2011 в 03:05 0
не знаю, не пробовал, но если там такой же код (а я так думаю что там так же за исключением может небольших мелочей) то всё подойдёт.
krz 7 декабря 2011 в 03:05 0
вроде работает спс
moHAX 7 декабря 2011 в 08:05 +4
очень полезно, но стоит дождаться пока еще и альбомы пользователей будут. А пока в закладки
джин 7 декабря 2011 в 14:12 0
+
Patriot 15 декабря 2011 в 06:06 0
В админ панели это хорошо.+++ А когда тысячи клубов и у админа клуба нет возможности редактирования альбома? Будет туча ошибок и за всеми админу сайта не угнаться...Прикрутить бы кнопку редактирования, возле кнопки удаления для админа клуба. Было бы отлично!