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

[1.x.x]lofi-version для 1.3 с вожможностью быстрого ответа, login и lo


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

В index.php перед

//+-------------------------------------------------
// GLOBAL ROUTINES
//+-------------------------------------------------

function fatal_error($message="", $help="")

Вставляем

function post_db_parse($t="", $use_html=0)
{
	global $ibforums, $DB;

	$t = preg_replace( "#\[dohtml\](.+?)\[/dohtml\]#ies", "\parse_html('\\1')", $t );

	return $t;
}

function parse_html($t="", $do_br=1)
{
	if ( $t == "" )
	{
		return $t;
	}

	// Remove <br>s 'cos we know they can't
	// be user inputted, 'cos they are still
	// <br> at this point :)

	if ( $do_br == 1 )
	{
		$t = str_replace( "<br>"	, "\n" , $t );
		$t = str_replace( "<br />"  , "\n" , $t );
	}
	$t = str_replace( "'"   , "'", $t );
	$t = str_replace( "!"   , "!", $t );
	$t = str_replace( "$"   , "$", $t );
	$t = str_replace( "|"  , "|", $t );
	$t = str_replace( "&"   , "&", $t );
	$t = str_replace( ">"	, ">", $t );
	$t = str_replace( "<"	, "<", $t );
	$t = str_replace( """  , '"', $t );

	// Take a crack at parsing some of the nasties
	// NOTE: THIS IS NOT DESIGNED AS A FOOLPROOF METHOD
	// AND SHOULD NOT BE RELIED UPON!

	$t = preg_replace( "/alert/i"	  , "alert"	  , $t );
	$t = preg_replace( "/onmouseover/i", "onmouseover", $t );
	$t = preg_replace( "/onclick/i"	, "onclick"	, $t );
	$t = preg_replace( "/onload/i"	 , "onload"	 , $t );
	$t = preg_replace( "/onsubmit/i"   , "onsubmit"   , $t );

	return $t;
}

Перед

$output .= LOFISKIN_posts_entry($r);

Вставляем

if ( stristr( $r['post'], '[dohtml]' ) )
			{
				// [doHTML] tag found..

				$r['post'] = post_db_parse($r['post'], 1 );
			}

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

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

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

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

Legion Leonhart, битте шён вери мач!

 

		$t = preg_replace( "/alert/i"	  , "alert"	  , $t );
	$t = preg_replace( "/onmouseover/i", "onmouseover", $t );
	$t = preg_replace( "/onclick/i"	, "onclick"	, $t );
	$t = preg_replace( "/onload/i"	 , "onload"	 , $t );
	$t = preg_replace( "/onsubmit/i"   , "onsubmit"   , $t );

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

Наверное сделаю три прогона:

1. мои скрипты отпарсить в абракадабру;

2. "script" отпарсить в "s<big>c</big>ript" - чтобы коды можно было копипастить, а то уже задолбало на айбиресурсе ломаными кодами;

3. абракадабру отпарсить обратнов мои скрипты.

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

На самом деле этот кусок выглядит так http://legionlh.nm.ru/Untitled-1.jpg просто этот форум его обработал так, я не сразу заметил просто
Ссылка на комментарий
Поделиться на других сайтах

Туплю сегодня...

Теги [uRL] парсятся вне тега [dohtml], поэтому моим скриптам ничего не грозит.

Смело заменяю этот блок одной строкой:

$t = preg_replace( "/script/i"   , "s<big>c</big>ript"   , $t );

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

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

Многие браузеры понимают слово script даже если внутри него есть пробельные символы.

Если внутри слова есть ХТМЛ-теги? Гы!

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

не, помнишь ты сам говорил в "Басни о куках"

ну для пробельных

$var = preg_replace( "#<(\s+?)?s(\s+?)?c(\s+?)?r(\s+?)?i(\s+?)?p(\s+?)?t#is"		, "<script" , $var );

Вряд ли это я говорил, я в регулярках php вообще не разбираюсь :D

Больше на тёзку Сонга похоже.

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

  • 9 месяцев спустя...
В index.php перед

//+-------------------------------------------------
// GLOBAL ROUTINES
//+-------------------------------------------------

function fatal_error($message="", $help="")

Вставляем

Сделал более корректное решение: не пишем дубликат функции, а обращаемся к имеющейся функции.

 

Перед:

$output .= LOFISKIN_posts_entry($r);

вставляем:

require "../sources/lib/post_parser.php";
$parser = new post_parser();
$r['post'] = $parser->post_db_parse($r['post'], 1 );

 

При этом не только появляется dohtml в текстовой версии, но и делается совместимость всем модам, затрагивающим парсер.

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

  • 9 месяцев спустя...

Установил текстовую версию. Всё отлично кроме главноего - сообщенияне пишуться. После отправки сообщения выдаёт такое:

 

Спасибо, JavaScript должен быть включен.

 

Подождите, сейчас Вы будете перемещенны

 

Не могу понять в чём дело...

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

Haktar

Сонговский мод проверки на бота джаваскриптом?

Нив коем случае. Вот поэтому и сижу, ломаю голову над этим...

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

  • 3 года спустя...
  • 10 месяцев спустя...

Там мутерно всё. Я еле сонговский под поставил. малый вопрос. Как прописать чтоб в этом лофи показывались прикреплённые картинки(аттачи)?

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

Не сложно: выдернуть код из Topic.php и адаптировать для txt/index.php

Для картинок вот код:

lofi_skin.php
Найти

{$r['signature']}

и добавить выше

{$r['attach_id']}

txt/index.php

Найти

if($r['signature'] != "" and $r['use_sig'] == '1')$r['signature'] = "<br><br>_____________<br>".$r['signature'];

и добавить выше

if(
$ibforums->vars['show_img_upload']
and $r['attach_id']
and
(
$r['attach_type'] == 'image/gif'
or $r['attach_type'] == 'image/jpeg'
or $r['attach_type'] == 'image/pjpeg'
or $r['attach_type'] == 'image/x-png'
or $r['attach_type'] == 'image/png'
)
)
{
$r['attach_id'] = '<br><br><span class="smalltext">Присоединённое изображение</span><br><img src="'.$ibforums->vars['upload_url'].'/'.$r['attach_id'].'" alt="Присоединённое изображение"/>';
}

Для аттачей к скачиванию немного сложней; поленюсь.

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

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

 

function LOFISKIN_posts_entry($r) {
return <<<EOF


<div class='postwrapper'>
 <div class='posttopbar'>
  <div class='postname'>{$r['author_name']}</div>
  <div class='postdate'>{$r['post_date']}</div>
 </div>
 <div class='postcontent'>
  {$r['post']}<br><br>
  <a href="{$url}/uploads/{$r['attach_id']}"><img src="{$url}/uploads/{$r['attach_id']}" class="attach" title="Uploaded image, click to enlarge"></a><br>
 </div>
</div>
EOF;
}

Теперь осталось вывести в лофи индехе типа последние сообщения с определённых форумов. Убить и поставить дрогой стиль, и будет уже что то типа мобильной версии :)))

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

 

 

Signature у меня нету.
Значит после 
{$r['post']}

 

 

осталось вывести в лофи индехе типа последние сообщения с определённых форумов.
В принципе, ничего сложного. Вся необходимая информация есть в ibf_topics; права доступов уже определены.

 

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

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


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

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

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