Грубая ошибка в админке

Грубая ошибка в админке

#1 13 августа 2011 в 10:47
При создании в файле админке модуля, текстового поля для настройки модуля и вводе русского текста происходит разрушение структуры html страницы. и значение поля не отображается


Как можно исправить?
#2 13 августа 2011 в 12:06

Как можно исправить?

maxisoft
вот вообще ничего не понятно что ты спросил.
возможно htmlspecialchars тебя спасет, если я правильно тебя понял
#3 13 августа 2011 в 12:49
суть следующая приведу пример кода для админки модуля.
  1.  
  2. <?xml version="1.0" encoding="windows-1251"?>
  3. <backend>
  4. <module>
  5. <id>mod_weather</id>
  6. <title>Прогноз погоды</title>
  7. </module>
  8. <params>
  9. <param type="string" name="location" title="Город" default="Odessa,UA" />
  10. </params>
  11. </backend>
  12.  
Так вот суть ошибки что если вводить в данное поле в админке английский текст тогда все супер хорошо, а если ввести в данное поле Одесса, то получим разрушение формы.
#4 13 августа 2011 в 13:02
Максим, я полагаю, что Вы сохраняете "город" в конфиг модуля. Ну, обычными методами ядра. А там происходит преобразование в YAML и обратно.
Прошелся сейчас по таблицам модулей и компонентов. В колонку "конфиг" сохраняются только латиница. Почему то. А там где нужно использовать кириллицу создается отдельная таблица и туда уже вносятся данные без saveComponentConfig. Посмотрите компонент "награды". Также и для модулей.
Может причина в этом.
#5 13 августа 2011 в 13:37
В файле core/classes/formgen.class.php см. функцию getHTML ;)

  1.  
  2. foreach($this->params as $key=>$param){
  3. $this->params[$key]['title'] = iconv('utf-8', 'cp1251', $param['title']);
  4. $this->params[$key]['html'] = iconv('utf-8', 'cp1251', $param['html']);
  5. }
  6.  
Попробуй без перекодировки...

  1.  
  2. foreach($this->params as $key=>$param){
  3. $this->params[$key]['title'] = iconv('utf-8', 'cp1251', $param['title']);
  4. $this->params[$key]['html'] = $param['html'];
  5. }
#6 13 августа 2011 в 14:24
Спасибо помогли!
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.