Помогите с фотогалереей! Отказала...

Помогите с фотогалереей!

#1 11 июня 2012 в 09:33
система 1.8, вообще частично работает, в видео галерей от пользователей или групп.
Но сама svadebsk.ru/photos уже несколько месяцев не работает...
В админке не показывает никакие альбомы. В общем еле живая сейчас на сайте...

И второе, есть ли резон попытаться на 1.9 переехать?
#2 11 июня 2012 в 10:15
Ivanoff, изменения внесли значит серьёзные… просто так она не бунтует.
#3 11 июня 2012 в 10:23
Да на то время особо изменений не делал. Плюс пробовал возвратит на стандартную тему, бесполезно. Лазил в БД, пытался что либо найти.….. никак
Как восстановить?
#4 11 июня 2012 в 12:45
Без обзора вашей файловой системы и бд вам никто не сможет помочь… Думайте логически. у вас ошибка 404, страница не найдена. Значит страница, отвечающая за галерею отсутствует, правильно? Правильно. Думаю это не бд. БД всегда спешит завопить о своих ошибках.) Значит проблема в корневой папке. Потом, давайте подумаем после ЧЕГО она повела себя так. Просто вспомните тот день когда хотя бы заметили это… Работают ли настройки компонента в админке? Кстати, тема должна быть не причём (хотя, только если .tpl галереи посмотреть, может его нет или там пусто). Попробуйте сказать новую версию движка и из него перекинуть себе папку компонентс, так же поступите и с вашей темой — скачайте оригинал и оттуда перезалейте попку компонентс. Если вы ТПЛки не меняли, то сайт не измениться вообще… Что ещё… подумаю ещё)
#5 11 июня 2012 в 13:05
Альбомы у вас работают, кстати, не галерейные, а пользовательские… По этому смею предположить, что вся ваша галерея лежит и даже не работает частично, вообще не дышит… Пользовательские альбомы — это вообще отдельная тема… У вас есть ссылки на альбомы самой галереи?
Всё-таки мне кажется это тпл… Потому что сам сайт работает, а галерея нет, значит шаблон не повреждён...
Насчёт резона миграции. Снимите резервные копии БД и файловой системы и попробуйте мигрировать. Возможно всё разрешиться, вам останется только адаптировать шаблон.
#6 11 июня 2012 в 13:59
Кстати, дайте ссылку, на толковую инструкцию переноса базы данных. Импорт / экспорт. Ибо сколько раз пробовал, не выходило нормально… Нужна чёткая номральная инструкция, подскажите пожалуйста!
буду на 1.9 переезжать
#7 11 июня 2012 в 14:26
у меня подозрение что не работает функция getSubAlbums в фаиле components/photos/model.php
В любом случаи скиньте код этого файла посмотреть.
#8 11 июня 2012 в 14:46
  1. <?php
  2. /******************************************************************************/
  3. // //
  4. // InstantCMS v1.8 //
  5. // http://instantcms.ru/ //
  6. // //
  7. // written by InstantCMS Team, 2007-2010 //
  8. // produced by InstantSoft, (www.instantsoft.ru) //
  9. // //
  10. // LICENSED BY GNU/GPL v2 //
  11. // //
  12. /******************************************************************************/
  13.  
  14. if(!defined('VALID_CMS')) { die('ACCESS DENIED'); }
  15.  
  16. class cms_model_photos{
  17.  
  18. function __construct(){
  19. $this->inDB = cmsDatabase::getInstance();
  20. }
  21.  
  22. /* ==================================================================================================== */
  23. /* ==================================================================================================== */
  24.  
  25. public function install(){
  26.  
  27. return true;
  28.  
  29. }
  30.  
  31. /* ==================================================================================================== */
  32. /* ==================================================================================================== */
  33.  
  34. public function getCommentTarget($target, $target_id) {
  35.  
  36. $result = array();
  37.  
  38. switch($target){
  39.  
  40. case 'palbum': $album = $this->inDB->get_fields('cms_photo_albums', "id='{$target_id}'", 'title');
  41. if (!$album) { return false; }
  42. $result['link'] = '/photos/'.$target_id;
  43. $result['title'] = $album['title'];
  44. break;
  45.  
  46. case 'photo': $photo = $this->inDB->get_fields('cms_photo_files', "id='{$target_id}'", 'title');
  47. if (!$photo) { return false; }
  48. $result['link'] = '/photos/photo'.$target_id.'.html';
  49. $result['title'] = $photo['title'];
  50. break;
  51.  
  52. }
  53.  
  54. return ($result ? $result : false);
  55.  
  56. }
  57.  
  58. /* ==================================================================================================== */
  59. /* ==================================================================================================== */
  60.  
  61. public function deletePhoto($id, $file=''){
  62.  
  63. $inCore = cmsCore::getInstance();
  64. $inCore->loadLib('tags');
  65.  
  66. cmsCore::callEvent('DELETE_PHOTO', $id);
  67.  
  68. if (!$file){
  69. $file = $this->inDB->get_field('cms_photo_files', "id='{$id}'", 'file');
  70. }
  71. if (!$file){ return false; }
  72.  
  73. $this->deletePhotoFile($file, PATH.'/images/photos/');
  74.  
  75. $inCore->deleteComments('photo', $id);
  76. $inCore->deleteRatings('photo', $id);
  77.  
  78. cmsActions::removeObjectLog('add_photo', $id);
  79.  
  80. $sql = "DELETE FROM cms_photo_files WHERE id = '$id'";
  81. $this->inDB->query($sql) ;
  82.  
  83. cmsClearTags('photo', $id);
  84.  
  85. }
  86.  
  87. /* ==================================================================================================== */
  88. /* ==================================================================================================== */
  89.  
  90. public function deletePhotos($id_list){
  91.  
  92. cmsCore::callEvent('DELETE_PHOTOS', $id_list);
  93.  
  94. foreach($id_list as $key=>$id){
  95. $this->deletePhoto($id);
  96. }
  97.  
  98. return true;
  99.  
  100. }
  101.  
  102. /* ==================================================================================================== */
  103. /* ==================================================================================================== */
  104.  
  105. public function updatePhoto($id, $photo){
  106. $inCore = cmsCore::getInstance();
  107. $inUser = cmsUser::getInstance();
  108.  
  109. $photo = cmsCore::callEvent('UPDATE_PHOTO', $photo);
  110.  
  111. $sql = "UPDATE cms_photo_files
  112. SET album_id = '{$photo['album_id']}',
  113. title='{$photo['title']}',
  114. file='{$photo['filename']}',
  115. description='{$photo['description']}',
  116. published='{$photo['published']}',
  117. showdate='{$photo['showdate']}'
  118. WHERE id = '$id'
  119. LIMIT 1";
  120. $this->inDB->query($sql);
  121.  
  122. cmsInsertTags($photo['tags'], 'photo', $id);
  123. }
  124.  
  125. /* ==================================================================================================== */
  126. /* ==================================================================================================== */
  127.  
  128. public function addPhoto($photo, $differ = '', $user_id = false){
  129.  
  130. $inCore = cmsCore::getInstance();
  131. $inUser = cmsUser::getInstance();
  132.  
  133. $photo = cmsCore::callEvent('ADD_PHOTO', $photo);
  134.  
  135. $user_id = $user_id ? $user_id : $inUser->id;
  136.  
  137. if (!$user_id) { return false; }
  138.  
  139. $sql = "INSERT INTO cms_photo_files (album_id, title, description, pubdate, file, published, showdate, comments, user_id, owner)
  140. VALUES ('{$photo['album_id']}', '{$photo['title']}', '{$photo['description']}', NOW(),
  141. '{$photo['filename']}', '{$photo['published']}', '{$photo['showdate']}', 1, '{$user_id}', '{$differ}')";
  142.  
  143. $this->inDB->query($sql);
  144.  
  145. $photo_id = $this->inDB->get_last_id('cms_photo_files');
  146.  
  147. cmsInsertTags($photo['tags'], 'photo', $photo_id);
  148.  
  149. cmsUser::checkAwards($user_id);
  150.  
  151. $album_title = $this->inDB->get_field('cms_photo_albums', "id='{$photo['album_id']}'", 'title');
  152.  
  153. if ($photo['published']) {
  154. $description = $photo['is_hidden'] ? '' : '<a href="/photos/photo'.$photo_id.'.html" class="act_photo"><img border="0" src="/images/photos/small/'.$photo['filename'].'" /></a>';
  155.  
  156. cmsActions::log('add_photo', array(
  157. 'object' => $photo['title'],
  158. 'object_url' => '/photos/photo'.$photo_id.'.html',
  159. 'object_id' => $photo_id,
  160. 'target' => $album_title,
  161. 'target_url' => '/photos/'.$photo['album_id'],
  162. 'description' => $description
  163. ));
  164. }
  165.  
  166. return $photo_id;
  167. }
  168.  
  169. /* ==================================================================================================== */
  170. /* ==================================================================================================== */
  171.  
  172. public function randPhoto($album_id, $is_sub=false){
  173.  
  174. $catsql = 'AND f.album_id = '.$album_id;
  175.  
  176. if ($is_sub && $album_id != '0') {
  177. $rootcat = $this->inDB->get_fields('cms_photo_albums', 'id='.$album_id, 'NSLeft, NSRight, NSDiffer'
#9 11 июня 2012 в 14:54
КСТАТИ! В корнет нет каталога photos… вообще! Он должен быть? каково содержимое?
#10 11 июня 2012 в 15:10
Его и не должно быть. Элемент подключается через компоненты. Попробуйте вставить мой фаил туда components/photos/model.php

С вашим файлом и у меня не работает отображение. Код пока глянуть не могу диплом пишу. Попробуйте пока так.
  1.  
  2.  
  3.  
  4. <?php
  5. /******************************************************************************/
  6. // //
  7. // InstantCMS v1.9 //
  8. // http://instantcms.ru/ //
  9. // //
  10. // written by InstantCMS Team, 2007-2011 //
  11. // produced by InstantSoft, (www.instantsoft.ru) //
  12. // //
  13. // LICENSED BY GNU/GPL v2 //
  14. // //
  15. /******************************************************************************/
  16.  
  17. if(!defined('VALID_CMS')) { die('ACCESS DENIED'); }
  18.  
  19. class cms_model_photos{
  20.  
  21. function __construct(){
  22. $this->inDB = cmsDatabase::getInstance();
  23. }
  24.  
  25. /* ==================================================================================================== */
  26. /* ==================================================================================================== */
  27.  
  28. public function install(){
  29.  
  30. return true;
  31.  
  32. }
  33.  
  34. /* ==================================================================================================== */
  35. /* ==================================================================================================== */
  36.  
  37. public function getCommentTarget($target, $target_id) {
  38.  
  39. $result = array();
  40.  
  41. switch($target){
  42.  
  43. case 'palbum': $album = $this->inDB->get_fields('cms_photo_albums', "id='{$target_id}'", 'title');
  44. if (!$album) { return false; }
  45. $result['link'] = '/photos/'.$target_id;
  46. $result['title'] = $album['title'];
  47. break;
  48.  
  49. case 'photo': $photo = $this->inDB->get_fields('cms_photo_files', "id='{$target_id}'", 'title');
  50. if (!$photo) { return false; }
  51. $result['link'] = '/photos/photo'.$target_id.'.html';
  52. $result['title'] = $photo['title'];
  53. break;
  54.  
  55. }
  56.  
  57. return ($result ? $result : false);
  58.  
  59. }
  60. /* ==================================================================================================== */
  61. /* ==================================================================================================== */
  62. //
  63. // этот метод вызывается компонентом comments при создании нового комментария
  64. //
  65. // метод должен вернуть 0 или 1
  66. //
  67. public function getVisibility($target, $target_id) {
  68.  
  69. $is_hidden = 0;
  70.  
  71. switch($target){
  72.  
  73. case 'photo': $photo = $this->getPhoto($target_id);
  74. $album = $this->getAlbum($photo['album_id']);
  75. if(strstr($album['NSDiffer'],'club') && $album['published']) {
  76. $clubtype = $this->inDB->get_field('cms_clubs', "id='{$album['user_id']}'", 'clubtype');
  77. if($clubtype == 'private') { $is_hidden = 1; }
  78. }
  79. break;
  80.  
  81. }
  82.  
  83. return $is_hidden;
  84.  
  85. }
  86. /* ==================================================================================================== */
  87. /* ==================================================================================================== */
  88.  
  89. public function deletePhoto($id, $file=''){
  90.  
  91. $inCore = cmsCore::getInstance();
  92. $inCore->loadLib('tags');
  93.  
  94. cmsCore::callEvent('DELETE_PHOTO', $id);
  95.  
  96. if (!$file){
  97. $file = $this->inDB->get_field('cms_photo_files', "id='{$id}'", 'file');
  98. }
  99. if (!$file){ return false; }
  100.  
  101. $this->deletePhotoFile($file, PATH.'/images/photos/');
  102.  
  103. $inCore->deleteComments('photo', $id);
  104. $inCore->deleteRatings('photo', $id);
  105.  
  106. cmsActions::removeObjectLog('add_photo', $id);
  107.  
  108. $sql = "DELETE FROM cms_photo_files WHERE id = '$id'";
  109. $this->inDB->query($sql) ;
  110.  
  111. cmsClearTags('photo', $id);
  112.  
  113. }
  114.  
  115. /* ==================================================================================================== */
  116. /* ==================================================================================================== */
  117.  
  118. public function deletePhotos($id_list){
  119.  
  120. cmsCore::callEvent('DELETE_PHOTOS', $id_list);
  121.  
  122. foreach($id_list as $key=>$id){
  123. $this->deletePhoto($id);
  124. }
  125.  
  126. return true;
  127.  
  128. }
  129.  
  130. /* ==================================================================================================== */
  131. /* ==================================================================================================== */
  132.  
  133. public function updatePhoto($id, $photo){
  134. $inCore = cmsCore::getInstance();
  135. $inUser = cmsUser::getInstance();
  136.  
  137. $photo = cmsCore::callEvent('UPDATE_PHOTO', $photo);
  138.  
  139. $sql = "UPDATE cms_photo_files
  140. SET album_id = '{$photo['album_id']}',
  141. title='{$photo['title']}',
  142. file='{$photo['filename']}',
  143. description='{$photo['description']}',
  144. published='{$photo['published']}',
  145. showdate='{$photo['showdate']}'
  146. WHERE id = '$id'
  147. LIMIT 1";
  148. $this->inDB->query($sql);
  149.  
  150. cmsInsertTags($photo['tags'], 'photo', $id);
  151. }
  152.  
  153. /* ==================================================================================================== */
  154. /* ==================================================================================================== */
  155.  
  156. public function addPhoto($photo, $differ = '', $user_id = false){
  157.  
  158. $inCore = cmsCore::getInstance();
  159. $inUser = cmsUser::getInstance();
  160.  
  161. $photo = cmsCore::callEvent('ADD_PHOTO', $photo);
  162.  
  163. $user_id = $user_id ? $user_id : $inUser->id;
  164.  
  165. if (!$user_id) { return false; }
  166.  
  167. $sql = "INSERT INTO cms_photo_files (album_id, title, description, pubdate, file, published, showdate, comments, user_id, owner)
  168. VALUES ('{$photo['album_id']}', '{$photo['title']}', '{$photo['description']}', NOW(),
  169. '{$photo['filename']}', '{$photo['published']}', '{$photo['showdate']}', 1, '{$user_id}', '{$differ}')";
  170.  
  171. $this->inDB->query($sql);
  172.  
  173. $photo_id = $this->inDB->get_last_id('cms_photo_files');
  174.  
  175. cmsInsertTags($photo['tags'], 'photo', $photo_id);
  176.  
  177. cmsUser::checkAwards($user_id);
  178.  
  179. $album_title = $this->inDB->get_field('cms_photo_albums', "id='{$photo['album_id']}'", 'title');
  180.  
  181. if ($photo['published']) {
  182. $description = $photo['is_hidden'] ? '' : '<a href="/photos/photo'.$photo_id.'.html" c
#11 11 июня 2012 в 15:19
И в любом случаи отпишитесь пожалуйста.
#12 11 июня 2012 в 15:32
NastiK, Там как бы версия у меня 1.8 !? этот код точно стоит попробовать? =)))
#13 11 июня 2012 в 15:54
Сори глаза слипаются не заметила что у вас версия 1,8.
В принципе вы можете попробовать, нечего страшного случиться не должно. Если не подойдёт всегда можно назад код поменять. Но можете подождать, но честно не знаю когда я смогу посмотреть код. Только после написания диплома. Если не срочно можете подождать.
#14 11 июня 2012 в 16:01
Хотя чего ждать. У вас не закрыта в коде функция. Поставьте в самый конец }

Вот если не поможет тогда или ждать или пробовать тот код.
#15 11 июня 2012 в 16:15
NastiK
Закрыта функция, недокопировал случайно ))
Пробовал код изначально чистой рабочей системы из дистрибутива вставить, ноль реакции…
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.