Хочу добавить свой тег «hide», который будет проверять текущее кол-во комментариев у юзера. Если меньше 10, то показывать, скажем, фигу, в противном случае скрытый текст
Как я понял, тег добавляется внесением изменений в код всего лишь двух файлов:
- config/jevix.php
- engine/modules/text/
Что было сделано:
Тег был добавлен в список разрешённых тегов
return array(
'default' => array(
// Разрешённые теги
'cfgAllowTags' => array(
// вызов метода с параметрами
array(
array('ls','hide',
В конец файла Text.class.php добавил код:
public function CallbackTagHide($sText) {
$iCountCommentUser=$this->Comment_GetCountCommentsByUserId($this->oUserCurrent->getId(),'topic');
if ($iCountCommentUser<=10) {
$sText='Не хватает комментариев';
return $sText;}
else {
$sText=str_replace("<hide>",'<p class="hide"><hide>',$sText);
$sText=str_replace("</hide>",'</hide></p>',$sText);
return $sText;
}
}
в этом же файле добавил:
/**
* Парсит текст, применяя все парсеры
*
* @param string $sText Исходный текст
* @return string
*/
public function Parser($sText) {
if (!is_string($sText)) {
return '';
}
$sResult=$this->FlashParamParser($sText);
$sResult=$this->JevixParser($sResult);
$sResult=$this->VideoParser($sResult);
$sResult=$this->CodeSourceParser($sResult);
<strong>$sResult=$this->CallbackTagHide($sResult);</strong>
return $sResult;
}
Может и не надо было, но делал по аналогии с code
На сайте в TinyMCE в html окне редактора вставляю код:
<hide>Скрытый текст</hide>
после нажатия обновить он превращается в
<p>Текст</p>
Думал что не работает условие и пробовал такой вариант:
public function CallbackTagHide($sText) {
$sText=str_replace("<hide>",'<p><hide>',$sText);
$sText=str_replace("</hide>",'</hide></p>',$sText);
return $sText;
}
Не работает.
Хороших мануалов по добавлению тегов не нашёл. Может где ещё нужно какой код добавить? Всем спасибо.