Перейти к содержанию
CMSTOOLS.org - форум поддержки и развития CMS

[Фича] Перемещение фотографии


Рекомендуемые сообщения

1 заходим в templates\Default открыть там файл album_photo.tpl
ищем

<div class="albums_cover_photo" [owner]onMouseOver="Photo.Panel({id}, 'show')" onMouseOut="Photo.Panel({id}, 'hide')" id="a_photo_{id}"[/owner]><a href="/photo{uid}_{id}{aid}{section}" onClick="Photo.Show(this.href); return false"><div class="albums_new_cover" id="albums_new_cover_{id}"></div></a>[owner]<div class="albums_photo_panel" id="albums_photo_panel_{id}">

впереди вставить

<a href="/" class="albums_ic ic_posi" title="переместить фотографию" onClick="Albums.MovePhoto('{id}'); return false"></a>

2 заходим в templates\Default\js открыть там файл profile.js
ищем

SetCover: function(id, aid, photo){
                $('#box_loading').show();
                $.get('/index.php?go=albums&act=set_cover', {id: id}, function(){
                        $('#cover_'+aid).html('<img src="'+photo+'" alt="" />');
                        Box.Close('edit_cover_'+aid);
                        $('#box_loading').hide();
                });
        },
       
выше вставить


MovePhoto: function(aid){
                $('#box_loading').show();
                $.get('/index.php?go=albums&act=box_move_photo', {aid: aid}, function(data){
                        Box.Show('movephotos', 400, 'Перемещение фотографии', data, lang_msg_close);
                });
        },
        ChangeMove: function(aid){
                $('#value_album').val($('#change_move_box_album :selected').val());
        },
        MovingPhotos: function(id, aid){
                var from_aid = $('#value_album').val();
                $('#box_loading').show();
                $.get('/index.php?go=albums&act=move_photo', {user_id: id, id: aid, from_album: from_aid}, function(data){
                        Box.Close('movephotos');
                });
        },
       

3 заходим в system\modules открыть там файл albums.php
ищем

//################### Удаление фотографии из альбома ###################//

ниже вставить

//################### Перемещение фотографии в другой альбом ###################//
                case "move_photo":
                        NoAjaxQuery();
                        $id = intval($_GET['id']);
                        $user_id = $user_info['user_id'];
                        $from_album = intval($_GET['from_album']);
                       
                        $row = $db->super_query("SELECT user_id, album_id, photo_name, comm_num, position FROM `".PREFIX."_photos` WHERE id = '{$id}'");
                        $row_ = $db->super_query("SELECT user_id FROM `".PREFIX."_albums` WHERE aid = '{$from_album}'");
                       
                        //Если есть такая фотография и владельце действителен
                        if($row['user_id'] == $user_id and $row_['user_id'] == $user_id){
                       
                                //Директория фотографии
                                $del_dir = ROOT_DIR.'/uploads/users/'.$user_id.'/albums/'.$row['album_id'].'/';
                                $copy_dir = ROOT_DIR.'/uploads/users/'.$user_id.'/albums/'.$from_album.'/';
                               
                                // Перемещение фотографий
                                @copy($del_dir.$row['photo_name'],$copy_dir.$row['photo_name']);
                                @copy($del_dir.'c_'.$row['photo_name'],$copy_dir.'c_'.$row['photo_name']);
                               
                                //Удаление фотки с сервера
                                @unlink($del_dir.'c_'.$row['photo_name']);
                                @unlink($del_dir.$row['photo_name']);

                                $db->query("UPDATE `".PREFIX."_photos` SET album_id = '".$from_album."' WHERE id = '".$id."'");
                               
                                $check_photo_album = $db->super_query("SELECT id FROM `".PREFIX."_photos` WHERE album_id = '{$row['album_id']}'");
                                $album_row = $db->super_query("SELECT cover FROM `".PREFIX."_albums` WHERE aid = '{$row['album_id']}'");
                               
                                //Если удаляемая фотография является обложкой то обновляем обложку на последнюю фотографию, если фотки еще есть из альбома
                                if($album_row['cover'] == $row['photo_name'] AND $check_photo_album){
                                        $row_last_photo = $db->super_query("SELECT photo_name FROM `".PREFIX."_photos` WHERE user_id = '{$user_id}' AND album_id = '{$row['album_id']}' ORDER by `id` DESC");
                                        $set_cover = ", cover = '{$row_last_photo['photo_name']}'";
                                }
                               
                                //Если в альбоме уже нет фоток, то удаляем обложку
                                if(!$check_photo_album)
                                        $set_cover = ", cover = ''";
                                       
                                $db->query("UPDATE `".PREFIX."_photos_comments` SET album_id = '".$from_album."' WHERE pid = '".$id."'");
                               
                                //Обновляем количество комментов у альбома
                                $db->query("UPDATE `".PREFIX."_albums` SET photo_num = photo_num-1, comm_num = comm_num-{$row['comm_num']} {$set_cover} WHERE aid = '{$row['album_id']}'");
                                $db->query("UPDATE `".PREFIX."_albums` SET photo_num = photo_num+1, comm_num = comm_num+{$row['comm_num']} WHERE aid = '{$from_album}'");
                               
                                //Чистим кеш
                                mozg_mass_clear_cache_file("user_{$user_info['user_id']}/albums|user_{$user_info['user_id']}/albums_all|user_{$user_info['user_id']}/albums_friends|user_{$row['user_id']}/position_photos_album_{$row['album_id']}");
                                mozg_mass_clear_cache_file("user_{$user_info['user_id']}/albums|user_{$user_info['user_id']}/albums_all|user_{$user_info['user_id']}/albums_friends|user_{$row['user_id']}/position_photos_album_{$from_album}");
                                mozg_clear_cache_file('user_'.$user_id.'/photos');
                       
                        }
                       
                        die();
                break;
               
               
ищем

//################### Установка новой обложки для альбома ###################//

ниже вставить

//################### Окно для перемещения фотки ###################//
                case "box_move_photo":
                        NoAjaxQuery();
                        $id = intval($_GET['aid']);
                        $row_ = $db->super_query("SELECT aid,name FROM `".PREFIX."_albums` WHERE user_id = '{$user_info['user_id']}'",1);
                        $row_d = $db->super_query("SELECT aid FROM `".PREFIX."_albums` WHERE user_id = '{$user_info['user_id']}' LIMIT 1");
                        echo '<div class="load_photo_pad"><div class="err_red" style="display:none;font-weight:normal;"></div><div class="load_photo_quote">Для перемещения фотографии Вам нужно выбрать конечный альбом из списка ниже.</div><div class="mgclr"></div><div class="texta">Группа приложения:</div><div id="group_sel_w"><select id="change_move_box_album" onchange="Albums.ChangeMove();" class="inpst">';
                        foreach($row_ as $group) {
                                $var.= '<option value="'.$group['aid'].'">'.$group['name'].'</option>';
                        }
                        echo $var.'</select></div></div><input type="hidden" id="value_album" value="'.$row_d['aid'].'" />';
                        echo '<div class="button_div fl_l" style="margin-bottom:15px;line-height:15px;margin-left: 20px;"><button onClick="Albums.MovingPhotos('.$user_info['user_id'].','.$id.'); return false" style="width:174px">Переместить фотографию</button></div>';
                        die();
                break;
               
ДЛЯ АЛЬБОМА В ГРУППАХ


1 заходим в заходим в templates\Default\js открыть там файл profile.js
ищем

SetCover: function(id, aid, photo){
                var pid = '&pid='+$('#pid').val();
                $('#box_loading').show();
                $.get('/index.php?go=groups_albums&act=set_cover'+pid, {id: id}, function(){
                        $('#cover_'+aid).attr('src', photo);
                        Box.Close('edit_cover_'+aid);
                        $('#box_loading').hide();
                });
        },
       
выще вставить

MovePhoto: function(aid){
                var pid = '&pid='+$('#pid').val();
                $('#box_loading').show();
                $.get('/index.php?go=groups_albums&act=box_move_photo'+pid, {aid: aid}, function(data){
                        Box.Show('movephotos', 400, 'Перемещение фотографии', data, lang_msg_close);
                });
        },
        ChangeMove: function(aid){
                $('#value_album').val($('#change_move_box_album :selected').val());
        },
        MovingPhotos: function(id, aid){
                var pid = '&pid='+$('#pid').val();
                var from_aid = $('#value_album').val();
                $('#box_loading').show();
                $.get('/index.php?go=groups_albums&act=move_photo'+pid, {user_id: id, id: aid, from_album: from_aid}, function(data){
                        Box.Close('movephotos');
                });
        },
       
2 заходим в system\modules открыть там файл albums_groups.php
ищем

//################### Установка новой обложки для альбома ###################//

ниже вставить

//################### Окно для перемещения фотки ###################//
                case "box_move_photo":
                        NoAjaxQuery();
                        $id = intval($_GET['aid']);
                        $row_ = $db->super_query("SELECT aid,name FROM `".PREFIX."_communities_albums` WHERE pid = '{$pid}'",1);
                        $row_d = $db->super_query("SELECT aid FROM `".PREFIX."_communities_albums` WHERE pid = '{$pid}' LIMIT 1");
                        echo '<div class="load_photo_pad"><div class="err_red" style="display:none;font-weight:normal;"></div><div class="load_photo_quote">Для перемещения фотографии Вам нужно выбрать конечный альбом из списка ниже.</div><div class="mgclr"></div><div class="texta">Группа приложения:</div><div id="group_sel_w"><select id="change_move_box_album" onchange="Albums.ChangeMove();" class="inpst">';
                        foreach($row_ as $group) {
                                $var.= '<option value="'.$group['aid'].'">'.$group['name'].'</option>';
                        }
                        echo $var.'</select></div></div><input type="hidden" id="value_album" value="'.$row_d['aid'].'" />';
                        echo '<div class="button_div fl_l" style="margin-bottom:15px;line-height:15px;margin-left: 20px;"><button onClick="Albums.MovingPhotos('.$pid.','.$id.'); return false" style="width:174px">Переместить фотографию</button></div>';
                        die();
                break;
               
ищем

//################### Удаление фотографии из альбома ###################//

ниже вставить

//################### Перемещение фотографии в другой альбом ###################//
                case "move_photo":
                        NoAjaxQuery();
                        $id = intval($_GET['id']);
                       
                        $from_album = intval($_GET['from_album']);
                       
                        $row = $db->super_query("SELECT pid, album_id, photo_name, comm_num, position FROM `".PREFIX."_communities_photos` WHERE id = '{$id}'");
                        $row_ = $db->super_query("SELECT pid FROM `".PREFIX."_communities_albums` WHERE aid = '{$from_album}'");
                        $row_check = $db->super_query("SELECT admin FROM `".PREFIX."_communities` WHERE id = '{$pid}'");
                       
                        //Если есть такая фотография и владельце действителен
                        if(stripos($row_check['admin'], "id{$user_id}|") !== false){
                       
                                //Директория фотографии
                                $del_dir = ROOT_DIR.'/uploads/groups/'.$pid.'/albums/'.$row['album_id'].'/';
                                $copy_dir = ROOT_DIR.'/uploads/groups/'.$pid.'/albums/'.$from_album.'/';
                               
                                // Перемещение фотографий
                                @copy($del_dir.$row['photo_name'],$copy_dir.$row['photo_name']);
                                @copy($del_dir.'c_'.$row['photo_name'],$copy_dir.'c_'.$row['photo_name']);
                               
                                //Удаление фотки с сервера
                                @unlink($del_dir.'c_'.$row['photo_name']);
                                @unlink($del_dir.$row['photo_name']);

                                $db->query("UPDATE `".PREFIX."_communities_photos` SET album_id = '".$from_album."' WHERE id = '".$id."'");
                               
                                $check_photo_album = $db->super_query("SELECT id FROM `".PREFIX."_communities_photos` WHERE album_id = '{$row['album_id']}'");
                                $album_row = $db->super_query("SELECT cover FROM `".PREFIX."_communities_albums` WHERE aid = '{$row['album_id']}'");
                               
                                //Если удаляемая фотография является обложкой то обновляем обложку на последнюю фотографию, если фотки еще есть из альбома
                                if($album_row['cover'] == $row['photo_name'] AND $check_photo_album){
                                        $row_last_photo = $db->super_query("SELECT photo_name FROM `".PREFIX."_communities_photos` WHERE pid = '{$pid}' AND album_id = '{$row['album_id']}' ORDER by `id` DESC");
                                        $set_cover = ", cover = '{$row_last_photo['photo_name']}'";
                                }
                               
                                //Если в альбоме уже нет фоток, то удаляем обложку
                                if(!$check_photo_album)
                                        $set_cover = ", cover = ''";
                                       
                                $db->query("UPDATE `".PREFIX."_communities_photos_comments` SET album_id = '".$from_album."' WHERE pid = '".$id."'");
                               
                                //Обновляем количество комментов у альбома
                                $db->query("UPDATE `".PREFIX."_communities_albums` SET photo_num = photo_num-1, comm_num = comm_num-{$row['comm_num']} {$set_cover} WHERE aid = '{$row['album_id']}'");
                                $db->query("UPDATE `".PREFIX."_communities_albums` SET photo_num = photo_num+1, comm_num = comm_num+{$row['comm_num']} WHERE aid = '{$from_album}'");
                                       
                                mozg_mass_clear_cache_file("user_{$user_info['user_id']}/position_photos_album_groups_{$row['album_id']}");
                                mozg_mass_clear_cache_file("user_{$user_info['user_id']}/position_photos_album_groups_{$from_album}");
                                       
                        }
                       
                        die();
                break;
               
3 заходим в templates\Default\albums_groups открыть там файл album_photo.tpl
ищем

<a href="/" class="albums_ic ic_del" title="удалить" onClick="PhotoGroups.MsgDelete({id}, null); return false"></a>

выще вставить

<a href="/" class="albums_ic ic_posi" title="переместить фотографию" onClick="Albums.MovePhoto('{id}'); return false"></a>

вырезана из сборки флайбей

011334nxvoqsoqixrtv05l.png

011334xu3hifl0q0mpdh0k.png

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...