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, так как эти файлы могут быть перезаписаны.