- Предыдущая
- 1
- 2
- Показаны 16-21 из 21
#16
10 мая 2012 в 18:28
Мужики, вы друг друга благодарите, но и про вселенную не забывайте, которая вас свела и других пользователей, как ее часть )))
В общем, когда будет решение, вы его оформите, чтобы можно было понять, где конечное рабочее и как это выглядит во фронт-энде.
Спасибо )
В общем, когда будет решение, вы его оформите, чтобы можно было понять, где конечное рабочее и как это выглядит во фронт-энде.
Спасибо )
и так создание личных фотоальбомов работает)))В общем, когда будет решение, вы его оформите, чтобы можно было понять, где конечное рабочее и как это выглядит во фронт-энде.
Спасибо )
в components/users/router.php добавил
'_uri' => '/^users\/([0-9]+)\/nevphotoalbum.html$/i', 'do' => 'new_album', 1 => 'id', );
/////////////////////////////// new album ///////////////////////////////////////////////////////////////////////////////////////// if ($do=='new_album'){ if ($id != $inUser->id) { cmsCore::error404(); } $is_send = $inCore->inRequest('send'); if (!$is_send){ $smarty = $inCore->initSmarty('components', 'com_users_nevphotoalbum.tpl'); $smarty->display('com_users_nevphotoalbum.tpl'); } if ($is_send){ $album['user_id'] = $id; $album['title'] = $inCore->request('album_title'); if (!$album['title']){ //сохраняем текст ошибки в сессию cmsCore::addSessionMessage('Укажите название альбома!', 'error'); //и делаем редирект обратно на форму, завершая выполнение скрипта } $album_id = $model->addPhotoAlbum($album); if ($album_id){ //сохраняем текст успеха в сессию cmsCore::addSessionMessage('альбом успешно создан!', 'success'); } //5. если по каким-то причинам альбом не создался if (!$album_id){ //сохраняем текст неудачи cmsCore::addSessionMessage('Ошибка создания альбома!', 'error'); } } }
public function getPhotoAlbums($user_id, $is_friends=false, $only_private=false) { $inUser = cmsUser::getInstance(); $is_my = $inUser->id == $user_id || $inUser->is_admin; $is_friends = (int)$is_friends; $filter = ''; if (!$is_my){ $filter = "AND ( a.allow_who='all' OR (a.allow_who='registered' AND ({$inUser->id}>0)) OR (a.allow_who='friends' AND ({$is_friends}=1)) )"; } $sql = "SELECT a.id as id, a.title as title, a.pubdate as pubdate, a.allow_who as allow_who, 'private' as type, p.imageurl as imageurl, COUNT(p.id) as photos_count FROM cms_user_albums a LEFT JOIN cms_user_photos p ON p.album_id = a.id WHERE a.user_id='{$user_id}' {$filter} GROUP BY a.id"; $result = $this->inDB->query($sql); if ($this->inDB->num_rows($result)) { while($album = $this->inDB->fetch_assoc($result)){ if (!$album['imageurl']){ $album['imageurl'] = "/images/users/photos/small/no_cover.gif";} else { $album['imageurl'] = "/images/users/photos/small/{$album['imageurl']}";} $album['pubdate'] = cmsCore::dateFormat($album['pubdate']); $albums[] = $album; } } $albums = cmsCore::callEvent('GET_USER_ALBUMS', $albums); return $albums; }
<h1 class="con_heading">создание альбома</h1> <form action="" method="post"> <div>название льбома:</div> <div> <input type="text" name="album_title" /> </div> <div> <input type="submit" name="send" value="создать" /> </div> </form>
в шаблоне components/com_users_albums.tpl в удобное для вас место ставим ссылку на создание альбома
{if $my_profile} <div class="float_bar"> <a href="/users/{$user.id}/nevphotoalbum.html" class="usr_photo_add">создать альбом</a> </div> {/if}
сайт
логин test
пароль test11
просьба после создания альбома удалите его (чтобы небыло куча пустых альбомов)
ну вот пока и всё )))
#18
13 мая 2012 в 01:09
И так продолжим)))
даём каждому пользователю альбом под названием "Личные фотографии"
делаем для новых зарегестрированых пользователей:
Создание альбома при регистрации. В файле /components/registration/frontend.php после строчек 238-239
вставьте вот этот кусок кода:
теперь переименуем первый созданый альбом у уже зарегестрированых пользователей в "Личные фотографии" и у пользователей которых нет альбома создадим его:
скачиваем прикреплёный файл закидываем его в корень сайта и вызываем его перейдя по ссылке
(ваш сайт).ru/create_new_albums.php
он сработает если пользователь администратор
ну пока и всё теперь у каждого пользователя есть альбом "Личные фотографии" и он первый созданный (в дальнейшем он нам пригодится).
Очередной раз выражаю благодарность за написание и обьяснение скрипта и кодов пользователя Марат
даём каждому пользователю альбом под названием "Личные фотографии"
делаем для новых зарегестрированых пользователей:
Создание альбома при регистрации. В файле /components/registration/frontend.php после строчек 238-239
$user_array['id'] = $new_user_id; cmsCore::callEvent('USER_REGISTER', $user_array);
//создаем личный фотоальбом пользователя $album['user_id'] = $new_user_id; $album['title'] = 'Личные фотографии'; $inCore->loadModel('users'); $model = new cms_model_users(); $model->addPhotoAlbum($album);
скачиваем прикреплёный файл закидываем его в корень сайта и вызываем его перейдя по ссылке
(ваш сайт).ru/create_new_albums.php
он сработает если пользователь администратор
ну пока и всё теперь у каждого пользователя есть альбом "Личные фотографии" и он первый созданный (в дальнейшем он нам пригодится).
Очередной раз выражаю благодарность за написание и обьяснение скрипта и кодов пользователя Марат
Прикрепленный файл
Сегодня в 14:36
#19
13 мая 2012 в 01:21
Просьба модераторов сайта переименовать тему форума (так как я ненашёл где это сделать) в "Изменения личных фотоальбомов пользователя" так как дальнейшее изменение будет касаться не только создания альбомов но и редактирование и вывод альбомов и фотографий.
всем доброго времени суток!!!
продолжаем тему :
сделаем страницу которая будет открыватся при нажатии в профиле или юзер меню пункт фотографии
(сейчас в движке открывается страница фотоальбомов)
и так открываем файл components/users/router.php
и туда вставляем кодоткрываем файд components/users/model.php и вставляем код
далее открываем components/users/frontend.php
и вставляем коддалее открываем папку templates/(ваш шаблон)/components/ и создаём файл com_users_photo.tpl с содержимым
продолжаем тему :
сделаем страницу которая будет открыватся при нажатии в профиле или юзер меню пункт фотографии
(сейчас в движке открывается страница фотоальбомов)
и так открываем файл components/users/router.php
и туда вставляем код
'_uri' => '/^users\/([0-9]+)\/photo.html$/i', 'do' => 'viewphot', 1 => 'id', 'page' => '1' );
public function getAlbumPhot($user_id, $album_type, $album_id, $is_friends=false) { $inUser = cmsUser::getInstance(); $is_my = $inUser->id == $user_id; $is_friends = (int)$is_friends; $filter = ''; if (!$is_my){ $filter = "AND ( allow_who='all' OR (allow_who='registered' AND ({$inUser->id}>0)) OR (allow_who='friends' AND ({$is_friends}=1)) )"; } //Получаем личные фотографии $private_sql = "SELECT p.id, p.pubdate, p.imageurl as file, p.hits, p.title FROM `cms_user_photos` p LEFT JOIN `cms_user_albums` a ON a.id = p.album_id WHERE p.user_id = '{$user_id}' AND a.title = 'Личные фотографии' ORDER BY id DESC"; $private_res = $this->inDB->query($private_sql); if ($this->inDB->num_rows($private_res)) { while($photo = $this->inDB->fetch_assoc($private_res)){ $photo['file'] = '/images/users/photos/small/'.$photo['file']; $photo['url'] = '/users/'.$user_id.'/photo'.$photo['id'].'.html'; $photo['fpubdate'] = cmsCore::dateFormat($photo['pubdate']); $photos[] = $photo; } } return $photos; } public function getPhotoAlb($user_id, $is_friends=false, $only_private=false) { $inUser = cmsUser::getInstance(); $is_my = $inUser->id == $user_id || $inUser->is_admin; $is_friends = (int)$is_friends; $filter = ''; if (!$is_my){ $filter = "AND ( a.allow_who='all' OR (a.allow_who='registered' AND ({$inUser->id}>0)) OR (a.allow_who='friends' AND ({$is_friends}=1)) )"; } $sql = "SELECT a.id as id, a.title as title, a.pubdate as pubdate, a.allow_who as allow_who, 'private' as type, p.imageurl as imageurl, COUNT(p.id) as photos_count FROM cms_user_albums a LEFT JOIN cms_user_photos p ON p.album_id = a.id WHERE a.user_id='{$user_id}' {$filter} AND a.title != 'Личные фотографии' GROUP BY a.id"; $result = $this->inDB->query($sql); if ($this->inDB->num_rows($result)) { while($album = $this->inDB->fetch_assoc($result)){ if (!$album['imageurl']){ $album['imageurl'] = "/images/users/photos/small/no_cover.gif"; }else { $album['imageurl'] = "/images/users/photos/small/{$album['imageurl']}"; } $album['pubdate'] = cmsCore::dateFormat($album['pubdate']); $albums[] = $album; } }else{ $sql = "SELECT a.id as id, a.title as title, a.pubdate as pubdate, a.allow_who as allow_who, 'private' as type, p.imageurl as imageurl, COUNT(p.id) as photos_count FROM cms_user_albums a LEFT JOIN cms_user_photos p ON p.album_id = a.id WHERE a.user_id='{$user_id}' {$filter} GROUP BY a.id"; $result = $this->inDB->query($sql); if ($this->inDB->num_rows($result)) { while($album = $this->inDB->fetch_assoc($result)){ if (!$album['imageurl']){ $album['imageurl'] = "/images/users/photos/small/no_cover.gif";} else { $album['imageurl'] = "/images/users/photos/small/{$album['imageurl']}";} $album['pubdate'] = cmsCore::dateFormat($album['pubdate']); $albums[] = $album; } } } $albums = cmsCore::callEvent('GET_USER_ALBUMS', $albums); return $albums; }
и вставляем код
//============================================================================// //=== вывод фотоальбомов и фотографий из личного альбома фотографии===========// //============================================================================// if ($do=='viewphot'){ if (!$cfg['sw_photo']) { cmsCore::error404(); } $usr = $model->getUserShort($id); if (!$usr){ cmsCore::error404(); } //Мой профиль или нет $my_profile = ($inUser->id == $id); //Определяем, друзья мы или нет $we_friends = ($inUser->id && !$my_profile) ? (int)usrIsFriends($usr['id'], $inUser->id) : 0; if (!$we_friends) { $we_friends = 0; } $albums = $model->getPhotoAlb($id, $we_friends); $photos = $model->getAlbumPhot($usr['id'], $album_type, $album_id, $we_friends); $inPage->setTitle($_LANG['PHOTOALBUMS']); $inPage->addPathway($usr['nickname'], cmsUser::getProfileURL($usr['login'])); $inPage->addPathway($_LANG['PHOTOALBUMS']); //Отдаем в шаблон $smarty = $inCore->initSmarty('components', 'com_users_photo.tpl'); $smarty->assign('albums', $albums); $smarty->assign('my_profile', $my_profile); $smarty->assign('user', $usr); $smarty->assign('photos', $photos); $smarty->assign('user_id', $id); $smarty->display('com_users_photo.tpl'); }
{if $my_profile} <div class="usr_albums_name"
забыл написать в профиле и в меню юзер замените ссылки <a href="/users/{$usr.id}/photoalbum.html"> на <a href="/users/{$usr.id}/photo.html">
- Предыдущая
- 1
- 2
- Показаны 16-21 из 21