Перейти к контенту

[2.3.x]Скрытый текст v2 (WildRAID)


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

  • Ответы 255
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

Загружено фотографий

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

[hide="p=5, th"]скрытый текст [/hide]

я написал так

 

jscripts/ips_text_editor_lite.js

	this.priv = function()
{
	var _text = this.get_selection();
	this.wrap_tags( 'hide="p=5, th" ', false, _text );
};

получается, что мой тег с двух сторон оформляется вот так

hide="p=5, th"

как мне сделать,чтобы тег нормально выглядел?

 

можно сделать так?

   this.priv = function()
{
	var _text = this.get_selection();
	this.wrap_tags(  '[hide="p=5, th"]', '[/hide]', 0)
};

Ссылка на комментарий
Поделиться на других сайтах

Господа, у меня следующая проблема.

На шаге:

15. Откройте Админцентр -> Внешний вид -> Изменить HTML шаблоны (для каждого стиля отдельно)

skin_topic -> Добавить шаблон
Название: render_row_small
Входящие переменные: $post="",$author=""

Содержимое шаблона:

<!--Begin Msg Number {$post['pid']}-->
<table class='ipbtable' cellspacing="0">
<tr>
	<td valign="middle" class="post_head" width="14%">
		<a name="entry{$post['pid']}"></a>
		<span class="{$post['name_css']}">{$author['_members_display_name']}</span>
	</td>
	<td class="post_head" valign="middle" width="86%">
		<!-- POSTED DATE DIV -->
		<div style="float: left;">
			<span class="postdetails">{$post['post_icon']} <img src='{$this->ipsclass->vars['img_url']}/to_post_off.gif' alt='{$this->ipsclass->lang['to_post_alt']}' border='0' style='padding-bottom:2px' /> {$post['post_date']} 		 <i>[{$post['small_reason']}]</i></span>
		</div>
		<!-- REPORT / DELETE / EDIT / QUOTE DIV -->
		<div align="right">
			<span class="postdetails">{$post['ip_address']} {$this->ipsclass->lang['posted_on']}
				<a title="{$this->ipsclass->lang['tt_link']}" href="{$this->ipsclass->vars['board_url']}/index.{$this->ipsclass->vars['php_ext']}?showtopic={$post['topic_id']}&view=findpost&p={$post['pid']}" onclick="link_to_post({$post['pid']}); return false;">#{$post['post_count']}</a>
				<if="$this->ipsclass->member['is_mod']">
					| <a href="#" title="{$this->ipsclass->lang['click_for_mod']}" onclick="topic_toggle_pid('{$post['pid']}'); return false;">{$post['pid_start_image']}</a>
				</if>
			</span>
		</div>
	</td>
</tr>
<tr>
<td class="catend" colspan="2">
<!-- no content -->
</td>
</tr>
</table>

 

пишет:

 

Сообщение Invision Power Board

 

Эти шаблоны не могут быть сохранены, так как найдена ошибка при парсинге. Проверьте введенный HTML-код и все входящие переменные.

 

что делать? IPB 2.3.4

 

Edit: Уже решил. нашёл нескопировавшийся символ.

Ссылка на комментарий
Поделиться на других сайтах

zantt, поставьте "Опции по умолчанию" на p=5, th

 

И теперь, если опции при создании не указаны (просто [priv]текст[/priv]), будут использоваться именно такие.

Ссылка на комментарий
Поделиться на других сайтах

Вопрос такого плана, у меня в свое время было сделано под модератора, теперь же пытаюсь добавить прав до супермодератора и у человека при попытке создать тему выбивает ошибку.

кусок кода из ipsclass.php что у меня в настоящий момент

//Rewrite later
	$raw_post = $post['post'];
	$private_data = $post['private_data'];
	$author_id = $post['author_id'];

	if($private_data)
	{
		$priv_data = unserialize($private_data);
		$pd_perm = explode(',', $pd_data['permissions']);

		foreach($pd_perm as $perm)
		{
			if($this->member['is_mod'])
			{
				$passed = 1;

 

Правильно ли делаю, добовляя и супермодера в этом куске ?

//Rewrite later
	$raw_post = $post['post'];
	$private_data = $post['private_data'];
	$author_id = $post['author_id'];

	if($private_data)
	{
		$priv_data = unserialize($private_data);
		$pd_perm = explode(',', $pd_data['permissions']);

		foreach($pd_perm as $perm)
		{
			if($this->member['is_mod'])
			if($this->member['g_is_supmod'])
			{
				$passed = 1;

Ссылка на комментарий
Поделиться на других сайтах

				if($this->member['is_mod'] or $this->member['g_is_supmod'])
			{
				$passed = 1;

 

Вот так правильно.

 

Правда, этот кусок отвечает за редактирование поста с приватным текстом, и никоим образом к созданию топиков не относится...

Ссылка на комментарий
Поделиться на других сайтах

ага, значит тогда правельнее будет сей фрагмент применить и выше в ipsclass.php где используется

if($this->member['is_mod'] or $this->member['g_is_supmod'])

я правильно понял?

Ссылка на комментарий
Поделиться на других сайтах

К сожалению предложенный вариант проблемы не решает, супермодератор не может постить скрытый текст, повсему проблема лежит глубже. class_post.php или еще где. Есть ли решение?
Ссылка на комментарий
Поделиться на других сайтах

Должно быть.) Для начала хотелось бы понять проблему.

 

Вопрос такого плана, у меня в свое время было сделано под модератора, теперь же пытаюсь добавить прав до супермодератора и у человека при попытке создать тему выбивает ошибку.

 

Что было сделано под модератора? Что значит "добавить прав до супермодератора"? Какую конкретно ошибку выдает?

 

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

Ссылка на комментарий
Поделиться на других сайтах

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

http://i049.radikal.ru/0802/e2/a927e37a9920t.jpg

а изминения я уже не помню, но обращался раньше к тебе через асю на примую, вносил в ipsclass.php когда простой модератор не мог ничего делать. и кокраз в том фрагменте.

Ссылка на комментарий
Поделиться на других сайтах

Видимо, в настройках стоит галочка "ограничить использование приватного текста по группам", и новая группа с возможностью модерировать везде там не выбрана. Изменено пользователем WildRAID
Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...

Йо! Решил покопаться в коде, написал немного кода, чтобы форум отображал, что нужно для просмотра того или иного блока. В ланг-файлы пока не забивал, все правки - в ./sources/ipsclass.php:

 

После:

//add custom elseif here!!

				elseif(!is_numeric($perm) and ($perm == $this->member['members_display_name']) or (isset($this->mult_members->have_mults) and in_array($perm, $this->mult_members->mults)))
				{
					$passed = 1;
					break;
				}
			}

Добавить:

$reason="Этот блок скрытого текста виден: (По принципу ИЛИ)<hr />Администраторам и супермодераторам<br />";
			foreach($pd_perm as $perm)
			{
				 $perm = trim($perm);

				 if($perm == "reg")
				 {
					$reason .= "Зарегистрированным пользователям <br />";
				 }
				 elseif (preg_match("#^g=(.+)#", $perm, $matches))
				 {
					if(is_numeric($matches[1]))
					{
						$reason .= "Группе пользователей <b>№" . $matches[1] . "</b><br />";
					}
					elseif(!is_numeric($matches[1]))
					{
						$reason .= "Группе пользователей <b>" . $matches[1] . "</b><br />";
					}
				 }
				 elseif (preg_match("#^p=([0-9]+)#", $perm, $matches))
				 {
					 $reason .= "Пользователям, набравшим <b>" . $matches[1] . "</b> сообщений<br />";
				 }
				 elseif (preg_match("#^tp=([0-9]+)#", $perm, $matches))
				 {
					 $reason .= "Пользователям, набравшим <b>" . $matches[1] . "</b> спасибок<br />";
				 }
			   elseif ($perm == 'th')
				 {
					 $reason .= "Пользователям, сказавшим автору СПАСИБО за это сообщение<br />";
				 }
				 elseif (!is_numeric($perm))
				 {
					 $reason .= "Пользователю <b>" . $perm . "</b><br />";
				 }
			   }

и вот этот блок:

else
					{
						//No reason or too many reasons? Show the common message
						if(!$is_lofi)
						{
							$replacer = $this->compiled_templates['skin_global']->private_data_hidden($this->lang['priv_data_here']);
						}
						else
						{
							$replacer = "<div class='quotetop'>{$this->lang['priv_caption']}</div><div class='quotemain'><b><font color='red'>{$this->lang['priv_data_here']}</font></b></div>";
						}
					}

заменить на:

else
					{
						//No reason or too many reasons? Show the common message
						if(!$is_lofi)
						{
							$replacer = $this->compiled_templates['skin_global']->private_data_hidden($reason);
						}
						else
						{
							$replacer = "<div class='quotetop'>{$this->lang['priv_caption']}</div><div class='quotemain'><b><font color='red'>{$reason}</font></b></div>";

													}
					}

 

Вот, вроде у меня работает...

Скриншот

Это для скрытого текста с параметрами:

[hide="tp=50,p=150,th,Ichijou-san,g=5"]

Ссылка на комментарий
Поделиться на других сайтах

А у меня почему-то ничего не получилось.

Всё установил, но не могу понять как добавлять скрытый текст. После установки ничего не изменилось. При добавлении сообщения Кнопки для склытия текста нет, BB кодов нет, тегов (priv) тоже нет. Как закрывать текст, - не понял. Пишу сам [priv=3]текст[/priv]? - тоже ничего...В чём может быть проблема?

Да! Чуть не забыл. У меня ещё до этого была установленна модификация от Vic'er'а. Возможно она "не даёт" Если нет, - то вообще не могу представить в каком направлении рыть...

Ссылка на комментарий
Поделиться на других сайтах

Можно и вообще без кавычек. Или разные кавычки. И еще можно без знака "=" даже...

 

Свобода слова, как говорится.

 

Пишу сам [priv=3]текст[/priv]? - тоже ничего...В чём может быть проблема?

 

Скорее всего, проблемы в class_post.php. Перепроверьте изменения в нем.

Изменено пользователем WildRAID
Ссылка на комментарий
Поделиться на других сайтах

Например, не так давно писал кому-то условие "Х созданных тем за последние Y дней в Z,Z,Z,Z форумах".

Ага, для меня делал ;)

 

Вообщем это решение хайда нас уже не устраивает ввиду своей жёсткости...

Сейчас ищем наиболее подходящий вариант хайда.

Пока склоняемся к нажатии кнопки спасибо + ответ в тему... Но это ещё только согласовывается...

Когда будет точный вариант, сразу к тебе :)

 

PS: Большое спасибо за этот мод :):D

Ссылка на комментарий
Поделиться на других сайтах

Всем привет!

 

Хотел спросить пойдёт ли данный хайд на версии 2.3.4, а то я вот вчера вечером тэстил и ничего не получилось :D Пишет ошибка в ВВКоде class_bbcode.php на строчках, которых не существует (например 909 и т.д.). Руки кривые или код для старших версий? И что такое "викеровкий" хайд хак? Посоветуйте что-нибудь другое если это не для 2.3.4 чтобы использовало [HIDE][/HIDE] и [HIDE=10][/HIDE].

 

 

 

Всем заранее спасибо!

Ссылка на комментарий
Поделиться на других сайтах

Когда пробую добавить сообщение на версии 2.3.4. ...

 

Fatal error: Maximum execution time of 60 seconds exceeded in C:\ххх\htdocs\ipb\sources\classes\bbcode\class_bbcode_core.php on line 931

 

Уже 2ой раз поновой устанавливаю :D Есть идеи?

 

P.S. "Фаст репли" добавляется, но скрипт не работает. После функции

[hide]LOL[/hide]

появляется такое сообщение:

[hide_me]LOL[/hide_me]

, а "Адд Репли" и "Нью Топик" вообще не открыть вылезает ошибка что выше после 60 сек. ожидания.

Ссылка на комментарий
Поделиться на других сайтах

Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.