Пользовательские модули / компоненты не могут сохранить HTML

#joomla #joomla1.6

#joomla #joomla1.6

Вопрос:

У меня проблема с моими пользовательскими компонентами и модулями. В форме XML я создал это поле

 <field name="bio" type="editor" height="250" label="Biography"
            description="Intro To The Artist"  buttons="true" />
  

Теперь данные корректно загружаются из базы данных.
Я вывожу редактор Wyswig и правильный html с этим кодом в представлении $this->form->getInput('bio');
Однако, когда я сохраняю форму. все сохраняется, как ожидалось, за исключением того, что весь html удален.

Я не знаю, где это обычно происходит, даже когда я добавляю XML в модуль (обычно модуль берет на себя весь рендеринг). Все отображается нормально, но HTML get удален.

Joomla wiki кажется неполной, и я не могу найти полезную информацию о том, как решить эту проблему.

Спасибо

Ответ №1:

Решение было найдено в группах Google. Мне нужно было добавить filter="safehtml" в поле

 <field name="bio" type="editor" height="250" label="Biography" filter="safehtml" 
            description="Intro To The Artist"  buttons="true" />
  

Я полагаю, что это специфично для Joomla 1.6, также может быть другой параметр filter="raw"

Комментарии:

1. Вы правы, есть фильтр «raw» для таких вещей, как javascript.. в этой статье представлены все параметры фильтрации: joomla-answers.blogspot.com/2012/07 /…

Ответ №2:

Вы должны добавить параметр JREQUEST_ALLOWRAW, чтобы сохранить HTML.

http://docs.joomla.org/How_to_use_the_editor_in_a_component

Комментарии:

1. Спасибо, я изучу это в ближайшие 24 часа и посмотрю, работает ли это

2. Извините, это не сработало с модулями и компонентами Joomla 1.6, над которыми я работал, хотя спасибо

3. Упс. Я не заметил тег 1.6. Это специально для 1.5.

4. Я также пометил его joomla general, поскольку не знал, был ли он 1.6 или general

5. Вам нужно добавить ‘raw’ для таких вещей, как javascript, для простого html предпочтительнее ‘safehtml’ joomla-answers.blogspot.com/2012/07 /…

Ответ №3:

Чтобы получить данные публикации HTML-формы, вам нужно получить эти данные следующим образом

 $data = JRequest::getVar( 'editorName', 'defaultValue', 'post', 'string', JREQUEST_ALLOWRAW );
  

И необходимо добавить javascript для просмотра (файл tmpl)

 function submitbutton(action) {
  var form = document.adminForm;
  switch(action)
  {
  case 'save':
  case 'apply':   
   <?php
                 $editor =amp; JFactory::getEditor();
                 echo $editor->save( 'editorName' );
         ?>
  default:
   submitform( action );
  }
 } 
  

Комментарии:

1. Извините, это не сработало с модулями и компонентами Joomla 1.6, над которыми я работал, хотя спасибо