[Хак](new)Альбомы и фотографии пользователей и (old)альбомы клубов в админ-панели

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

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

и так для начала функционал:

Код PHP:
вывод списка альбомов клубов 
вывод списка альбомов пользователей
вывод списка фотографий пользователей
есть возможность редактирования фотографий и альбомов 
есть возможность удаления фотографий и альбомов 
при удалении фотографии удаляется как запись в базе, так и фаил.
при удалении альбома удаляется запись из базы об альбоме, записи из базы о фото с альбома и сами файлы
приступим к самому хаку
будем редактировать три файла

открываем фаил \admin\components\photos\backend.php

находим

Код PHP:
//=================================================================================================//

	if ($opt=='list_photos' || $opt=='list_albums'){
	
		$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:
//=================================================================================================//

	if ($opt=='list_photos' || $opt=='list_albums' || $opt=='list_albums_clubs' || $opt=='list_user_albums' || $opt=='list_user_photos'){
	
$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[7]['icon'] = 'user_photos.png';
$toolmenu[7]['title'] = 'Фотографии пользователей';
$toolmenu[7]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_user_photos';

$toolmenu[8]['icon'] = 'user_albums.png';
$toolmenu[8]['title'] = 'Фотоальбомы пользователей';
$toolmenu[8]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_user_albums';

$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_photos' || $opt=='list_albums'){
	} else {
	
		$toolmenu[20]['icon'] = 'save.gif';
		$toolmenu[20]['title'] = 'Сохранить';
		$toolmenu[20]['link'] = 'javascript:document.addform.submit();';

		$toolmenu[21]['icon'] = 'cancel.gif';
		$toolmenu[21]['title'] = 'Отмена';
		$toolmenu[21]['link'] = '?view=components&do=config&id='.$_REQUEST['id'];
	
	}

	cpToolMenu($toolmenu);

//=================================================================================================//

заменяем на
Код PHP:
//=================================================================================================//

	if ($opt=='list_photos' || $opt=='list_albums' || $opt=='list_albums_clubs' || $opt=='list_user_albums' || $opt=='list_user_photos'){
	} else {
	
		$toolmenu[20]['icon'] = 'save.gif';
		$toolmenu[20]['title'] = 'Сохранить';
		$toolmenu[20]['link'] = 'javascript:document.addform.submit();';

		$toolmenu[21]['icon'] = 'cancel.gif';
		$toolmenu[21]['title'] = 'Отмена';
		$toolmenu[21]['link'] = '?view=components&do=config&id='.$_REQUEST['id'];
	
	}

	cpToolMenu($toolmenu);

//=================================================================================================//

в самом конце перед

Код PHP:
?>
вставляем следующий код


(кто ставил хак альбомов клубов то часть с клубом пропустить)

Код PHP:
//============================  хак альбомов клубов и пользователей ==============================//

//================================= Фотоальбомы и фотографии пользователей=========================//
//===================================   Список фотографий пользователей   =========================//

	if ($opt == 'list_user_photos'){
		cpAddPathway('Фотографии пользователей', '?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_user_photos');
		echo '<h3>Фотографии пользователей</h3>';
		
		//TABLE COLUMNS
		$fields = array();

		$fields[0]['title'] = 'id';
		$fields[0]['field'] = 'id';
		$fields[0]['width'] = '30';

		$fields[1]['title'] = 'Дата';
		$fields[1]['field'] = 'pubdate';
		$fields[1]['width'] = '80';
		$fields[1]['filter'] = 15;
		$fields[1]['fdate'] = '%d/%m/%Y';

		$fields[2]['title'] = 'Название';
		$fields[2]['field'] = 'title';
		$fields[2]['width'] = '';
		$fields[2]['filter'] = 15;
		$fields[2]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=edit_user_photo&item_id=%id%';

		$fields[3]['title'] = 'Показ';
		$fields[3]['field'] = 'allow_who';
		$fields[3]['width'] = '100';
		$fields[3]['prc'] = 'cpUserPhotoAlbumView';

		$fields[4]['title'] = 'Просмотров';
		$fields[4]['field'] = 'hits';
		$fields[4]['width'] = '90';
		
		$fields[5]['title'] = 'Альбом';
		$fields[5]['field'] = 'album_id';
		$fields[5]['width'] = '200';
		$fields[5]['prc'] = 'cpUserPhotoAlbumById';
		$fields[5]['filter'] = 1;  
		$fields[5]['filterlist'] = cpGetList('cms_user_albums');
	
		$fields[6]['title'] = 'Хозяин фотографии';
		$fields[6]['field'] = 'user_id';
		$fields[6]['width'] = '200';
		$fields[6]['prc'] = 'cpUserNick';
	
		//ACTIONS
		$actions = array();
		$actions[0]['title'] = 'Редактировать';
		$actions[0]['icon']  = 'edit.gif';
		$actions[0]['link']  = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=edit_user_photo&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_user_photo&item_id=%id%';
				
		//Print table
		cpListTable('cms_user_photos', $fields, $actions, '', 'id DESC');		
	}

//=================================================================================================//

//=========================== Фотоальбомы пользователей (список) ==================================//

	if ($opt == 'list_user_albums'){
		
		cpAddPathway('Фотоальбомы пользователей', '?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_user_albums');

		echo '<h3>Фотоальбомы пользователей</h3>';

		//TABLE COLUMNS
		$fields = array();

		$fields[0]['title'] = 'id';
		$fields[0]['field'] = 'id';
		$fields[0]['width'] = '30';

		$fields[1]['title'] = 'Дата';
		$fields[1]['field'] = 'pubdate';
		$fields[1]['width'] = '80';
		$fields[1]['filter'] = 15;
		$fields[1]['fdate'] = '%d/%m/%Y';

		$fields[2]['title'] = 'Название';
		$fields[2]['field'] = 'title';
		$fields[2]['width'] = '';
		$fields[2]['filter'] = 15;
		$fields[2]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=edit_user_album&item_id=%id%';

		$fields[3]['title'] = 'Показ';
		$fields[3]['field'] = 'allow_who';
		$fields[3]['width'] = '100';
		$fields[3]['prc'] = 'cpUserPhotoAlbumView';

		$fields[4]['title'] = 'Хозяин альбома';
		$fields[4]['field'] = 'user_id';
		$fields[4]['width'] = '200';
		$fields[4]['prc'] = 'cpUserNick';

		//ACTIONS
		$actions = array();
		$actions[0]['title'] = 'Редактировать';
		$actions[0]['icon']  = 'edit.gif';
		$actions[0]['link']  = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=edit_user_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_user_album&item_id=%id%';
				
		//Print table
		cpListTable('cms_user_albums', $fields, $actions, '', 'id DESC');		
	}

//=================================================================================================//

//============================== Страница редактирования фотографии пользователя ==================//

	if ($opt == 'edit_user_photo'){	

						
					$id = $_REQUEST['item_id'];
		
		
					 $sql = "SELECT f.*, a.title as album
                             FROM cms_user_photos f, cms_user_albums a
                             WHERE f.id = $id AND f.album_id = a.id LIMIT 1";
					 $result = dbQuery($sql) ;
					 if (mysql_num_rows($result)){
						$mod = mysql_fetch_assoc($result);
					

					 echo '<h3>'.$mod['title'].' '.$ostatok.'</h3>';
					 cpAddPathway('Фотографии пользователей', '?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_user_photos');
					 cpAddPathway($mod['title'], '?view=components&do=config&id='.$_REQUEST['id'].'&opt=edit_user_photo&item_id='.$id);		
						
			}
		?>
		<?php cpCheckWritable('/images/users/photos', 'folder'); ?>
		<?php cpCheckWritable('/images/users/photos/medium', 'folder'); ?>
		<?php cpCheckWritable('/images/users/photos/small', 'folder'); ?>				
        <form action="index.php?view=components&do=config&id=<?php echo $_REQUEST['id'];?>" method="post" enctype="multipart/form-data" name="addform" id="addform">
        <table width="600" border="0" cellspacing="5" class="proptable">
        <tr>
            <td width="177">Название фотографии: </td>
            <td width="311"><input name="title" type="text" id="title" size="30" value="<?php echo htmlspecialchars($mod['title']);?>"/></td>
        </tr>
        <tr>
            <td valign="top">Фотоальбом:</td>
            <td valign="top">
                <?php 
                    $user_nik['id']     = $mod['user_id'];
                    $user_nik['nik']  = $inDB->get_field('cms_users', "id={$user_nik['id']}", 'nickname');
                    $user_nik['login']  = $inDB->get_field('cms_users', "id={$user_nik['id']}", 'login');
                ?><input type="hidden" name="album_id" value="<?php echo $mod['album_id']; ?>" />
                    <?php echo $user_nik['nik'] .'('.$user_nik['login'].')';?> &rarr; <?php echo $mod['album']; ?>
            </td>
        </tr>
        <tr>
            <td>Файл фотографии: </td>
            <td><?php if (@$mod['imageurl']) {
                echo '<div><img src="/images/users/photos/small/'.$mod['imageurl'].'" border="1" /></div>';
                echo '<div><a href="/images/users/photos/medium/'.$mod['imageurl'].'" title="Посмотреть фото">'.$mod['title'].'</a></div>';
            } else { ?>
                <input name="picture" type="file" id="picture" size="30" />
            <?php } ?></td>
        </tr>
                            <tr>
                                <td height="30">Показывать:</td>
                                <td>
                                    <select name="allow">
                                        <option value="all" <?php if (@$mod['allow_who']=='all') {echo 'selected="selected"';} ?> >Всем</option>
                                        <option value="registered" <?php if ($mod['allow_who']=='registered') {echo 'selected="selected"';} ?> >Зарегестрированным</option>
                                        <option value="friends" <?php if ($mod['allow_who']=='friends') {echo 'selected="selected"';} ?> >Друзьям</option>
                                    </select>
                                </td>
                            </tr>
        </table>
        <table width="100%" border="0">
            <tr>
                <?php
                if(!isset($mod['user']) || @$mod['user']==1){
                    echo '<td width="52%" valign="top">';
                    echo 'Описание фотографии:<br/>';

                    $inCore->insertEditor('description', $mod['description'], '260', '605');
                    
                    echo '</td>';
                }
                ?>
            </tr>
        </table>
        <p>
            <input name="add_mod" type="submit" id="add_mod" value="Сохранить фото" />
            <input name="back3" type="button" id="back3" value="Отмена" onclick="window.location.href='index.php?view=components&do=config&id=<?php echo $_REQUEST['id']; ?>&opt=list_user_photos';"/>
            <input name="opt" type="hidden" id="opt" value="update_user_photo" />
            <?php
            
                echo '<input name="item_id" type="hidden" value="'.$mod['id'].'" />';
           
            ?>
        </p>
        </form>
	 <?php	
	}

//=================================================================================================//

//================================ Обновление фотографии пользователя =============================//

	if ($opt == 'update_user_photo'){
		if($inCore->inRequest('item_id')) {
			$id = $inCore->request('item_id', 'int');
			
	$photo['title']        = $inCore->request('title', 'str');
	$photo['description']  = $inCore->request('description', 'html');
	$photo['description']  = $inDB->escape_string($photo['description']);
	$photo['allow']    = $inCore->request('allow', 'str');

            $model->updateUserPhoto($id, $photo);
		}
		if (!isset($_SESSION['editlist']) || @sizeof($_SESSION['editlist'])==0){
			$inCore->redirect('?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_user_photos');
		} else {
			$inCore->redirect('?view=components&do=config&id='.$_REQUEST['id'].'&opt=edit_user_photo');
		}
	}

//=================================================================================================//
//================================ Удаление фотографии пользователя ===============================//

	if($opt == 'delete_user_photo'){
        
		if (!isset($_REQUEST['item'])){
            $id = (int)$_REQUEST['item_id'];
			if ($id >= 0){
				$model->deleteUserPhoto($id);
			}
		} else {
			$model->deleteUserPhotos($_REQUEST['item']);
		}

        $inCore->redirect('?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_user_photos');

	}

//=================================================================================================//

//============================== Страница редактирования альбома пользователя =====================//
	
	if ($opt == 'edit_user_album'){

					 if(isset($_REQUEST['item_id'])){
						 $id = $_REQUEST['item_id'];
						 $sql = "SELECT * FROM cms_user_albums WHERE id = $id LIMIT 1";
						 $result = dbQuery($sql) ;
						 if (mysql_num_rows($result)){
							$mod = mysql_fetch_assoc($result);
							
						 }
					
					 cpAddPathway('Фотоальбомы пользователей', '?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_user_albums');
					 cpAddPathway('Редактировать фотоальбом пользователя', '?view=components&do=config&id='.$_REQUEST['id'].'&opt=edit_user_album');
					 echo '<h3>Редактировать фотоальбом пользователя</h3>';
			   }

		?>
		
        <form id="addform" name="addform" method="post" action="index.php?view=components&do=config&id=<?php echo $_REQUEST['id'];?>">
            <table width="610" border="0" cellspacing="5" class="proptable">
                <tr>
                    <td width="300">Название альбома:</td>
                    <td><input name="title" type="text" id="title" size="30" value="<?php echo htmlspecialchars($mod['title']); ?>"/></td>
                </tr>

        <tr>
            <td valign="top">Хозяин фотоальбома:</td>
            <td valign="top">
                <?php 
                    $user_nik['id']     = $mod['user_id'];
                    $user_nik['nik']  = $inDB->get_field('cms_users', "id={$user_nik['id']}", 'nickname');
                    $user_nik['login']  = $inDB->get_field('cms_users', "id={$user_nik['id']}", 'login');
                ?><input type="hidden" name="album_id" value="<?php echo $mod['album_id']; ?>" />
                    <?php echo $user_nik['nik'] .' ('.$user_nik['login'].')';?> 
            </td>
        </tr>

                            <tr>
                                <td height="30">Показывать:</td>
                                <td>
                                    <select name="allow">
                                        <option value="all" <?php if (@$mod['allow_who']=='all') {echo 'selected="selected"';} ?> >Всем</option>
                                        <option value="registered" <?php if ($mod['allow_who']=='registered') {echo 'selected="selected"';} ?> >Зарегестрированным</option>
                                        <option value="friends" <?php if ($mod['allow_who']=='friends') {echo 'selected="selected"';} ?> >Друзьям</option>
                                    </select>
                                </td>
                            </tr>


            </table>
            <table width="100%" border="0">
                <tr>
                    <div style="margin:5px 0px 5px 0px">Описание альбома:</div>
                    <textarea name="description" style="width:580px" rows="4"><?php echo @$mod['description']?></textarea>
                </tr>
            </table>

        <p>
            <input name="opt" type="hidden" id="opt" value="update_user_album" />
            <input name="add_mod" type="submit" id="add_mod" value="Сохранить альбом" />
            <input name="back2" type="button" id="back2" value="Отмена" onclick="window.location.href='index.php?view=components&do=config&id=<?php echo $_REQUEST['id']; ?>';"/>
            <?php

                    echo '<input name="item_id" type="hidden" value="'.$mod['id'].'" />';
            ?>
        </p>
    </form>
		<?php
	}

//=================================================================================================//

//================================ Обновление альбома пользователя ================================//

	if ($opt == 'update_user_album'){
		if($inCore->inRequest('item_id')) {
			$id = $inCore->request('item_id', 'int');
			
            $album['title']         = $inCore->request('title', 'str');
            $album['description']   = $inCore->request('description', 'html');
            $album['description']   = $inDB->escape_string($album['description']);
            $album['allow']     = $inCore->request('allow', 'str');
								
            $model->updateUserAlbum($id, $album);
							
			$inCore->redirect('?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_user_albums');
		}
	}

//=================================================================================================//

//=================================== удаление альбома пользователя ===============================//

	if($opt == 'delete_user_album'){
		if($inCore->inRequest('item_id')) {
			$id = $inCore->request('item_id', 'int');
            $model->deleteUserAlbum($id);
		}
		$inCore->redirect('?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_user_albums');
	}

//=================================================================================================//


//===================================== Хак альбомов клубов ======================================//
//=================================== Список альбомов клубов =====================================//

	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');		
	}

//=================================================================================================//



с этим файлом всё

далее открываем фаил \admin\includes\cp.php

находим
Код PHP:
function cpPhotoAlbumById($id){

	$result = dbQuery("SELECT title FROM cms_photo_albums WHERE id = $id") ;
	
	if (mysql_num_rows($result)) { 
		$cat = mysql_fetch_assoc($result);		
		return '<a href="index.php?view=components&do=config&id='.$_REQUEST['id'].'&opt=edit_album&item_id='.$id.'">'.$cat['title'].'</a> ('.$id.')';
	} else { return '--'; }

}
вставляем после (можно и в другом месте файла)
если ставили хак альбомов клубов раздел клуб по 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 'Клуб &quot;'.$cat['title'].'&quot; ('.$id.')';
	} else { return '--'; }

}

// альбом пользователя по id  
function cpUserPhotoAlbumById($id){

	$result = dbQuery("SELECT title FROM cms_user_albums WHERE id = $id") ;
	
	if (mysql_num_rows($result)) { 
		$cat = mysql_fetch_assoc($result);		
		return '&quot;'.$cat['title'].'&quot; ('.$id.')';
	} else { return '--'; }

}
// кому показывать фото и альбомы пользователей  
function cpUserPhotoAlbumView($who){

	
	if ($who=="all") { 
		return 'Всем';
	} 

	if ($who=="friends") { 
		return 'Друзьям';
	} 

	if ($who=="registered") { 
		return 'Зарегистрированным';
	} 

}

с этим файлом всё

далее открываем \components\photos\model.php


и в самом конце

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

Код PHP:
/* ======================== обновление данных фотографии пользователя ================================= */

	public function updateUserPhoto($id, $photo){
        $inCore     = cmsCore::getInstance();
        $inUser     = cmsUser::getInstance();

        $photo      = cmsCore::callEvent('UPDATE_PHOTO', $photo);

        $sql = "UPDATE cms_user_photos
                SET title='{$photo['title']}',
                    description='{$photo['description']}',
                    allow_who='{$photo['allow']}'
                WHERE id = '{$id}'
                LIMIT 1";

        $this->inDB->query($sql);

    }

/* ==================================================================================================== */

/* ================================== удаление фотографии пользователя ================================ */

	public function deleteUserPhoto($id, $file=''){
        
        $inCore = cmsCore::getInstance();

        cmsCore::callEvent('DELETE_PHOTO', $id);

        if (!$file){
            $file = $this->inDB->get_field('cms_user_photos', "id='{$id}'", 'imageurl');
        }
        if (!$file){ return false; }

        $this->deletePhotoFile($file, PATH.'/images/users/photos/');

		$inCore->deleteComments('userphoto', $id);
		$inCore->deleteRatings('userphoto', $id);

        cmsActions::removeObjectLog('add_user_photo', $id);

        $sql = "DELETE FROM cms_user_photos WHERE id = '$id'";
        $this->inDB->query($sql) ;

        cmsClearTags('userphoto', $id);
        
    }

/* ==================================================================================================== */

/* ================================== удаление фотографий пользователя ================================ */

    public function deleteUserPhotos($id_list){

        cmsCore::callEvent('DELETE_PHOTOS', $id_list);

        foreach($id_list as $key=>$id){
            $this->deleteUserPhoto($id);
        }

        return true;
        
    }

/* ==================================================================================================== */

/* ============================ Обновление информации об альбоме пользователя ========================= */

	public function updateUserAlbum($id, $album){


        $album = cmsCore::callEvent('UPDATE_ALBUM', $album);


        $sql = "UPDATE cms_user_albums
                SET title='{$album['title']}',
                    description='{$album['description']}',
                    allow_who='{$album['allow']}'
                WHERE id = '$id'";
        
        $this->inDB->query($sql);
    }

/* ==================================================================================================== */

/* =================================== Удаление альбома пользователя ================================== */

	public function deleteUserAlbum($id, $differ = ''){
        
        $inCore = cmsCore::getInstance();

        cmsCore::callEvent('DELETE_ALBUM', $id);

        $sql    = "SELECT f.id as id, f.imageurl as imageurl
                             FROM cms_user_photos f, cms_user_albums a
                             WHERE f.album_id = $id";
        $result = $this->inDB->query($sql);

        if ($this->inDB->num_rows($result)){
            while($photo = $this->inDB->fetch_assoc($result)){
                $this->deleteUserPhoto($photo['id'], $photo['imageurl']);
            }
        }
	        $sql_del = "DELETE FROM cms_user_albums WHERE id = '$id'";
        $this->inDB->query($sql_del) ;
	

    }

/* ==================================================================================================== */


скидываем иконки в соответствии иерархии папок с прикреплённого архива (в корень сайта)

сохраняем всё это и пользуемся

архив с иконками и описанием /users/files/download2105.html

ну и как обычно - от поощрений не откажусь (инфа на стене и в подписе на форуме), а так же приветствуется плюс в карму
[Хак] Время сервера и время сайта в админке при настройке часового пояса. | [Хак] Выйти/войти и остаться на той же странице
Комментарии (11)
Алексей Гаврилов 20 мая 2012 в 11:43 0
А пример можно или скриншет как это будет выглядит?
Sergey Platonov 20 мая 2012 в 12:22 +3
список альбомов клубов
Спойлер
список альбомов пользователей
Спойлер
список фотографий пользователей
Спойлер
редактирование фотографии пользователя
Спойлер
редактирование альбома пользователя
Спойлер
Soul 20 мая 2012 в 16:40 +1
Куча хаков в последнее время... +++ конечно всем за труды, расширяется функционал..., но при всей этой красоте - как сказываются данные изменения в коде на самом движке (я не имею в виду конкретно этот хак, а изменения в движке в целом)?
Очень бы хотелось видеть комментарии администрации по всем предлагаемым на сайте изменениям исходников (да и разработок в целом) - лучше Вас движок не знает ни кто и хотелось бы знать Ваше мнение.
Sergey Platonov, + в блог и карму.
Sergey Platonov 20 мая 2012 в 18:54 +4
скажу от себя - какие то хаки полезны, какие то нет. всё зависит от того, что нужно пользователю от самого движка. и делая какой либо хак и переписывая ядро, какие то хаки делают систему ещё более уязвимой, а какие то просто расширяют функционал. к примеру я расписывал давно тут хак к форуму - иконки разделов. так вот он потом был включен в версию 1.9 но с учётом того, что его грамотно переписали с точки зрения безопасности движка. данный хак я писал максимально приближенно к тому коду, что был уже в ядре, парочка новых функций, парочка моделей и парочка страниц. на скоко безопасен для системы данный хак, я сказать не могу, но на мой взгляд дыр в ядре я вроде не наделал. если данный хак будет вписан в новую версию движка (а на мой взгляд он достоин жить) я буду только за. надеюсь администрация услышит данную просьбу включить хак в релиз, переделав конечно же его со стороны безопасности движка.
Soul 20 мая 2012 в 19:07 +1
скажу от себя - какие то хаки полезны, какие то нет.

Тонко ухватили мою мысль +.
По поводу разработок (хаков, модулей и т.д.), публикуемых здесь, многое можно было бы включить в функционал движка - здесь дело скорее в том плане, что некоторые вещи разработчики считают не нужными, не безопасными и т.д., да и чревато использовать чужие разработки (автор может и претензию предъявить, хотя изначально возможно сам просил о безвозмездном использовании его трудов - таков уж человек по своей сущности)..

Вот по этому и сеть желание хотя бы время от времени видеть комментарии разработчиков.
Sergey Platonov 20 мая 2012 в 19:19 0
По поводу разработок (хаков, модулей и т.д.), публикуемых здесь, многое можно было бы включить в функционал движка - здесь дело скорее в том плане, что некоторые вещи разработчики считают не нужными, не безопасными и т.д.,
полностью с вами согласен, на мой взгляд этот хак заслуживает жить. но это уже моё мнение и на мнение администрации он никак повлиять не может.
а по поводу
да и чревато использовать чужие разработки (автор может и претензию предъявить, хотя изначально возможно сам просил о безвозмездном использовании его трудов - таков уж человек по своей сущности)..
лично я не против, даже за. и вообще если я выкладываю в паблик, значит я уже не против. а вот если б я сделал какой нить платный компонент или разработку, а она бы оказалась в паблике потом - я б конечно возмутился (если она б оказалась в паблике без моего разрешения)
st.Puh 20 мая 2012 в 18:14 0
Спасибо все работает, супер
Олег 20 мая 2012 в 18:20 0
Спасибо за хак интересно надо попробовать!!!
Ставим+
VopisUVD 22 мая 2012 в 18:22 0
Отличный хак!!!
А возможно его оформить как модифицированный компонент фотогалереи? Чтоб с инсталяшкой было...
Блицкриг 27 августа 2014 в 00:41 0
На картинках то что нужно. Ни одной строчки ненашел в файлах. Какая версия инсты? В тексте ненашёл версию а их 1.9.хх 1.10.хх 2.0.хх и уже 2.1.ххх Заметил что вообще мало кто пишет под какую версию он что либо ваяет...
Aryuts 27 августа 2014 в 02:42 0
Заметил что вообще мало кто пишет под какую версию он что либо ваяет...
Полностью согласен. Особенно на форуме этим страдают.