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

Есть возможность includeом вставить форум в шаблон


vasiliyb

Вопрос

Есть ли возможность include'ом вставить форум в мой шаблон страницы?

Как IFrame конечно вставляется, но хотелось бы сделать нормально.

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

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

  • 0

vasiliyb

Есть хак, который инклудит файлы с помощью вставленного в Board-Wrappers тего <% INCLUDE %>. Не помню как он называется. Если не найдешь, то могу написать, как его поставить.

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

  • 0

Хака не нашел:D

И заранее хочу спросить, он позволит вставить форум в ячейку таблицы на сайте без особого шаманства?

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

  • 0

vasiliyb

А почему нельзя эту таблицу сразу вставить в Board-Wrappers?

 

В любом случае вот хак:

 

Файл functions.php

 

Найти

class FUNC {

 

и перед этим вставить

function include_hack_handler($buf)
{       
  global $include_temp_str;
  $include_temp_str.=$buf;
  return "";
}

 

Найти

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

 

и заменить на

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

 

Найти

    function do_output($output_array)
    {
        global $DB, $Debug, $skin_universal, $ibforums;

 

и заменить на

    function do_output($output_array)
    {
        global $DB, $Debug, $skin_universal, $ibforums, $include_temp_str;

 

Найти

  $ibforums->skin['template'] = str_replace( "<% COPYRIGHT %>"      , $copyright               , $ibforums->skin['template']);
  $ibforums->skin['template'] = str_replace( "<% BOARD HEADER %>"   , $this_header             , $ibforums->skin['template']);
  $ibforums->skin['template'] = str_replace( "<% NAVIGATION %>"     , $nav                     , $ibforums->skin['template']);

 

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

        //
        //  Include tag hack
        //
        $incmatches=array();
        while (preg_match("\x3C\% INCLUDE \"(\S*?)\" \%\x3E",$ibforums->skin['template'],$incmatches)>0)
        {
           $include_temp_str="";
           ob_start('include_hack_handler');
           include($incmatches[1]);
           ob_end_flush();
           $ibforums->skin['template'] = str_replace("<".$incmatches[0].">",$include_temp_str,$ibforums->skin['template']);
           $incmatches=array();
        }
        ///    

 

 

 

Потом вставлять файлы можно с помощью тега INCLUDE, например <% INCLUDE "../counters.txt" %>

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

  • 0

Что-то не получается ...

Я создал свою страницу http://od.com.ua/forum/index.php?&act=catalog и хочу проинклудить файлик , редактирую scin_catalog.php никаких реакций на <% INCLUDE "../counters.txt" %> тэг ...

Где не прав ?

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

  • 0

arigoda

Закрыли мне созданною мной тему и отослали сюда и в поиск ...

В простом скине пхп код работает если его прописать до return <<<EOF

Но так у меня получается вот , что http://www.od.com.ua/forum/index.php?act=catalog

Если прописывать после этой строки , то он кушает только чистый штмл , если прописать <? include('имя_файла');?> - форум просто ничего не пишет , как буд-то и не было пхп кода ...

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

  • 0
В простом скине пхп код работает если его прописать до return <<<EOF

Но так у меня получается вот , что http://www.od.com.ua/forum/index.php?act=catalog

Если прописывать после этой строки , то он кушает только чистый штмл , если прописать <? include('имя_файла');?> - форум просто ничего не пишет , как буд-то и не было пхп кода ...

 

Призываю к помощи , остро стоит проблема :D

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

  • 0

arigoda

Да !! ... вот именно это

твоя правда, не инклюдится в скине...

но через скрипт из папки sources - инклюдится, правда не там где надо

я и пытался донести до здешних специалистов, сам то вроде не совсем дурак - сначала попытался соорудить что-то

Какие идеи , то ? У меня давно этот вопрос ... например хотел тут http://www.od.com.ua/forum/index.php?act=sms добавить счетчик сообщений ... но не получается в нужное место :D

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

  • 0

Я вот так инклудил

function функция(параметры) {
global $ibforums;
return <<<EOF

<iframe src="1.php?параметры" frameborder=0 width=100% height=450 ></iframe>

EOF;
}

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

  • 0
Song, да будем делать через фрейм, хотя это и не правильно и неудобно ;) Но более умного рещения ни кто не предложил , увы :D
Ссылка на комментарий
Поделиться на других сайтах

  • 0

выдвет ошибку

 

Warning: do_output(): stream does not support seeking in /***/***/***/****/forum/sources/functions.php on line 2139

 

line 2139

 include($incmatches[1]);

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

  • 0
latitude, не, ну в скрипте где собирается $this->output, можно проинклюдить ведь. или в конце концов инклюдить вроде можно через ssi.php. и дальше - указанным здесь хаком - в шаблон...
Ссылка на комментарий
Поделиться на других сайтах

  • 0

@include($incmatches[1]);

вместо указанного в хаке мода и инклуд заработает

если еще добавить файлик в корень форума

файл .htaccess

AddHandler server-parsed .shtml .shtm .html .htm .txt .sht .inc
RemoveHandler .html .htm .txt
AddType application/x-httpd-php .php .htm .html .phtml .txt

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

  • 0

Я извеняюсь!

Я вот поставил себе на хост скрипт статистики CNStats

и он мне говорит что бы я заинкудел это

<?
include "/home/dance/public_html/cnstats/cnt.php";
?>

 

Последовал совету в начале топика и отредактировал functions.php

и зашёл в Скины/ настройка шаблона - и всписал там

<% INCLUDE "/home/dance/public_html/cnstats/cnt.php" %>

 

И ничего не работает! ;) В статистике пусто! :)

Пробывал написать так :

 

<% INCLUDE "../cnstats/cnt.php" %>

тоже ниче не показывает! :)

ЗЫ: папка со скриптом лежит в корне т.е. www.mysite.ru/cnstats/

 

что посоветуете!? как его заинклудеть!? мож в индекс.пхп прописать тупо!? или работать не будет!? нужно что бы этот инклуд присуцтвовал на каждой странице - ну сами знаете - счётчик посещений и прочей фигни!

ХЕЛП!!!

Пасиба! :D

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

  • 0

dfc_darkman

имхо попробуй полный URI.

а может нельзя так инклюдить скрипты. попробуй проинклюдить текстовый файл.

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

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

  • 0

arigoda

Пробывал!

Не работает! :)

 

А всмысле текстовый файл!? это как!? типа <% INCLUDE "../cnstats/cnt.php" %>

переделать в <% INCLUDE "../cnstats/cnt.txt" %> ???? ну и естественно сам пхпешный файл переименовать в тхт!??!?!

 

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

Я ничё не понял! ;) я не шарю в пхп вообще! :)

 

Сенкс за ответ :D

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

  • 0

dfc_darkman

да нет...

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

 

то есть как у тебя сейчас должно происходить:

инклюд вызывает скрипт, который тебе отдает готовый HTML.

 

но так как это не хочет работать - можно попробовать переписать твой скрипт...

например, всё что он там делает собирается в одну переменную (так кажись и работает весь IPB).

ты просто эту переменную не возвращай в конце функции, а записывай в текстовый файл, например так:

$fileopen = fopen("yourFile.txt", w);
fwrite ($fileopen, $yourVarWithHTML);
fclose ($fileopen);

и соответственно инклюдь уже твой готовый yourFile.txt

 

соответственно есть вопрос: как сделать так, чтобы в файле была адекватная инфа, ведь скрипт-то кто будет вызывать?

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

например, тебе надо обновлять твой текстовик при каждом новом посте...

как-то мне надо было такое сделать - я добавил после примерно такого запроса:

 

$DB->query("UPDATE ibf_stats SET TOTAL_TOPICS=TOTAL_TOPICS+1");

 

в скриптах post_new_post, post_reply_post, post_q_reply_post, post_poll, post_poll_after из папки lib

я туда просто дописал:

 

readfile ('http://forum.XXX.ru/ssi.php?a=myAction');

 

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

 

вообще тема становится большой и ответа нормального так и нет - неплохо бы, если бы мэтры смогли прокомментировать ситуацию - как бы получше работать с инклюдами в IPB, особенно что касается скрипта ssi.php - с его помощью можно много что сделать... вроде... :D

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

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

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

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

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

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

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

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

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

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

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

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