Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

IP Links как сделать чтобы ссылки были в верном формате

Опубликовано:

Гуру подскажите как добится чтобы заработало следующее ...

 

Есть модуль IP Links в котором создаются ссылки, но модуль я уже изменил и теперь вывожу в название ссылки не урл а ее описание которое заполнено вот так

 

post-16112-0-58827500-1305452291_thumb.png

 

Становится понятно что оформленная ссылка не отображается правильно

 

Потом зайдя в саму ссылку видим что все верно

 

post-16112-0-95621200-1305452316_thumb.png

 

Смотрим код шаблона и там в деталях ссылки она формируется так

 

<tr>

<td class='linkrow1' valign='top'>{$this->lang->words[ 'description' ]}</td>

<td class='linkrow2'>{$link[ 'link_description' ]}</td>

</tr>

 

Теперь код как она формируется в списке ссылок

 

<td class='linkrow2'>{$link[ 'link_description' ]}</td>

 

Вроде бы все правильно, но вот не хотит выводить как нада и все.

Скорее всего какая то наследственность от выше объектов но вот понять не могу что влияет и как найти ....

Подскажите куда копать...

Рекомендованные сообщения

Опубликовано:

Подключать парсер BBCode надо. По хорошему - с кешированием.

Опубликовано:

Наследственность здесь не причем, это ббкод. К хтмл никакого отношения не имеет. Просто в скрипте две разные участки которые выводят информацию, и в первом не обрабатывается ббкоды. Копать надо в этом направление, найти функцию первого и добавить туда поддержку.

Опубликовано:
  • Автор

Подскажите как это можно сделать ...

Опубликовано:
  • Автор

Вот код что выводит правильно

 

{parse js_module="rating"}

{parse js_module="editor"}

<script type="text/javascript">

//<![CDATA[

// Editor JS: Only needs to be done once per page

{parse template="editorJS" group="editors" params=""}

//]]>

</script>

{parse template="linksMessages" group="skin_links" params="$messages"}

 

<tr>

<td>{parse replacement="{$link[ 'statusIcon' ]}"}</a></td>

 

 

<td>{$link[ 'link_description' ]}</td>

 

 

<td class='stats'><ul><li>{$link[ 'link_hits' ]}

<a href='{parse url="showlink={$link[ 'link_id' ]}" template="showlink" seotitle="{$link[ 'link_seo_title' ]}" base="publicWithApp"}'>

{$this->lang->words[ 'hits' ]}</li></ul></a>

 

</td>

<if test="$this->memberData[ 'g_l_mod_links' ] == 1 && $showMulti == 1">

<td class='short'><input type='checkbox' class='input_checkbox topic_mod' id='tmod_{$link[ 'link_id' ]}' /></td>

</if>

</tr>

 

 

Нет ничего такого чтобы заставило отрабатывать вв коды ...

Опубликовано:
Нет ничего такого чтобы заставило отрабатывать вв коды ...

Совершенно верно. BBCode обрабатываются в скриптах, а не в шаблонах. При этом в общем листинге в коде парсера нет (и это логично - слишком много ресурсов будет есть, да и не нужен, обычно), а при открытии конкретной ссылки - есть.

 

Т.е. в файле /admin/applications_addon/other/links/modules_public/links/links.php есть строки 216-224:

	/* Init for link description */
	IPSText::getTextClass( 'bbcode' )->parse_html				= 0;
	IPSText::getTextClass( 'bbcode' )->parse_nl2br			= 1;
	IPSText::getTextClass( 'bbcode' )->parse_bbcode			= 1;
	IPSText::getTextClass( 'bbcode' )->parse_smilies		= ( $this->settings[ 'l_emo_ldesc' ] == 1 ) ? 1 : 0;
	IPSText::getTextClass( 'bbcode' )->parsing_section	= 'links_ldesc';

	$link[ 'link' ][ 'link_description' ] = IPSText::getTextClass( 'bbcode' )->preDisplayParse( $link[ 'link' ][ 'link_description' ] );
	$link[ 'link' ][ 'link_description' ] = IPSText::getTextClass( 'bbcode' )->memberViewImages( $link[ 'link' ][ 'link_description' ] );

 

А в файле /admin/applications_addon/other/links/modules_public/links/categories.php ничего такого нет. Где-то здесь ~338:

	while ( $row = $this->DB->fetch( $fetchLinks ) )
	{
		$row = $this->links->parseLink( $row );

		$links[ $row[ 'link_id' ] ] = $row;		
		$linkIds[] = $row[ 'link_id' ];
	}

 

Сделать что-то вроде этого:

	/* Init for link description */
	IPSText::getTextClass( 'bbcode' )->parse_html				= 0;
	IPSText::getTextClass( 'bbcode' )->parse_nl2br			= 1;
	IPSText::getTextClass( 'bbcode' )->parse_bbcode			= 1;
	IPSText::getTextClass( 'bbcode' )->parse_smilies		= ( $this->settings[ 'l_emo_ldesc' ] == 1 ) ? 1 : 0;
	IPSText::getTextClass( 'bbcode' )->parsing_section	= 'links_ldesc';

	while ( $row = $this->DB->fetch( $fetchLinks ) )
	{
		$row = $this->links->parseLink( $row );

		$links[ $row[ 'link_id' ] ] = $row;		
		$links[ $row[ 'link_id' ] ][ 'link_description' ] = IPSText::getTextClass( 'bbcode' )->preDisplayParse( $links[ $row[ 'link_id' ] ][ 'link_description' ] );
		$links[ $row[ 'link_id' ] ][ 'link_description' ] = IPSText::getTextClass( 'bbcode' )->memberViewImages( $links[ $row[ 'link_id' ] ][ 'link_description' ] );

		$linkIds[] = $row[ 'link_id' ];
	}

 

Правда все это будет заметно грузить сервер (почему и не реализовано изначально).

Опубликовано:
  • Автор

Спасибо большое, все работает ...

Опубликовано:
  • Автор

А как можно вообще избавится от категорий, чтобы ссылки были сразу как заходишь ????

Изменено пользователем AlexUnit

Опубликовано:

Вы отказались уже почти от всех функций этого модуля. Если убирать еще и категории - может, имеет смысл просто посмотреть в сторону чего-то попроще? Например, (DP31) Custom Pages 1.2.0? Просто оформите и выведите там нужные вам ссылки, и все..)

Опубликовано:
  • Автор

Мне нужен 2 уровень ссылок ... а так получается все равно будет 3-ий ...

 

И данный модуль уже задействован поэтом у использовать его не получится ...

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.