кто подскажет,таблица cms_con_Videodiz_cats от какого компонента ?

#1 2 декабря 2015 в 12:47
кто подскажет, таблица cms_con_Videodiz_cats от какого компонента?
#2 2 декабря 2015 в 13:01
От типа контента с системным именем Videodiz
Ищите в админке, раздел типы контента
#3 2 декабря 2015 в 13:07


От типа контента с системным именем Videodiz
Ищите в админке, раздел типы контента

Evanescence
понял… возникла проблема

хочу удалить этот тип контента, т.к. там какие-то проблемы...
из БД удалил все таблицы, но в админке название осталось, удалить не могу сообщает

  1.  
  2. SELECT i.*, u.nickname as user_nickname, f.title as folder_title
  3. FROM cms_con_Videodiz i
  4. JOIN cms_users as u ON u.id = i.user_id
  5. LEFT JOIN cms_content_folders as f ON f.id = i.folder_id
  6. WHERE ((i.is_private = 0 OR i.user_id = '1' OR (i.is_private = 1 AND EXISTS (SELECT id FROM cms_users_friends WHERE user_id='1' AND friend_id=i.user_id AND is_mutual=1)))) AND (i.is_approved = '1') AND (i.is_pub = '1')
  7. ORDER BY i.date_pub desc
  8.  
как можно удалить, чтобы нигде больше не запрашивалось этот тип контента?
#4 2 декабря 2015 в 13:26
lezginka.ru, cms_content_types почистили от старого типа контента?
#5 2 декабря 2015 в 13:44


lezginka.ru, cms_content_types почистили от старого типа контента?

Val

старого контента вообще там нет. я импортирую БД старого сайта и при попытке открыть сайт выдает данное сообщение… и удалить не получается
еще раз пытаюсь запустить сайт и получаю сообщение:
  1.  
  2. SELECT COUNT(i.id) as count
  3. FROM cms_con_Videodiz_props i
  4.  
как я понял таблицы не хватает… а откуда мне ее взять???
#6 2 декабря 2015 в 13:49
  1. public function deleteContentType($id){
  2.  
  3. $ctype = $this->getContentType($id);
  4.  
  5. if ($ctype['is_fixed']) { return false; }
  6.  
  7. $items = $this->getContentItems($ctype['name']);
  8. if ($items){
  9. foreach($items as $item){
  10. $this->deleteContentItem($ctype['name'], $item['id']);
  11. }
  12. }
  13.  
  14. cmsCore::getModel('tags')->recountTagsFrequency();
  15.  
  16. $this->delete('content_types', $id);
  17. $this->delete('content_datasets', $id, 'ctype_id');
  18.  
  19. $table_name = $this->table_prefix . $ctype['name'];
  20.  
  21. $this->db->dropTable("{$table_name}");
  22. $this->db->dropTable("{$table_name}_fields");
  23. $this->db->dropTable("{$table_name}_cats");
  24. $this->db->dropTable("{$table_name}_cats_bind");
  25. $this->db->dropTable("{$table_name}_props");
  26. $this->db->dropTable("{$table_name}_props_bind");
  27. $this->db->dropTable("{$table_name}_props_values");
  28.  
  29. cmsCache::getInstance()->clean("content.types");
  30.  
  31. return true;
  32.  
  33. }
из функции (см. выше) следует чтобы вручную удалить тип контента, нужно:
1. Тщательно почистить присутствие всех записей удаляемого типа контента из многих компонентов системы (активность, комментарии, рейтинг, теги и др.) Подробнее см. здесь: ..\system\controllers\content\model.php 1424-ая строка function deleteContentItem($ctype_name, $id)
2. Почистить таблицу cms_content_types (cms_ — префикс может отличаться) от удаляемого типа контента
3. Удалить все наборы удаляемого типа контента в таблице cms_content_datasets
4. Удалить таблицы cms_имятипаконтента, cms_имятипаконтента_fields, cms_имятипаконтента_cats, cms_имятипаконтента_cats_bind, cms_имятипаконтента_props, cms_имятипаконтента_props_bind, cms_имятипаконтента_props_values
5. Зайти в Админ.панель -> Компоненты -> Теги и нажать "Пересчитать теги"

P.S. Проще конечно удалить тип контента через админ.панель, особенно если подумать сколько надо чистить другие компоненты от ссылок записей удаляемого типа контента.
#7 2 декабря 2015 в 13:54

старого контента вообще там нет. я импортирую БД старого сайта и при попытке открыть сайт выдает данное сообщение… и удалить не получается

lezginka.ru
В таблице cms_content_types перечислены все типы контента в системе (статьи, посты, новости и др.) в том числе должен быть и ваш Videodiz. Удалите строку с вашим типом контента.
#8 2 декабря 2015 в 13:54
lezginka.ru, в таблице cms_widgets_bind могут быть записи об этом типе контента.
#9 2 декабря 2015 в 14:02
Loadырь, тоже сначала подумал на виджеты, но как сказал lezginka.ru

старого контента вообще там нет

lezginka.ru
т.е., по идее, в виджетах не должно быть ссылок на записи этого типа контента.
Тем не менее проверить это будет не лишним)))
#10 2 декабря 2015 в 14:38
спасибо за подсказки.
я удалил из cms_content_types каталог Videodiz, но теперь другое сообщение выдает
  1.  
  2. SELECT i.*
  3. FROM cms_con__cats i
  4. ORDER BY i.ns_left
  5.  
#11 2 декабря 2015 в 14:43
удалил каталог Videodiz, теперь недоволен другим типом контента
  1.  
  2. SELECT i.*
  3. FROM cms_con_Katalog_cats i
  4. ORDER BY i.ns_left
  5.  
не пойму что та не устраивает систему… может что с большой буквы системное имя "cms_con_Katalog_cats"?
#12 2 декабря 2015 в 15:11
есть подозрение что проблема именно в том, что прописано с большой буквы системное имя "cms_con_Katalog_cats"...
внимание разработчиков — припишите где-то, чтобы юзер не мог указывать имя с большой буквы или автоматом переводилось бы в нижний регистр
#13 2 декабря 2015 в 15:40

внимание разработчиков — припишите где-то, чтобы юзер не мог указывать имя с большой буквы

lezginka.ru

/system/core/controller.php аналогичную функцию привести вот к такому виду
  1. public function validate_sysname($value){
  2. if (empty($value)) { return true; }
  3. if (!preg_match("/^([a-z0-9\_]*)$/", $value)){ return ERR_VALIDATE_SYSNAME; }
  4. return true;
  5. }
т.е. в регеспе убрали символ " i "

p.s. в релизе поправим тоже.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.