Jump to content
CMSTOOLS.ru - форум поддержки и развития CMS

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


Recommended Posts

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

  • Upvote 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...