Почему слетают? Как лечить?
В каталоге статей сделал страничку, при помощи редактора решил вставить таблицу — 3 колонки, 20 строк — ну хотел на будушее чтоб когда нужно в пустую ячейку вписать необходимую информацию. Но не тут-то было! Сделал таблицу, в пару ячеек забил ссылки и описание, сохранил, решил попробовать отредактировать и вуаля — таблицы НЕТУ!!! Думал проблема в редакторе, отключил родной (FCKEditor) подключил другой (CKEditor) — песня та же.
У кого была такая проблема? Как решать её? Нужно чтоб допустим сделал я в редакторе таблицу — сохранил, а когда нужно открыл и чтоб таблица была на месте.
Вообщем внес вот эти изменения trac.instantcms.ru/changeset/1277 (выделено зелёным) в свой файл cms.php, и всё заработало, проверил в двух редакторах (хотя как оказалось они тут не причём). Осталось одна мелоч — если ширину таблицы указывать в процентах, а не в пикселях, то при сохранении ширина слетает, но это мелочи.
вот если надо код из моего cms.php просто заменить и проверить. (про бэкап не забываем!!!)
public static function htmlCleanUp($text){ self::loadClass('jevix'); self::$jevix = new Jevix(); // Устанавливаем разрешённые теги. (Все не разрешенные теги считаются запрещенными.) 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')); // Устанавливаем коротие теги. (не имеющие закрывающего тега) // Устанавливаем преформатированные теги. (в них все будет заменятся на HTML сущности) // Устанавливаем теги, которые необходимо вырезать из текста вместе с контентом. // Устанавливаем разрешённые параметры тегов. Также можно устанавливать допустимые значения этих параметров. self::$jevix->cfgAllowTagParams('input', array('type'=>'#text', 'style', 'onclick' => '#text', 'value' => '#text')); self::$jevix->cfgAllowTagParams('a', array('title', 'href', 'style', 'rel' => '#text', 'name' => '#text')); self::$jevix->cfgAllowTagParams('object', array('width' => '#int', 'height' => '#int', 'data' => '#text')); self::$jevix->cfgAllowTagParams('embed', array('src' => '#image','type' => '#text','allowscriptaccess' => '#text','allowFullScreen' => '#text','width' => '#int','height' => '#int','flashvars'=> '#text','wmode'=> '#text')); self::$jevix->cfgAllowTagParams('table', array('width'=>'#int', 'class' => '#text', 'cellpadding'=>'#int', 'cellspacing'=>'#int', 'align', 'border'=>'#int')); self::$jevix->cfgAllowTagParams('th', array('class' => '#text','style', 'width'=>'#int', 'height'=>'#int', 'align', 'valign', 'colspan'=>'#int', 'rowspan'=>'#int')); self::$jevix->cfgAllowTagParams('td', array('class' => '#text','style', 'width'=>'#int', 'height'=>'#int', 'align', 'valign', 'colspan'=>'#int', 'rowspan'=>'#int')); // Устанавливаем параметры тегов являющиеся обязательными. Без них вырезает тег оставляя содержимое. self::$jevix->cfgSetTagParamsRequired('img', 'src'); self::$jevix->cfgSetTagParamsRequired('a', 'href'); // Устанавливаем теги которые может содержать тег контейнер self::$jevix->cfgSetTagChilds('object','param',false,true); self::$jevix->cfgSetTagChilds('object','embed',false,false); // Если нужно оставлять пустые не короткие теги self::$jevix->cfgSetTagParamDefault('embed','wmode','opaque',true); // Устанавливаем автозамену // выключаем режим замены переноса строк на тег self::$jevix->cfgSetAutoBrMode(false); // выключаем режим автоматического определения ссылок self::$jevix->cfgSetAutoLinkMode(false); // Отключаем типографирование в определенном теге self::$jevix->cfgSetTagNoTypography('code','video','object','iframe'); } return self::$jevix->parse($text,$errors); }