Войти

Показать полную графическую версию : [решено] ipb, редактирование стиля


Artem-Samsung
02-07-2008, 02:59
Вот копаюсь в движке ipb через админку
Нашел редактор шаблона, вместо стандартного кода шапки хотел бы вставить там код php
Пока только инклюд, но и в дальнешем хотел бы применять где то там свои модули.
Вот только сохранив страницу вот с таким текстом:

<div class="borderwrap">
<?php include('artemius_scripts/ipb_header.php'); ?>
<div id="submenu">
<!--ipb.leftlinks.start-->
<if="$this->ipsclass->vars['home_url']">
.......

Не получил никакого результата. Шапка не отобразилась, да и вооще испугало меня то, что открыв исходный код, там было написано:
<?php include('artemius_scripts/ipb_header.php'); ?>
т.е. скрипт не обработался.

Подскажите пожалуйста, как выйти из ситуации. Как можно применять свои модули в ipb, да и подбросьте полезной документации.
Спасибо

Artem-Samsung
02-07-2008, 03:33
Проше говоря, как мне где то написать хотя бы echo "Hello World"; что бы оно отобразилось

][alter
10-07-2008, 00:14
В sources/ipsclass.php найти:

$text = preg_replace( "/(<|<)% (MEMBER BAR|BOARD FOOTER|BOARD HEADER|CSS|JAVASCRIPT|TITLE|BOARD|STATS|GENERATOR|COPYRIGHT|NAVIGATION) %(>|>)/i", "<% \\2 %>", $text );



Заменить на:

$text = preg_replace( "/(<|<)% (INCLUDE|MEMBER BAR|BOARD FOOTER|BOARD HEADER|CSS|JAVASCRIPT|TITLE|BOARD|STATS|GENERATOR|COPYRIGHT|NAVIGATION) %(>|>)/i", "<% \\2 %>", $text );


В sources/classes/class_display.php найти:
this->ipsclass->skin['_wrapper'] = str_replace( "<% CHARSET %>" , $this->ipsclass->vars['gb_char_set'], $this->ipsclass->skin['_wrapper']);
Добавить после:

//-----------------------------------------
// PHP INCLUDES
//-----------------------------------------

$incmatches=array();
while (preg_match("\x3C\% INCLUDE \"(\S*?)\" \%\x3E", $this->ipsclass->skin['_wrapper'], $incmatches) >0)
{
$this->ipsclass->skin['_wrapper'] = str_replace("<".$incmatches[0].">", "<?php include\"" . $incmatches[1] . "\"; ?>", $this->ipsclass->skin['_wrapper']);
$incmatches=array();
}


Найти в функции do_output:
print $this->ipsclass->skin['_wrapper'];
Заменить на:

print eval('?>' . $this->ipsclass->skin['_wrapper'] . '<?php ');

Artem-Samsung
10-07-2008, 20:02
Спасибо, попробую, очень надеюсь, что поможет




© OSzone.net 2001-2012