zorom
Осваиваюсь на форуме
 
Репутация: +5/-0
Offline
Пол: 
Сообщений: 55
|
 |
« : 01.08.2009, 15:29:57 » |
|
Нашол такой глюк. Или мои кривые руки )). Короче создал несколько категорий. Все работает, норм. Обратил внимание что в одной категории описание ввел с ошибками грамм. Выбираю в админке эту категории, редактирую поле "Описание" -нажимаю кнопку "Сохранить". А оно мне не редактирует, а создает еще одну категорию точно с таким названием, другой номер ID естественно.  . Шо бы это могло значить?
|
|
|
|
|
Записан
|
|
|
|
beliyadm
Moderator
   
Репутация: +1479/-61
Offline
Пол: 
Сообщений: 7767
Севастополь==Россия
|
 |
« Ответ #1 : 01.08.2009, 15:30:59 » |
|
ага, встречал такой глюк на 1.8.1, в кишки на предмет исправления не залезал
|
|
|
|
|
Записан
|
|
|
|
Kincher
Новичок
Репутация: +0/-0
Offline
Пол: 
Сообщений: 8
|
 |
« Ответ #2 : 03.08.2009, 12:29:47 » |
|
Ага, и у меня такая пролбема... Решения пока нет?
|
|
|
|
|
Записан
|
|
|
|
TyT
Осваиваюсь на форуме
 
Репутация: +8/-0
Offline
Сообщений: 90
|
 |
« Ответ #3 : 05.08.2009, 17:28:36 » |
|
Аналогичная проблема 
|
|
|
|
|
Записан
|
|
|
|
zorom
Осваиваюсь на форуме
 
Репутация: +5/-0
Offline
Пол: 
Сообщений: 55
|
 |
« Ответ #4 : 05.08.2009, 22:50:30 » |
|
выход нашол пока только такой. (Думаю он наверное пока единственный.). Заходи в phpMyAdmin, находим в нашей базе таблицу jos_datsogallery_catg. Открываем ее, удаляем лишнюю категорию, в той категории правим описание на то что нам нужно. Вот и все - все красиво. И без жертв. Кста если кто знаком с SQL, можна столько интересного сделать. Например перед запуском сайта, я не нашол в админке как сбросить количество просмотров картинок. А с помощью одного запроса мона сразу всем сбросить на ноль., и не только просмотр, все что угодно. Только делать акуратно.))). Может кому интересно будет, незнаю.
|
|
|
|
|
Записан
|
|
|
|
TyT
Осваиваюсь на форуме
 
Репутация: +8/-0
Offline
Сообщений: 90
|
 |
« Ответ #5 : 05.08.2009, 23:24:13 » |
|
Ну я так пока и правлю, через PhpMyAdmin, и ID меняю меняю у категорий... да это не только к компоненту применимо, так и новости создавать можно и админка в таком случае не нужна, но метод не совсем корректен и ошибки связанной с обновлением категории не объясняет...
|
|
|
|
|
Записан
|
|
|
|
Wertos
Осваиваюсь на форуме
 
Репутация: +3/-0
Offline
Пол: 
Сообщений: 71
|
 |
« Ответ #6 : 08.08.2009, 22:30:35 » |
|
Наверно вместо INSERT нада гдето вставить UPDATE  только хоть убейте немогу найти где...
|
|
|
|
|
Записан
|
|
|
|
beliyadm
Moderator
   
Репутация: +1479/-61
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); }и удаляем После этого сохранение редактируемой категории и создание новой проходит корректно. Единственно но - таким образом мы убрали и проверку на привязанность категории к самой себе - потому при создании\редактировании категории не указывайте ее саму в списке "Корневая категория:", иначе сервер повесится в почти бесконечной рекурсии 
|
|
|
|
|
Записан
|
|
|
|
Wertos
Осваиваюсь на форуме
 
Репутация: +3/-0
Offline
Пол: 
Сообщений: 71
|
 |
« Ответ #8 : 08.08.2009, 23:20:20 » |
|
beliyadm, аналогично упёрся в эту функцию... Вот причину ошибки найти немогу. т.е. при редиректе _GET передаётся повторно или что вообще ??
|
|
|
|
|
Записан
|
|
|
|
beliyadm
Moderator
   
Репутация: +1479/-61
Offline
Пол: 
Сообщений: 7767
Севастополь==Россия
|
 |
« Ответ #9 : 08.08.2009, 23:24:08 » |
|
Wertos - ну так попробуй просто удалить указанные строки с проверкой, я погонял локально на 1.8.1 - редактируется корректно, создается корректно, главное случайно само себя родителем не указать и все будет хорошо. Глубже лезть пока лень, хватает такого решения
Во первых в этой функции совершенно неправильная проверка, в строке if ($row->cid = 0) переменной $row->cid присваивается значение 0, а не проверяется на равенство, ну а дальше тоже есть ньюанс, но это уже тонкости, предложенный мной вариант должен работать
|
|
|
|
|
Записан
|
|
|
|
Wertos
Осваиваюсь на форуме
 
Репутация: +3/-0
Offline
Пол: 
Сообщений: 71
|
 |
« Ответ #10 : 08.08.2009, 23:28:03 » |
|
beliyadm, да я проверил ) работает... также проверил как быстро хостер блочит сайт  достаточно быстро... поэтому какбы для меня это не выхо  Рою дальше...
|
|
|
|
|
Записан
|
|
|
|
beliyadm
Moderator
   
Репутация: +1479/-61
Offline
Пол: 
Сообщений: 7767
Севастополь==Россия
|
 |
« Ответ #11 : 08.08.2009, 23:29:51 » |
|
достаточно быстро... поэтому какбы для меня это не выхо  в смысле? Если при редактировании категории не указывать ее же в качестве родителя - никаких проблем нет, соответственно и нагрузка на хостера не выше стандартной при использовании данного компонента
|
|
|
|
|
Записан
|
|
|
|
Wertos
Осваиваюсь на форуме
 
Репутация: +3/-0
Offline
Пол: 
Сообщений: 71
|
 |
« Ответ #12 : 08.08.2009, 23:34:46 » |
|
beliyadm, дык я специально указал....
|
|
|
|
|
Записан
|
|
|
|
beliyadm
Moderator
   
Репутация: +1479/-61
Offline
Пол: 
Сообщений: 7767
Севастополь==Россия
|
 |
« Ответ #13 : 08.08.2009, 23:35:57 » |
|
beliyadm, дык я специально указал....
что указал? я так понимаю у тебя была проблема с созданием новой категории при редактировании существующей, так мы это исправили - какая еще проблема есть?
|
|
|
|
|
Записан
|
|
|
|
Wertos
Осваиваюсь на форуме
 
Репутация: +3/-0
Offline
Пол: 
Сообщений: 71
|
 |
« Ответ #14 : 08.08.2009, 23:50:23 » |
|
beliyadm, да ты непонял просто... я специально попробовал присвоить саму себе  PS снеси посты чтоб не путать пользователей...
|
|
|
|
|
Записан
|
|
|
|
beliyadm
Moderator
   
Репутация: +1479/-61
Offline
Пол: 
Сообщений: 7767
Севастополь==Россия
|
 |
« Ответ #15 : 08.08.2009, 23:52:48 » |
|
beliyadm, да ты непонял просто... я специально попробовал присвоить саму себе  ну дык я про это предупреждал в своем решении, что сервер повесится, не надо так делать и все будет хорошо. А вообще бы надо в список категорий родительских добавить условие, чтобы текущая категория в нем не отображалась - и вообще будет хорошо
|
|
|
|
|
Записан
|
|
|
|
|
Lex
|
 |
« Ответ #16 : 08.08.2009, 23:59:12 » |
|
С галереей не знаком, поэтому могу не в тему, но что-то мне подсказывает, что вот это if ($row->cid = 0) и создает лишнюю категорию, попробуйте if ($row->cid == 0) . Должно помочь.
|
|
|
|
|
Записан
|
|
|
|
beliyadm
Moderator
   
Репутация: +1479/-61
Offline
Пол: 
Сообщений: 7767
Севастополь==Россия
|
 |
« Ответ #17 : 09.08.2009, 00:02:12 » |
|
Lex - тогда прикол в том, что если мы создаем новую категорию, ей в процессе где то присваивается значение 0 и соответственно компонент ругается на то что нельзя себя же делать родителем. Я первое на что обратил внимание - на эту неправильную проверку, потому остановился пока на полном удалении условия
|
|
|
|
|
Записан
|
|
|
|
Wertos
Осваиваюсь на форуме
 
Репутация: +3/-0
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
Пол: 
Сообщений: 7767
Севастополь==Россия
|
 |
« Ответ #19 : 09.08.2009, 00:34:55 » |
|
в принципе это и имел в виду, попробуй так пропатчить ShowDropDownCategoryList и отпишись по результатам (но мне кажется по старым версиям что эта функция использовалась не только в этом месте, потому могут всплыть проблемы в других местах)
|
|
|
|
|
Записан
|
|
|
|
Wertos
Осваиваюсь на форуме
 
Репутация: +3/-0
Offline
Пол: 
Сообщений: 71
|
 |
« Ответ #20 : 09.08.2009, 01:14:21 » |
|
Как я понял это и есть список выпадающий... $options[]=JHTML :: _('select.option' ,$item->id,$item->treename); Я незнаю как присвоить знвчение disabled в options... ну незнаю я Joomla 
|
|
|
|
|
Записан
|
|
|
|
|
Lex
|
 |
« Ответ #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
Пол: 
Сообщений: 71
|
 |
« Ответ #22 : 09.08.2009, 01:41:44 » |
|
'id', 'title' это откуда брать ?
|
|
|
|
|
Записан
|
|
|
|
|
Lex
|
 |
« Ответ #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
Пол: 
Сообщений: 71
|
 |
« Ответ #24 : 09.08.2009, 01:59:47 » |
|
Осталось вытянуть как-то id редактируемой категории в функции ShowDropDownCategoryList
|
|
|
|
|
Записан
|
|
|
|
beliyadm
Moderator
   
Репутация: +1479/-61
Offline
Пол: 
Сообщений: 7767
Севастополь==Россия
|
 |
« Ответ #25 : 09.08.2009, 02:00:51 » |
|
Осталось вытянуть как-то id редактируемой категории в функции ShowDropDownCategoryList
$row->cid - если 0 (или пусто) - значит категория только создается
|
|
|
|
|
Записан
|
|
|
|
Wertos
Осваиваюсь на форуме
 
Репутация: +3/-0
Offline
Пол: 
Сообщений: 71
|
 |
« Ответ #26 : 09.08.2009, 02:02:23 » |
|
неповеришь.... оно всегда пусто, даже если редактировать...
|
|
|
|
|
Записан
|
|
|
|
beliyadm
Moderator
   
Репутация: +1479/-61
Offline
Пол: 
Сообщений: 7767
Севастополь==Россия
|
 |
« Ответ #27 : 09.08.2009, 02:03:31 » |
|
в всяком случае в функцию saveCatg именно оно и передается (сделай банальный alert на js) вместо редиректа - увидишь
|
|
|
|
|
Записан
|
|
|
|
Wertos
Осваиваюсь на форуме
 
Репутация: +3/-0
Offline
Пол: 
Сообщений: 71
|
 |
« Ответ #28 : 09.08.2009, 02:04:30 » |
|
сделал... пусто...
|
|
|
|
|
Записан
|
|
|
|
beliyadm
Moderator
   
Репутация: +1479/-61
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
|
|
|
|
|
Записан
|
|
|
|
|