Таблицы а визуальном редакторе

Почему слетают? Как лечить?

#1 12 мая 2013 в 22:37
Решил сделать на сайте страничку "Все сервисы" (по аналогии с Ядексом Все сервисы).
В каталоге статей сделал страничку, при помощи редактора решил вставить таблицу — 3 колонки, 20 строк — ну хотел на будушее чтоб когда нужно в пустую ячейку вписать необходимую информацию. Но не тут-то было! Сделал таблицу, в пару ячеек забил ссылки и описание, сохранил, решил попробовать отредактировать и вуаля — таблицы НЕТУ!!! Думал проблема в редакторе, отключил родной (FCKEditor) подключил другой (CKEditor) — песня та же.

У кого была такая проблема? Как решать её? Нужно чтоб допустим сделал я в редакторе таблицу — сохранил, а когда нужно открыл и чтоб таблица была на месте.
#3 12 мая 2013 в 23:13
Если решите проблему то обязательно отпишитесь. Я решил наверное самым тупым способом. Копирую статью в ворд, добавляю строки. Копирую через буфер обмена. И через редактирование статьи вставляю из буфера
#4 12 мая 2013 в 23:43
Александр Корн, Проблему решил! спасибо Volgomarket, за наводку.
Вообщем внес вот эти изменения trac.instantcms.ru/changeset/1277 (выделено зелёным) в свой файл cms.php, и всё заработало, проверил в двух редакторах (хотя как оказалось они тут не причём). Осталось одна мелоч — если ширину таблицы указывать в процентах, а не в пикселях, то при сохранении ширина слетает, но это мелочи.

вот если надо код из моего cms.php просто заменить и проверить. (про бэкап не забываем!!!)
  1.  
  2. public static function htmlCleanUp($text){
  3.  
  4. if(!isset(self::$jevix)){
  5. self::loadClass('jevix');
  6. self::$jevix = new Jevix();
  7. // Устанавливаем разрешённые теги. (Все не разрешенные теги считаются запрещенными.)
  8. self::$jevix->cfgAllowTags(array('p','a','img','i','b','u','s','video','em','strong','nobr','li','ol','ul','div','abbr','sup','sub','acronym','h1','h2','h3','h4','h5','h6','br','hr','pre','code','object','param','embed','blockquote','iframe','span','input','table','caption','th','tr','td'));
  9. // Устанавливаем коротие теги. (не имеющие закрывающего тега)
  10. self::$jevix->cfgSetTagShort(array('br','img', 'hr', 'input'));
  11. // Устанавливаем преформатированные теги. (в них все будет заменятся на HTML сущности)
  12. self::$jevix->cfgSetTagPreformatted(array('code','video'));
  13. // Устанавливаем теги, которые необходимо вырезать из текста вместе с контентом.
  14. self::$jevix->cfgSetTagCutWithContent(array('script', 'style', 'meta'));
  15. // Устанавливаем разрешённые параметры тегов. Также можно устанавливать допустимые значения этих параметров.
  16. self::$jevix->cfgAllowTagParams('input', array('type'=>'#text', 'style', 'onclick' => '#text', 'value' => '#text'));
  17. self::$jevix->cfgAllowTagParams('a', array('title', 'href', 'style', 'rel' => '#text', 'name' => '#text'));
  18. self::$jevix->cfgAllowTagParams('img', array('src', 'style', 'alt' => '#text', 'title', 'align' => array('right', 'left', 'center'), 'width' => '#int', 'height' => '#int', 'hspace' => '#int', 'vspace' => '#int'));
  19. self::$jevix->cfgAllowTagParams('div', array('class' => '#text', 'style','align' => array('right', 'left', 'center')));
  20. self::$jevix->cfgAllowTagParams('object', array('width' => '#int', 'height' => '#int', 'data' => '#text'));
  21. self::$jevix->cfgAllowTagParams('param', array('name' => '#text', 'value' => '#text'));
  22. self::$jevix->cfgAllowTagParams('embed', array('src' => '#image','type' => '#text','allowscriptaccess' => '#text','allowFullScreen' => '#text','width' => '#int','height' => '#int','flashvars'=> '#text','wmode'=> '#text'));
  23. self::$jevix->cfgAllowTagParams('acronym', array('title'));
  24. self::$jevix->cfgAllowTagParams('abbr', array('title'));
  25. self::$jevix->cfgAllowTagParams('span', array('style'));
  26. self::$jevix->cfgAllowTagParams('li', array('style'));
  27. self::$jevix->cfgAllowTagParams('p', array('style'));
  28. self::$jevix->cfgAllowTagParams('table', array('width'=>'#int', 'class' => '#text', 'cellpadding'=>'#int', 'cellspacing'=>'#int', 'align', 'border'=>'#int'));
  29. self::$jevix->cfgAllowTagParams('caption', array('class' => '#text','style'));
  30. self::$jevix->cfgAllowTagParams('th', array('class' => '#text','style', 'width'=>'#int', 'height'=>'#int', 'align', 'valign', 'colspan'=>'#int', 'rowspan'=>'#int'));
  31. self::$jevix->cfgAllowTagParams('tr', array('class' => '#text','style'));
  32. self::$jevix->cfgAllowTagParams('td', array('class' => '#text','style', 'width'=>'#int', 'height'=>'#int', 'align', 'valign', 'colspan'=>'#int', 'rowspan'=>'#int'));
  33. self::$jevix->cfgAllowTagParams('iframe', array('width' => '#int', 'frameborder' => '#int', 'allowfullscreen' => '#int', 'height' => '#int', 'src' => array('#domain'=>array('youtube.com','vimeo.com','vk.com', self::getHost()))));
  34. // Устанавливаем параметры тегов являющиеся обязательными. Без них вырезает тег оставляя содержимое.
  35. self::$jevix->cfgSetTagParamsRequired('img', 'src');
  36. self::$jevix->cfgSetTagParamsRequired('a', 'href');
  37. // Устанавливаем теги которые может содержать тег контейнер
  38. self::$jevix->cfgSetTagChilds('ul',array('li'),false,true);
  39. self::$jevix->cfgSetTagChilds('ol',array('li'),false,true);
  40. self::$jevix->cfgSetTagChilds('object','param',false,true);
  41. self::$jevix->cfgSetTagChilds('object','embed',false,false);
  42. // Если нужно оставлять пустые не короткие теги
  43. self::$jevix->cfgSetTagIsEmpty(array('param','embed','a','iframe'));
  44. self::$jevix->cfgSetTagParamDefault('embed','wmode','opaque',true);
  45. // Устанавливаем автозамену
  46. self::$jevix->cfgSetAutoReplace(array('+/-', '(c)', '(с)', '(r)', '(C)', '(С)', '(R)'), array('±', '©', '©', '®', '©', '©', '®'));
  47. // выключаем режим замены переноса строк на тег
  48.  
  49. self::$jevix->cfgSetAutoBrMode(false);
  50. // выключаем режим автоматического определения ссылок
  51. self::$jevix->cfgSetAutoLinkMode(false);
  52. // Отключаем типографирование в определенном теге
  53. self::$jevix->cfgSetTagNoTypography('code','video','object','iframe');
  54. }
  55.  
  56. return self::$jevix->parse($text,$errors);
  57.  
  58. }
  59.  
#5 12 мая 2013 в 23:49
ну вот и еще одна закладка в избранное :), будет время попробую
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.