Вызов текста расположенного после! тега <cut>. Нужна помощь.

Добрый день, друзья!
Интересует возможность вызова текста расположенного после тега в теге cut. В данном, конкретном, случае необходимо понять как вызвать текст расположенный после тега \ (внутри тега) на главную страницу в списке топиков, скрывая при этом текст до тега. Другими словами: обратное действия ката…

На данный момент кат вызывается (на примере topic_topic.tpl):

{if $bTopicList}
			{$oTopic->getTextShort()}
			{if $oTopic->getTextShort()!=$oTopic->getText()}
                            <a href="{$oTopic->getUrl()}#cut" title="{$aLang.topic_read_more}">
				{if $oTopic->getCutText()}
					{$oTopic->getCutText()}
				{else}
				{/if}
			{/if}
		{else}
			{$oTopic->getText()}
		{/if}


Что говорит нам (в грубой форме): «Если есть тег кат, то сформировать ссылку на топик начиная с места где расположен тег, а если его нет показать полный текст топика. » Где: {$oTopic->getText()} = «показать весь текст», а {$oTopic->getCutText()} = показать часть текста до тега. Как задать или вызвать функцию которая будет отвечать на правило: «показать текст после тега cut» {$oTopic->getЧто-тотам()}

Прошу прощения… я очень криво изложил свои мысли сейчас, но я думаю, что вполне доступно для понимания… Прошу помочь советом.

9 комментариев

avatar
Если я правильно понял, то это делается выделением нужного текста и нажатием на ножницы.
Получается
avatar
<cut name="что-то там">
avatar
Все-же видимо не совсем доступно объяснил…
В файле topic_topic.tpl есть вправило которое работает в случае использования тега cut при написании топика. Это правило скрывает ту часть текста (на главной стр.), которая находится после тега кат. Мне же нужно идею по реализации правила, которое будет действовать наоборот: ту часть текста, которая после тега кат — будет отображать на главной, а ту, что перед тегом — скрывать.
avatar
Это глупо. Пример приведёте такого использования?
avatar
Пример я скорее всего не найду… По поводу того, что это глупо — не соглашусь. У каждого свои идеи по реализации того или иного на ls. В моем случае я привязал к тегу «кат» js функцию которая раскрывает полный текст топика на главной стр. без перехода в топик. На данный момент работает криво:

Есть краткое описание на главной.
Есть кнопка «Показать полностью» которая появляется если есть тег «кат»
при нажатии на данный момент у меня может подгружаться либо весь текст топика по
{$oTopic->getText()}
и тогда получается Краткое описание, а ниже подгружается полный текст, с таким-же кратким описанием… (что глупо) либо подгружается та часть топика, что перед тегом «кат» по
{$oTopic->getCutText()}
что, как вы понимаете, еще более неправильно. Именно поэтому мне и нужна функция, которая будет подгружать только скрываемый текст. Который идет после тега. Например конструкцией вида:
{$oTopic->getUncutText()}
avatar
ХЗ, это уже какой-то велосипед, имхо.
avatar
Велосипед конкретно на ls? Прошу прощения, но я может быть плохо искал, но так и не удалось мне найти примера реализации идеи. Пришлось мудрить с такой вот, возможно кривой, реализацией. Если Вы знаете где найти рабочий пример для ls — поделитесь, пожалуйста ссылкой… Очень нужно.
avatar
Например:

В Text.class.php:

/**
	 * Производить резрезание текста по тегу <cut>.
	 * Возвращаем массив вида:
	 * array(
	 * 		$sTextShort - текст до тега <cut>
	 * 		$sTextNew   - весь текст за исключением удаленного тега
	 * 		$sTextCut   - именованное значение <cut> 
	 * )
	 *
	 * @param  string $sText
	 * @return array
	 */
	public function Cut($sText) {
		$sTextShort = $sText;
		$sTextNew   = $sText;
		$sTextCut   = null;
		
		$sTextTemp=str_replace("\r\n",'[<rn>]',$sText);
		$sTextTemp=str_replace("\n",'[<n>]',$sTextTemp);
		
		if (preg_match("/^(.*)<cut(.*)>(.*)$/Ui",$sTextTemp,$aMatch)) {			
			$aMatch[1]=str_replace('[<rn>]',"\r\n",$aMatch[1]);
			$aMatch[1]=str_replace('[<n>]',"\r\n",$aMatch[1]);
			$aMatch[3]=str_replace('[<rn>]',"\r\n",$aMatch[3]);
			$aMatch[3]=str_replace('[<n>]',"\r\n",$aMatch[3]);				
			$sTextShort=$aMatch[1];
			$sTextNew=$aMatch[1].' <a name="cut"></a> '.$aMatch[3];
			if (preg_match('/^\s*name\s*=\s*"(.+)"\s*\/?$/Ui',$aMatch[2],$aMatchCut)) {				
				$sTextCut=trim($aMatchCut[1]);
			}				
		}

		return array($sTextShort,$sTextNew,$sTextCut ? htmlspecialchars($sTextCut) : null);
	}


Каким образом добавить параметр: «текст после тега »
avatar
Да, было бы любопытно! Человек имеет ввиду реализовать вывод в ПОЛНОЙ новости всего материала БЕЗ того, который мы обрезали катом. То есть, без КРАТКОЙ новости.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.