Jevix вырезает пустые атрибуты.
1
Собственно вопрос. Как заставить Jevix не вырезать пустые атрибуты?
У меня разрешен атрибут alt для картинок и он вырезается при сохранении если не заполнен.
Настройки разрешения:
У меня разрешен атрибут alt для картинок и он вырезается при сохранении если не заполнен.
Настройки разрешения:
$this->oJevix->cfgAllowTagParams('img', array('src', 'alt' => '#text', 'style' => '#text', 'title', 'class', 'align' => array('right', 'left', 'center'), 'width' => '#int', 'height' => '#int', 'hspace' => '#int', 'vspace' => '#int'));
Джаваскрипт в топиках [РЕШЕНО]
Навеяно постом!
И так, есть необходимость в некоторые топики вставлять js. Разрешать js через Jevix — не логично (во избежания xss/напихания рекламных js).
Подключать в файлах шаблона — некатит, так как в каждый топик разный js совать нужно.
Выслушаю все идеи и предложения!
UPD 2012.04.22
beauty_free предложил два варианта.
1. Все довольно просто, если менять файлы движка то нужно изменить файл livestreet/classes/actions/ActionTopic.class.php строка примерно 301
на
2. Либо как вариант изменить метод Parser в модуле Text
на
Второй вариант более правильный так как оставляет другие парсеры такие как подсветка кода, вставка видео.
И так, есть необходимость в некоторые топики вставлять js. Разрешать js через Jevix — не логично (во избежания xss/напихания рекламных js).
Подключать в файлах шаблона — некатит, так как в каждый топик разный js совать нужно.
Выслушаю все идеи и предложения!
UPD 2012.04.22
beauty_free предложил два варианта.
1. Все довольно просто, если менять файлы движка то нужно изменить файл livestreet/classes/actions/ActionTopic.class.php строка примерно 301
$oTopic->setText($this->Text_Parser($sTextNew));
$oTopic->setTextShort($this->Text_Parser($sTextShort));на
if($this->oUserCurrent->isAdministrator()) {
$oTopic->setText($sTextNew);
$oTopic->setTextShort($sTextShort);
} else {
$oTopic->setText($this->Text_Parser($sTextNew));
$oTopic->setTextShort($this->Text_Parser($sTextShort));
}2. Либо как вариант изменить метод Parser в модуле Text
public function Parser($sText) {
$sResult=$this->FlashParamParser($sText);
$sResult=$this->JevixParser($sResult);
$sResult=$this->VideoParser($sResult);
$sResult=$this->CodeSourceParser($sResult);
return $sResult;
}на
public function Parser($sText) {
$sResult=$this->FlashParamParser($sText);
if(!$this->User_GetUserCurrent()->isAdministrator()) {
$sResult=$this->JevixParser($sResult);
}
$sResult=$this->VideoParser($sResult);
$sResult=$this->CodeSourceParser($sResult);
return $sResult;
}Второй вариант более правильный так как оставляет другие парсеры такие как подсветка кода, вставка видео.
Добавление JS, в топики
Доброго времени суток. Собственно сабж, нужно в топики добавить JS код (плеер проигрывающий видос), добавить сие невозможно, ибо jevix обрабатывает скрипты. Что-бы придумать незнаю, дабы обезопасить сайт от вставки эксплойта в комменты, но вставить код как-то надо. Пробовал в jevix воткнуть
Код все равно обрабатывается, хз что не так делаю. Прошу помощи, заранее благодарен.
array(
'script',
array('type', 'src', 'text', 'javascript')
),
Код все равно обрабатывается, хз что не так делаю. Прошу помощи, заранее благодарен.
[РЕШЕНО] Как разрешить в Jevix теги div и span
Требуется разрешить в Jevix теги div и span с параметром style. Параметр style в свою очередь содержит свои параметры: font-family, font-size, color, background-color, font-weight, font-style, text-align, padding.
Кто-то писал, что теги добавлять нужно в engine/modules/text/Text.class.php. Поковырял его, понял, что он ссылается на /config/jevix.php. Там я и нашел разрешенные теги, но новые добавить не получается, не работают.
В итоге перепробовал разные варианты, ковырялся несколько часов, окончательно запутался и вынужден просить помощи, а то ничего не выходит.
Кто-то писал, что теги добавлять нужно в engine/modules/text/Text.class.php. Поковырял его, понял, что он ссылается на /config/jevix.php. Там я и нашел разрешенные теги, но новые добавить не получается, не работают.
В итоге перепробовал разные варианты, ковырялся несколько часов, окончательно запутался и вынужден просить помощи, а то ничего не выходит.
Плеер GrooveShark
Вопрос:
Код плеера:
Как разрешить в Jevix парсинг плеера?
По типу:
/** * youtube.com */ $sText = preg_replace('/<video>http:\/\/(?:www\.|)youtube\.com\/watch\?v=([a-zA-Z0-9_\-]+)<\/video>/Ui', '<object width="425" height="344"><param name="wmode" value="opaque"></param><embed src="http://www.youtube.com/v/$1&hl=en" type="application/x-shockwave-flash" wmode="opaque" width="425" height="344"></embed></param></embed></param></embed></object>', $sText);
Код плеера:
<object width="250" height="250" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="gsPlaylist657773880" name="gsPlaylist657773880"><param name="wmode" value="opaque"></param><param name="allowScriptAccess" value="always"></param><param name="flashvars" value="hostname=cowbell.grooveshark.com&playlistID=65777388&bbg=000000&bth=000000&pfg=000000&lfg=000000&bt=FFFFFF&pbg=FFFFFF&pfgh=FFFFFF&si=FFFFFF&lbg=FFFFFF&lfgh=FFFFFF&sb=FFFFFF&bfg=666666&pbgh=666666&lbgh=666666&sbh=666666&p=0"></param></object></object>
textarea, button и iframe внутри топика
Уже не раз добавлял в Jevix.php свои надстройки. Например, разрешил image map, onmouseover и т.п. Всё начинало работать.
Но когда разрешил button и textarea, а также их параметры:
то отображается только button (без id — т.е. он удаляется), textarea вообще не появляется. А iframe появляется пустым.
не подскажите, как решить эту проблему?
Но когда разрешил button и textarea, а также их параметры:
array('textarea', array('name','cols'=>'#int','rows'=>'#int')),
array('button',array('id'))то отображается только button (без id — т.е. он удаляется), textarea вообще не появляется. А iframe появляется пустым.
не подскажите, как решить эту проблему?
Разрешеннные html-атрибуты
2
При создании сообщения Livestreet вырезает некоторые атрибуты, что делает невозможным отформатировать текст. Например, никак не получается сделать якорь в тексте. Я прописала в /engine/modules/text/Text.class.php у ссылки атрибут «name», но якорь все равно вырезается из текста:
То же самое с div-ами — не работает выравнивание текста внутри. Добавила див в разрешенные теги, добавила разрешенные атрибуты:
Подскажите, пожалуйста, где еще нужно поправить, чтобы теги заработали?
$this->oJevix->cfgAllowTagParams('a', array('title', 'style', 'target', 'href', 'id', 'rel', 'name')); То же самое с div-ами — не работает выравнивание текста внутри. Добавила див в разрешенные теги, добавила разрешенные атрибуты:
$this->oJevix->cfgAllowTagParams('div', array('text-align' => array('right', 'left', 'center')));Подскажите, пожалуйста, где еще нужно поправить, чтобы теги заработали?
- 0
- 07 ноября 2011, 18:52
- aby
- Оставить комментарий
Jevix и <br /> в конце текста
Подскажите, пожалуйста, как заставить Jevix убирать перенос строки в конце текста. К примеру, при использовании визуального редактора TinyMCE можно случайно наставить br в конце топика или комментария. В редакторе они не видны, если не смотреть HTML код, а при публикации выглядят, разумеется, не весьма к месту.
На сайте Джевикса в перловой версии они отлично убираются, как бы это реализовать в LS?
На сайте Джевикса в перловой версии они отлично убираются, как бы это реализовать в LS?
- 0
- 16 июня 2011, 14:52
- axethe
- Оставить комментарий
Тире/дефис в конце строки
2
Поправил небольшую ошибку в jevix.class.php.
Ошибка в следующем:
Если строка заканчивается на дефис (который потом преобразуется в тире), то пропадает перевод строки.
Это лимерик — должно быть пять строк, а получается четыре:
Часовой мастер Стью Перегрин
Засыпал меж тяжёлых перин — Стрекотанье часов
Хуже полчища сов
Доводило его до седин.
Если писать дефис без пробела или ставить сразу самому тире — тогда всё ок.
Правка следующая:
меняем
на
Если кто из знатоков подскажет, как сделать правильнее, буду балгодарен.
Ошибка в следующем:
Если строка заканчивается на дефис (который потом преобразуется в тире), то пропадает перевод строки.
Это лимерик — должно быть пять строк, а получается четыре:
Часовой мастер Стью Перегрин
Засыпал меж тяжёлых перин — Стрекотанье часов
Хуже полчища сов
Доводило его до седин.
Если писать дефис без пробела или ставить сразу самому тире — тогда всё ок.
Правка следующая:
меняем
while($this->curCh == '-') $this->getCh();
if(!$this->skipNL() && !$this->skipSpaces()){
$this->restoreState();
return false;
}
на
while($this->curCh == '-') $this->getCh();
$count=0;
if(!$this->skipNL($count,1) && !$this->skipSpaces()){
$this->restoreState();
return false;
}
Если кто из знатоков подскажет, как сделать правильнее, буду балгодарен.
- 0
- 19 мая 2011, 00:47
- Snipe
- Оставить комментарий
Jevix. P вместо BR, возможно?
7
Приветствую всех.
У меня возник вопрос, можно ли перенос строк реорганизовать, т.е. вместо тегов br использовать параграфы?
UPD: Возможо.
Вот цитата с хабра:
У меня возник вопрос, можно ли перенос строк реорганизовать, т.е. вместо тегов br использовать параграфы?
UPD: Возможо.
Вот цитата с хабра:
Нашел решение.
Разрешаем тег p
Ставим cfgSetAutoBrMode(false);
В jevix.class.php в функции parse исправляем:
if($this->isAutoBrMode) { $this->text = preg_replace('/<br\/?>(\r\n|\n\r|\n)?/ui', $this->nl, $text); } else { $this->text = preg_replace('/\n?(.+?)(?:\n\s*\n|\z)/s', "$1\n", $text); }