Не получается добавить свой тег

Хочу добавить свой тег «hide», который будет проверять текущее кол-во комментариев у юзера. Если меньше 10, то показывать, скажем, фигу, в противном случае скрытый текст

Как я понял, тег добавляется внесением изменений в код всего лишь двух файлов:
  1. config/jevix.php
  2. 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;
		}


Не работает.
Хороших мануалов по добавлению тегов не нашёл. Может где ещё нужно какой код добавить? Всем спасибо.
Многие хотят иметь красивую улыбку, но людей отпугивает установка брекетов. Современные брекеты практически не заметны и удобны, у вас нет преград перед красивой улыбкой.

1 комментарий

avatar
Хочу добавить свой тег «hide», который будет проверять текущее кол-во комментариев у юзера. Если меньше 10, то показывать, скажем, фигу, в противном случае скрытый текст
я вам скажу так — сделать то, что вы задумали весьма непросто. Плагин супер спойлер 6 раз был переписан с нуля, пока я не нашел необходимый способ для корректной его работы со всем, что может быть подключено к лс (разные шаблоны, плагины и их невероятные комбинации вместе с неограниченной фантазией некоторых авторов шаблонов).

ваш способ крайне ошибочен — вы один раз занесете в текст топика вид спойлера для текущего пользователя. это будете видеть вы, другие пользователи, в т.ч. неавторизированные. вид спойлера будет «заморожен» в таком виде.

вы даже не представляете сколько разных решений нужно интегрировать в одно чтобы заставить работать спойлер с условиями для показа для разных пользователей/окружений. поэтому могу посоветовать брать готовое решение, но там нет нужного правила для вас, а дорабатывать сейчас у меня нет времени (хотя и не очень сложно: в конфиг плагина новый атрибут, в парсер спойлера — обработка значения атрибута).

не реклама, просто поверьте, что решение намного уровней сложнее, тут не только в парсере дело (рсс, прямой эфир, ленты всякие и т.п.) — целый воз приключений.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.