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

Возможно в IPDL добавить блоки из iBFPortal4.0?


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

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

Ну так это можно организовать, вставив необходимые функции из Portal.php в csite.php, также из skin_portal.php в skin_csite.php! И добавив пару настроек аналогично! Это ведь не очень сложно!
Ссылка на комментарий
Поделиться на других сайтах

ОК. Покажу тут, когда время будет для одной функции, и что и куда я вставлял. Остальное я думаю по аналогии можно будет забабахать :D
Ссылка на комментарий
Поделиться на других сайтах

Как перенести функцию из IBF Portal 4.0 в IPDynamicLite?

1. Заходим в Skin/../skin_portal.php

Находим function render_portal

Это основной шаблон всего. Выбираем то, что нужно. Например, {$data['top_forums']}

2. Заходим в Portal.php от IBF Portal 4.0

Там находим эту переменную (в начале файла где перечисляется список функций) $this->data['top_forums']

Ей соответствует функция - do_top_forums()

Ищем ее ниже в файле!

 

Полностью копируем ее:

function do_top_forums() {
           global $DB, $ibforums, $std;

           if ($ibforums->vars['portal_top_forums'])
           {
           if ($ibforums->vars['portal_num_top_forums'])
              $number_of_forums = $ibforums->vars['portal_num_top_forums'];
           else
              $number_of_forums = 5;            

           // Get User Data
           $query = $DB->query( "SELECT f.* FROM ibf_forums AS f WHERE f.read_perms = '*' OR f.read_perms LIKE '".$ibforums->member['mgroup']."' OR f.read_perms LIKE '%,".$ibforums->member['mgroup']."' OR f.read_perms LIKE '".$ibforums->member['mgroup'].",%' OR f.read_perms LIKE '%,".$ibforums->member['mgroup'].",%' ORDER BY (topics+posts) DESC LIMIT 0,".$number_of_forums );

           $rating = 0;
               while( $row = $DB->fetch_row($query) ) {
                   $rating++;
                   $data.= $this->html->top_forums_row($row+array("rating"=>$rating));
               }

               return $this->html->top_forums($data);
           }
       else
       {
           return '';
       }        
   }

 

Копируем и вставляем аналогично в sources/dynamiclite/csite.php

Смотрим в этой функции обращения к шаблонам. Он начинаются записью $this->html. В нашем примере таких функций шаблонов 2:

top_forums_row и top_forums.

Ищем их в skin_portal.php

и копируем аналогично в skin_csite.php

 

Теперь в основной шаблон в IPDynamicLite надо вставить, чтобы вставлялась наша функция, для этого в sources/dynamiclite/csite.php среди этих строк (перечисляющих функции):

$this->site_bits['welcomebox']     = $this->_show_welcomebox();
   	$this->site_bits['search']         = $this->_show_search();
   	$this->site_bits['changeskin']     = $this->_show_changeskin();
   	$this->site_bits['sitenav']        = $this->_show_sitenav();
   	$this->site_bits['onlineusers']    = $this->_show_onlineusers();
   	$this->site_bits['poll']           = $this->_show_poll();
   	$this->site_bits['latestposts']    = $this->_show_latestposts();
   	$this->site_bits['recentarticles'] = $this->_show_recentarticles();
   	$this->site_bits['articles']       = $this->_show_articles();
   	$this->site_bits['affiliates']     = $this->_show_affiliates();

Придумываем название нашей (слева)и вставляем в этот список. Справа мы берем имя то функции, которую вставляли. Получилось примерно так:

$this->site_bits['welcomebox']     = $this->_show_welcomebox();
   	$this->site_bits['search']         = $this->_show_search();
   	$this->site_bits['changeskin']     = $this->_show_changeskin();
   	$this->site_bits['sitenav']        = $this->_show_sitenav();
   	$this->site_bits['onlineusers']    = $this->_show_onlineusers();
   	$this->site_bits['poll']           = $this->_show_poll();
   	$this->site_bits['latestposts']    = $this->_show_latestposts();
   	$this->site_bits['recentarticles'] = $this->_show_recentarticles();
   	$this->site_bits['articles']       = $this->_show_articles();
   	$this->site_bits['affiliates']     = $this->_show_affiliates();
$this->site_bits['topforums']     = $this->do_top_forums();

 

Теперь в основной шаблон в файле skin_csite.php (этим является function csite_skeleton_template)

вставляем туда, куда надо вставить наш вывод следующее:

<!--CS.TEMPLATE.ЗДЕСЬ_ИМЯ_ПЕРЕМЕННОЙ_КОТОРАЯ_ИДЕТ_СЛЕВА В СПИСКЕ НИЖЕ->

 

У нас получается это - <!--CS.TEMPLATE.TOPFORUMS-->

 

Так как почти все функции вывода в IBf Portal зависят от значений в файле конфигурации (conf_global.php), они же меняются через AdminCP в настройках портала!

Т.к. в IPDynamicLite таких значений вам придется вручную разрешить использование нашей функции, добавив необходимый параметр со значением в conf_global.php

Смотрим на ту функцию do_top_forums, которую мы добавили в файл csite.php. Сразу видно, что проверка идет на переменные: portal_top_forums и portal_num_top_forums!

Также отсюда понятно, что если в cong_global.php мы не зададим количество вывода - portal_num_top_forums, то он по умолчанию равен 5! Значит мы не будем вдаваться в подробности и добавим в conf_global.php только такую строку:

$INFO['portal_top_forums'] = '1';

 

Тем самым включив эту нашу функцию. Ну а уж лэнги поправить и шаблоны это не мое дело, а ваше!

 

Вопросы сюда же :D

 

 

Добавлено:

Как перенести функцию из IBF Portal 4.0 в IPDynamicLite?

1. Заходим в Skin/../skin_portal.php

Находим function render_portal

Это основной шаблон всего. Выбираем то, что нужно. Например, {$data['top_forums']}

2. Заходим в Portal.php от IBF Portal 4.0

Там находим эту переменную (в начале файла где перечисляется список функций) $this->data['top_forums']

Ей соответствует функция - do_top_forums()

Ищем ее ниже в файле!

 

Полностью копируем ее:

function do_top_forums() {
           global $DB, $ibforums, $std;

           if ($ibforums->vars['portal_top_forums'])
           {
           if ($ibforums->vars['portal_num_top_forums'])
              $number_of_forums = $ibforums->vars['portal_num_top_forums'];
           else
              $number_of_forums = 5;            

           // Get User Data
           $query = $DB->query( "SELECT f.* FROM ibf_forums AS f WHERE f.read_perms = '*' OR f.read_perms LIKE '".$ibforums->member['mgroup']."' OR f.read_perms LIKE '%,".$ibforums->member['mgroup']."' OR f.read_perms LIKE '".$ibforums->member['mgroup'].",%' OR f.read_perms LIKE '%,".$ibforums->member['mgroup'].",%' ORDER BY (topics+posts) DESC LIMIT 0,".$number_of_forums );

           $rating = 0;
               while( $row = $DB->fetch_row($query) ) {
                   $rating++;
                   $data.= $this->html->top_forums_row($row+array("rating"=>$rating));
               }

               return $this->html->top_forums($data);
           }
       else
       {
           return '';
       }        
   }

 

Копируем и вставляем аналогично в sources/dynamiclite/csite.php

Смотрим в этой функции обращения к шаблонам. Он начинаются записью $this->html. В нашем примере таких функций шаблонов 2:

top_forums_row и top_forums.

Ищем их в skin_portal.php

и копируем аналогично в skin_csite.php

 

Теперь в основной шаблон в IPDynamicLite надо вставить, чтобы вставлялась наша функция, для этого в sources/dynamiclite/csite.php среди этих строк (перечисляющих функции):

$this->site_bits['welcomebox']     = $this->_show_welcomebox();
   	$this->site_bits['search']         = $this->_show_search();
   	$this->site_bits['changeskin']     = $this->_show_changeskin();
   	$this->site_bits['sitenav']        = $this->_show_sitenav();
   	$this->site_bits['onlineusers']    = $this->_show_onlineusers();
   	$this->site_bits['poll']           = $this->_show_poll();
   	$this->site_bits['latestposts']    = $this->_show_latestposts();
   	$this->site_bits['recentarticles'] = $this->_show_recentarticles();
   	$this->site_bits['articles']       = $this->_show_articles();
   	$this->site_bits['affiliates']     = $this->_show_affiliates();

Придумываем название нашей (слева)и вставляем в этот список. Справа мы берем имя то функции, которую вставляли. Получилось примерно так:

$this->site_bits['welcomebox']     = $this->_show_welcomebox();
   	$this->site_bits['search']         = $this->_show_search();
   	$this->site_bits['changeskin']     = $this->_show_changeskin();
   	$this->site_bits['sitenav']        = $this->_show_sitenav();
   	$this->site_bits['onlineusers']    = $this->_show_onlineusers();
   	$this->site_bits['poll']           = $this->_show_poll();
   	$this->site_bits['latestposts']    = $this->_show_latestposts();
   	$this->site_bits['recentarticles'] = $this->_show_recentarticles();
   	$this->site_bits['articles']       = $this->_show_articles();
   	$this->site_bits['affiliates']     = $this->_show_affiliates();
$this->site_bits['topforums']     = $this->do_top_forums();

 

Теперь в основной шаблон в файле skin_csite.php (этим является function csite_skeleton_template)

вставляем туда, куда надо вставить наш вывод следующее:

<!--CS.TEMPLATE.ЗДЕСЬ_ИМЯ_ПЕРЕМЕННОЙ_КОТОРАЯ_ИДЕТ_СЛЕВА В СПИСКЕ НИЖЕ->

 

У нас получается это - <!--CS.TEMPLATE.TOPFORUMS-->

 

Так как почти все функции вывода в IBf Portal зависят от значений в файле конфигурации (conf_global.php), они же меняются через AdminCP в настройках портала!

Т.к. в IPDynamicLite таких значений вам придется вручную разрешить использование нашей функции, добавив необходимый параметр со значением в conf_global.php

Смотрим на ту функцию do_top_forums, которую мы добавили в файл csite.php. Сразу видно, что проверка идет на переменные: portal_top_forums и portal_num_top_forums!

Также отсюда понятно, что если в cong_global.php мы не зададим количество вывода - portal_num_top_forums, то он по умолчанию равен 5! Значит мы не будем вдаваться в подробности и добавим в conf_global.php только такую строку:

$INFO['portal_top_forums'] = '1';

 

Тем самым включив эту нашу функцию. Ну а уж лэнги поправить и шаблоны это не мое дело, а ваше!

 

Вопросы сюда же ;)

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

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

Огромное спасибо, но у меня неборльшая проблема, вообще-то их 2:

во-первых, новый блок у меня без заголовка, как его добавить?

во-вторых, новый блок у меня "приклеивается" к верхнему блоку - почему? как его сделать отдельным? только когда я <!--CS.TEMPLATE.TOPFORUMS--> ставлю в самый верх над остальными блоками - тогда он весит отдельно, но он мне не очень нравится "торчащим" над всеми остальными, ещё раз повотряю - ОГРОМНОЕ СПАСИБО, благодаря тебе я свой портал сделаю ядерным :D

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

-первых, новый блок у меня без заголовка, как его добавить

что ты понимаешь под заголовком? Приведи пример пожалуйста!

вторых, новый блок у меня "приклеивается" к верхнему блоку - почему? как его сделать отдельным? только когда я <!--CS.TEMPLATE.TOPFORUMS--> ставлю в самый верх над остальными блоками - тогда он весит отдельно, но он мне не очень нравится "торчащим" над всеми остальным

 

Скриншотики хорошо бы увидеть, чтобы понять, что там с чем склеивается!

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

Спасибо за помощь, но я предпочёл установить iBFPortal-v4-0, он меня больше устраивает чем IPDL, я просто хотел как бы объединить их, но слишком это муторно :D Спасибо!
Ссылка на комментарий
Поделиться на других сайтах

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

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

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

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

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

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

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

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

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

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

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