Хранение типа контента в отдельной таблице
- Борис
- Автор темы
- Не в сети
- Новый участник
- Сообщений: 6
- Спасибо получено: 0
Для этого предварительно создал в базе данных таблицу orders. Создаю через админку новый тип поля – Title1. Для него выбираю формат Standart, free, в parameters выбираю созданную мною таблицу orders, в поле хранения вписываю Title1, сохраняю.
В итоге поле создается таблице #_cck_store_item_orders, в ней создается поле Title1
Через админку создаю новый тип контента Order1, добавляю поле Title1 в Admin form, Site Form, Intro и Content. В Site Form добавляю “Button Save & View” для сохранения.
Создаю в пункте меню для сайта добавление данного контента. Через сайт добавляю контент Order1, выдает ошибку:
“JCckTable: :store failed
Duplicate entry '0' for key 'PRIMARY' SQL=INSERT INTO `aai03_cck_store_item_orders` (`Title1`) VALUES ('A')
Обнаружена ошибка.”
Могли бы подсказать, что делаю неправильно?
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Wedal
- Не в сети
- Администратор
- Сообщений: 2868
- Спасибо получено: 659
1) При создании типа контента нужно не выбирать для него основу(skeleton) в виде материалов Joomla, а указать, что у него будет собственная основа. Это позволит избежать при создании элементов данного типа контента их добавление в материалы Joomla.
2) Таблицу пока можно создать только вручную через PhpMyAdmin. Что вы не сделали - не добавили поле первичного ключа. Каждая таблица должна иметь поле с порядковыми номерами записей. Грубо говоря ID ваших Order'ов. При чем это поле должно быть помечено флагом "AUTO_INCREMENT". Это означает, что при добавлении новой записи в данную таблиц ID автоматически будет увеличиваться на 1. В Seblod это поле создавать не нужно.
Всё остальное вы сделали правильно. А ошибка возникла как раз из-за того, что в таблице не было поля ID.
Вообще, давно собираюсь написать по этой теме отдельную статью, но ее задерживал баг, который не позволял полноценно управлять такими "свободными" данными через админку Joomla( www.seblod.com/resources/tracker/7511 ). Возможно, он уже исправлен. На днях проверю.
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Борис
- Автор темы
- Не в сети
- Новый участник
- Сообщений: 6
- Спасибо получено: 0
в таблице _cck_store_item_orders уже было поле ID, но оно не auto_increment. После того, как сделал его auto_increment, действительно смог создавать материалы типа контента Order1. Спасибо.
Однако столкнулся с другими трудностями. На поле Title1 при создании типа поиска в Link указываю Form. Если на сайте открывает super admin, то при клике по ссылке Title1 он переходит в редактирование материала типа контента Order1. Если указать View, то значение поля Title1 НЕ ссылка. Что необходимо указать в Link при редактировании типа поиска, чтобы при клике на сайте по ссылке Title1 открывался материал для просмотра типа "Content"?
Также после создании материала типа контента Order1 на сайте выходит надпись, что материал успешно создать. Как сделать так, чтобы после создания материала открывался созданный материал для просмотра типа "Content"
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Wedal
- Не в сети
- Администратор
- Сообщений: 2868
- Спасибо получено: 659
Это точно так? Вообще, нужно указывать именно View. Если ссылка не появляется, то, возможно, это работает только тогда, когда объектом является материал Joomla. У вас объект собственный. Нажмите справа от View плюсик и попробуйте поэкспериментировать с настройками. Я так делать не пробовал, а потому не скажу точно, что именно там нужно поменять, но должно настраиваться.Если указать View, то значение поля Title1 НЕ ссылка.
В настройках кнопки submit есть опция "save & view".Как сделать так, чтобы после создания материала открывался созданный материал для просмотра типа "Content"
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Борис
- Автор темы
- Не в сети
- Новый участник
- Сообщений: 6
- Спасибо получено: 0
Различные настройки пробовал, ссылка не появляется. Может необходимо заполнить раздел "Construction(Generic)" ?Это точно так? Вообще, нужно указывать именно View. Если ссылка не появляется, то, возможно, это работает только тогда, когда объектом является материал Joomla. У вас объект собственный. Нажмите справа от View плюсик и попробуйте поэкспериментировать с настройками. Я так делать не пробовал, а потому не скажу точно, что именно там нужно поменять, но должно настраиваться.
Когда тип контента Article, при клике по "save & view" открывается просмотр для чтения созданный материалВ настройках кнопки submit есть опция "save & view".
Когда тип контента Order1, при клике по "save & view" пишет об успешности создания, сам созданный материал не показывается
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Борис
- Автор темы
- Не в сети
- Новый участник
- Сообщений: 6
- Спасибо получено: 0
Вообще я понял лучше в storage указывать standart - article, в названии колонки вписывать само имя колонки.
Тогда информация о колонках и колонки появятся не в таблицах Джумлы, а в колонках Себлода cck_core_fields и cck_store_item_content. В этом случае обе вышеназванные проблемы решатся. Только при создании в типе контента добавлять любое поле из article, например article id, делая его скрытым.
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.