Joomla 3 - вставить произвольное поле в редактор статей

Я вставил пользовательское поле на странице редактирования статьи в администрации - я изменил два файла: В /administrator/components/com_content/models/forms/article.xml я добавил субтитры поля

<field name="subtitle" type="text" label="Subtitle"
    description="Add a subtitle here" class="inputbox" size="30"
    required="true" />

и в администратор / компоненты /com_content/views/article/tmpl/edit.php я добавил

<?php echo $this->form->getLabel('subtitle'); ?>
<?php echo $this->form->getInput('subtitle'); ?

Теперь я создал свое настраиваемое поле. Но я должен хранить значения в базе данных при вводе и сохранении чего-либо, как это работает? Кто-нибудь может мне помочь?

Спасибо

2 ответа

Я знаю, что этот вопрос возник не недавно, но, поскольку другие могут его найти, я думаю, что важно кое-что прояснить.

Расширяя форму статьи xml так, как вы описываете, вы взламываете основные файлы. Это плохая практика, и ее следует избегать. Как объяснил Bakual, ​​эти изменения, похоже, будут перезаписаны обновлением Joomla.

Не обновлять Joomla, когда выпускаются новые обновления безопасности, еще хуже - не ходите туда.

То, что вы должны были сделать, это расширить форму статьи xml таким образом, чтобы она не мешала основным файлам. В этой статье приведен пример того, как это сделать: http://docs.joomla.org/Adding_custom_fields_to_the_article_component

Если вы добавите поле в таблицу #__content, оно, вероятно, будет сохранено автоматически. Однако я бы не стал этого делать. Вы никогда не знаете, что делает обновление, и вы не хотите терять данные.

Если вы посмотрите на /administrator/components/com_content/controllers/article.php, вы найдете функцию с именем postSaveHook, Здесь вы можете обрабатывать данные дальше. Там вы можете хранить свои субтитры в собственной таблице.

В любом случае, вам нужно будет применить эти изменения после каждого обновления Joomla, так как эти файлы могут быть перезаписаны.

Другие вопросы по тегам