Правим ID типа контента при установке компонента с установщиком

+14
2.02K
Привет всем я вернулся)

Немного для разработчиков.

Решил опубликовать небольшой момент при настройке установщика дополнений.
В ряде уже существующих компонентов от пользователей не правильно настроен установщик. Не буду говорить каких именно. Кто этого не делал сам знает.

Думаю это актуально для собственных компонентов на стандартном типе контента.

При создании нового типа контента в установщике создается новый тип контента с ctype_id номером следующим за последним, тогда как например далее создаются написи, например в таблице con_ХХХ_fields в поле ctype_id должен бы стоять id вновь созданного типа контента.
Для этого файл создания таблиц БД вроде как можно не трогать, но в процессе установки нужно поменять ctype_id на новый.

Для этого поработаем с файлом install.php и на примере нижеприведенного содержания этого файла разработчики думаю знают что делать.

  1. <?php
  2.  
  3. function install_package(){
  4.  
  5. $content_model = cmsCore::getModel('content');
  6. $ctype = $content_model->getContentTypeByName('ХХХХ');
  7.  
  8. $content_model->
  9. filterGt('ctype_id', 0)->
  10. updateFiltered('con_ХХХХ_fields', array('ctype_id' => $ctype['id']));
  11.  
  12. return true;
  13.  
  14. }
где соответственно ХХХХ — ваш тип контента.

Собственно этот код выполнятся после установки таблиц БД из файла.

Всем удачного сайтостроения!
0
My-InstantCMS.Ru My-InstantCMS.Ru 8 лет назад #
Иногда при установке компонента (если это Типа контента) требуется создать тип контента и сразу же добавить поля con_ХХХХ_fields, но для этого нужен ID...
Я как то пытался с начало создать тип контента в install.sql а потом добавить поля в install.php (как у вас в коде), но не помогло, наверно PHP файл выполниться раньше SQL :(
0
Kreator Kreator 8 лет назад #
Тут в install.php поля не добавляются, а изменяются данные ctype_id. Добавляются с произвольными данными также в install.sql

Еще от автора

Поле - Дата публикации записи
Дата публикации записи в шаблоне выводится в конце записи.
Статистика просмотров контента и Фильтр исходящей почты (SiteKreator v.22.2.2)
Улучшение компонента продолжается. Медленно но верно компонент обрастает еще большими возможностями.
Kmailer v.3.3.1 - Компонент для организации рассылки по email пользователям сайта и подписчикам
Всем доброго времени суток. Представляю вашему вниманию компонент KMailer 3.3.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.