LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
23.05.2013, 03:32:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 2.5 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1] 2  Все   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Создание лишней категории DatsoGallery 1.8.1  (Прочитано 5212 раз)
0 Пользователей и 1 Гость смотрят эту тему.
zorom
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 55



« : 01.08.2009, 15:29:57 »

Нашол такой глюк. Или мои кривые руки )). Короче создал несколько категорий. Все работает, норм. Обратил внимание что в одной категории описание ввел с ошибками грамм. Выбираю в админке эту категории, редактирую поле "Описание" -нажимаю кнопку "Сохранить". А оно мне не редактирует, а создает еще одну категорию точно с таким названием, другой номер ID естественно.  Shocked. Шо бы это могло значить?
Записан
beliyadm
Moderator
*****

Репутация: +1479/-61
Offline Offline

Пол: Мужской
Сообщений: 7767


Севастополь==Россия


« Ответ #1 : 01.08.2009, 15:30:59 »

ага, встречал такой глюк на 1.8.1, в кишки на предмет исправления не залезал
Записан
Kincher
Новичок
*

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 8



« Ответ #2 : 03.08.2009, 12:29:47 »

Ага, и у меня такая пролбема... Решения пока нет?
Записан
TyT
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Сообщений: 90


« Ответ #3 : 05.08.2009, 17:28:36 »

Аналогичная проблема Sad
Записан
zorom
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 55



« Ответ #4 : 05.08.2009, 22:50:30 »

выход нашол пока только такой. (Думаю он наверное пока единственный.). Заходи в phpMyAdmin, находим в нашей базе таблицу jos_datsogallery_catg. Открываем ее, удаляем лишнюю категорию, в той категории правим описание на то что нам нужно. Вот и все - все красиво. И без жертв. Кста если кто знаком с SQL, можна столько интересного сделать. Например перед запуском сайта, я не нашол в админке как сбросить количество просмотров картинок. А с помощью одного запроса мона сразу всем сбросить на ноль., и не только просмотр, все что угодно. Только делать акуратно.))). Может кому интересно будет, незнаю.
Записан
TyT
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Сообщений: 90


« Ответ #5 : 05.08.2009, 23:24:13 »

Ну я так пока и правлю, через PhpMyAdmin, и ID меняю меняю у категорий... да это не только к компоненту применимо, так и новости создавать можно и админка в таком случае не нужна, но метод не совсем корректен и ошибки связанной с обновлением категории не объясняет...
Записан
Wertos
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 71


« Ответ #6 : 08.08.2009, 22:30:35 »

Наверно вместо INSERT нада гдето вставить UPDATE Azn только хоть убейте немогу найти где...
Записан
beliyadm
Moderator
*****

Репутация: +1479/-61
Offline Offline

Пол: Мужской
Сообщений: 7767


Севастополь==Россия


« Ответ #7 : 08.08.2009, 22:53:50 »

вот исправление.
Открываем файл administrator\components\com_datsogallery\admin.datsogallery.php
находим строки для функции function saveCatg($option,$task) примерно 1791
Код
    if ($row->cid = 0) {
     $mainframe->redirect("index.php?option=".$option."&task=showcatg",_DG_SUBCAT_SELECT_ERROR);
   }
и удаляем
После этого сохранение редактируемой категории и создание новой проходит корректно. Единственно но - таким образом мы убрали и проверку на привязанность категории к самой себе - потому при создании\редактировании категории не указывайте ее саму в списке "Корневая категория:", иначе сервер повесится в почти бесконечной рекурсии Azn
Записан
Wertos
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 71


« Ответ #8 : 08.08.2009, 23:20:20 »

beliyadm, аналогично упёрся в эту функцию... Вот причину ошибки найти немогу. т.е. при редиректе _GET передаётся повторно или что вообще ??
Записан
beliyadm
Moderator
*****

Репутация: +1479/-61
Offline Offline

Пол: Мужской
Сообщений: 7767


Севастополь==Россия


« Ответ #9 : 08.08.2009, 23:24:08 »

Wertos - ну так попробуй просто удалить указанные строки с проверкой, я погонял локально на 1.8.1 - редактируется корректно, создается корректно, главное случайно само себя родителем не указать и все будет хорошо. Глубже лезть пока лень, хватает такого решения

Во первых в этой функции совершенно неправильная проверка, в строке if ($row->cid = 0) переменной $row->cid присваивается значение 0, а не проверяется на равенство, ну а дальше тоже есть ньюанс, но это уже тонкости, предложенный мной вариант должен работать
Записан
Wertos
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 71


« Ответ #10 : 08.08.2009, 23:28:03 »

beliyadm, да я проверил ) работает... также проверил как быстро хостер блочит сайт Azn достаточно быстро... поэтому какбы для меня это не выхо Azn
Рою дальше...
Записан
beliyadm
Moderator
*****

Репутация: +1479/-61
Offline Offline

Пол: Мужской
Сообщений: 7767


Севастополь==Россия


« Ответ #11 : 08.08.2009, 23:29:51 »

достаточно быстро... поэтому какбы для меня это не выхо Azn
в смысле? Если при редактировании категории не указывать ее же в качестве родителя - никаких проблем нет, соответственно и нагрузка на хостера не выше стандартной при использовании данного компонента
Записан
Wertos
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 71


« Ответ #12 : 08.08.2009, 23:34:46 »

beliyadm, дык я специально указал....
Записан
beliyadm
Moderator
*****

Репутация: +1479/-61
Offline Offline

Пол: Мужской
Сообщений: 7767


Севастополь==Россия


« Ответ #13 : 08.08.2009, 23:35:57 »

beliyadm, дык я специально указал....
что указал? я так понимаю у тебя была проблема с созданием новой категории при редактировании существующей, так мы это исправили - какая еще проблема есть?
Записан
Wertos
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 71


« Ответ #14 : 08.08.2009, 23:50:23 »

beliyadm, да ты непонял просто... я специально попробовал присвоить саму себе Azn
PS снеси посты чтоб не путать пользователей...
Записан
beliyadm
Moderator
*****

Репутация: +1479/-61
Offline Offline

Пол: Мужской
Сообщений: 7767


Севастополь==Россия


« Ответ #15 : 08.08.2009, 23:52:48 »

beliyadm, да ты непонял просто... я специально попробовал присвоить саму себе Azn
ну дык я про это предупреждал в своем решении, что сервер повесится, не надо так делать и все будет хорошо. А вообще бы надо в список категорий родительских добавить условие, чтобы текущая категория в нем не отображалась - и вообще будет хорошо
Записан
Lex
Тестеры
*****

Репутация: +272/-1
Offline Offline

Пол: Мужской
Сообщений: 1799


« Ответ #16 : 08.08.2009, 23:59:12 »

С галереей не знаком, поэтому могу не в тему, но что-то мне подсказывает, что вот это
 if ($row->cid = 0) и создает лишнюю категорию, попробуйте  if ($row->cid == 0) .
Должно помочь.
Записан
beliyadm
Moderator
*****

Репутация: +1479/-61
Offline Offline

Пол: Мужской
Сообщений: 7767


Севастополь==Россия


« Ответ #17 : 09.08.2009, 00:02:12 »

Lex - тогда прикол в том, что если мы создаем новую категорию, ей в процессе где то присваивается значение 0 и соответственно компонент ругается на то что нельзя себя же делать родителем. Я первое на что обратил внимание - на эту неправильную проверку, потому остановился пока на полном удалении условия
Записан
Wertos
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 71


« Ответ #18 : 09.08.2009, 00:30:54 »

beliyadm, а если сделать чтоб эта категория неотображалось в списке категорий... т.е. делаем например так...
Код:
    if ($row->cid = 0) {
      $mainframe->redirect("index.php?option=".$option."&task=showcatg",_DG_SUBCAT_SELECT_ERROR);
    }

меняем на
Код:
    if ($row->cid == 0) {
      $mainframe->redirect("index.php?option=".$option."&task=showcatg",_DG_SUBCAT_SELECT_ERROR);
    }
и чтото типа этого в функции ShowDropDownCategoryList в запросе
Код:
$query="select *, cid AS id from #__datsogallery_catg and cid != '.$cat.' ORDER BY ordering DESC";
Записан
beliyadm
Moderator
*****

Репутация: +1479/-61
Offline Offline

Пол: Мужской
Сообщений: 7767


Севастополь==Россия


« Ответ #19 : 09.08.2009, 00:34:55 »

в принципе это и имел в виду, попробуй так пропатчить ShowDropDownCategoryList и отпишись по результатам (но мне кажется по старым версиям что эта функция использовалась не только в этом месте, потому могут всплыть проблемы в других местах)
Записан
Wertos
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 71


« Ответ #20 : 09.08.2009, 01:14:21 »

Как я понял это и есть список выпадающий...
Код:
$options[]=JHTML :: _('select.option' ,$item->id,$item->treename);
Я незнаю как присвоить знвчение disabled в options... ну незнаю я Joomla Sad
Записан
Lex
Тестеры
*****

Репутация: +272/-1
Offline Offline

Пол: Мужской
Сообщений: 1799


« Ответ #21 : 09.08.2009, 01:32:25 »

Ну да. Только трех параметров не хватает. Вообще-то целиком он выглядит так
$treelist[] = JHTML::_('select.option',$treeitem->id, $treeitem->title, 'id', 'title',$disable);
Шестой параметр $disable определяет будет ли пункт списка доступен для выбора в выпадающем списке true - недоступен, false - доступен, по умолчанию - false.
Записан
Wertos
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 71


« Ответ #22 : 09.08.2009, 01:41:44 »

'id', 'title'  это откуда брать ?
Записан
Lex
Тестеры
*****

Репутация: +272/-1
Offline Offline

Пол: Мужской
Сообщений: 1799


« Ответ #23 : 09.08.2009, 01:45:29 »

Поставь имена соответствующих полей в БД. А вообще-то это значит что будет создан stdClass такого вида:
        $obj = new stdClass;                        
        $obj->id    = $treeitem->id;                      
        $obj->title    = $treeitem->title;                                
        $obj->disable        = $disable;
Записан
Wertos
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 71


« Ответ #24 : 09.08.2009, 01:59:47 »

Осталось вытянуть как-то id редактируемой категории в функции ShowDropDownCategoryList
Записан
beliyadm
Moderator
*****

Репутация: +1479/-61
Offline Offline

Пол: Мужской
Сообщений: 7767


Севастополь==Россия


« Ответ #25 : 09.08.2009, 02:00:51 »

Осталось вытянуть как-то id редактируемой категории в функции ShowDropDownCategoryList
$row->cid - если 0 (или пусто) - значит категория только создается
Записан
Wertos
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 71


« Ответ #26 : 09.08.2009, 02:02:23 »

неповеришь.... оно всегда пусто, даже если редактировать...
Записан
beliyadm
Moderator
*****

Репутация: +1479/-61
Offline Offline

Пол: Мужской
Сообщений: 7767


Севастополь==Россия


« Ответ #27 : 09.08.2009, 02:03:31 »

в всяком случае в функцию saveCatg именно оно и передается (сделай банальный alert на js) вместо редиректа - увидишь
Записан
Wertos
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 71


« Ответ #28 : 09.08.2009, 02:04:30 »

сделал... пусто...
Записан
beliyadm
Moderator
*****

Репутация: +1479/-61
Offline Offline

Пол: Мужской
Сообщений: 7767


Севастополь==Россия


« Ответ #29 : 09.08.2009, 02:10:56 »

в function saveCatg закомментировал строку редиректа
Код
$mainframe->redirect("index.php?option=".$option."&task=showcatg");
и добавил
Код
echo "<script> alert('" . $row->cid . "'); </script>\n";
после
Код
$row=new DatsoCategories($db);
При сохранении редактируемой категории получаю ее ID, если новая - то 0
Записан
Страниц: [1] 2  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.18 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet