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

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

Было бы неплохо доработать хак Links при работе в портале, чтобы была возможность из админки разрешить на главной странице портала выпадающее меню(типа быстрого перехода) с названиями сайтов и ссылками на них.

 

Портал - это ведь совокупность сайтов-участников. Верно?

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

  • 1 месяц спустя...

Имеется портал с WebLinks v 2.5. Добавлен ещё один блок на главную страницу в котором хотелось бы разместить популярные ссылки здесь "Popular Web Links" Правда там версия 1.2 :D

 

Как это можно сделать? Портал с установленным хаком WebLinks v 2.5 можно посмотреть здесь

 

Написал бы автору хака WebLinks (это его сайт в качестве примера) - да языками не владею ;)

Может поможет кто?

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

С языком попробуй обратиться в приват к IgorekM. У него с английским проблем нет. Возможно поможет!

 

А вообще там не сложно составить правильно запрос. Пришли мне в Приват html код как тебе надо, может попробую что-нибудь!

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

Weblinks 2.5 я у себя не нашел ;)

Взглянув на разные порталы с разных i-maxi и поняв почти идентичность решил делать все на i-maxi v1.4. Но должно (на 95% уверен, что так и будет) работать и под weblinks 2.5 и портал v3.2 :D

Итак я вижу ты парень не новичок. Так что если что где поправить придется ты я думаю сможешь под себя также все настроить. Так сначала заходим в Portal.php там находим список всех функций. Они начинаются со строки:

// gather information

добавляем туда ссылку на нашу функцию популярных ссылок:

$this->data['pop_links']=$this->pop_links();

Далее ниже, между любыми функциям вставляем саму функцию, которая вытягивает из базу 10 популярных ссылок отсортированных по количеству хитов:

    //*********************************************/
   // Popular Links (oska modified popular links)
   //*********************************************/
   function pop_links()
   {
       global $DB, $ibforums, $std;
       
       $DB->query( "SELECT * FROM ibf_links WHERE status!='pending' AND popular='1' ORDER BY hits DESC LIMIT 0,10");
       while( $infa = $DB->fetch_row() ) {
                       $links.= "<a href='{$ibforums->board_url}?act=Links&CODE=03&lid=".$infa[lid]."'>".$infa['title']."</a><br>";
               }

               return $this->html->popular_links($links);
    }

 

 

Так. В функции идет ссылка на popular_links. Это есть шаблон. Они у нас хранятся в skin_portal.php

 

Опять между 2 любыми функциями добавляем куда-нибудь следующее(поправишь под себя, если что. я думаю с html проблем нет):

function popular_links($data) {
global $ibforums;
return <<<EOF
<table cellpadding='0' cellspacing='0' border='0' width='100%' class='tableborder' align='center'>
     <tr>
       <td>
         <table cellpadding='4' cellspacing='1' border='0' width='100%'>
          <tr>
            <td colspan='2' class='maintitle' background='{$ibforums->vars['img_url']}/tile_sub.gif'><b>Популярные ссылки</b></td>
          </tr>
          <tr>
                <td class='row4' colspan='2'>
                    {$data}<br>
              [<a href='{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}?s={$ibforums->session_id}&act=Links'>more links</a>]
                    </td>
              </tr>           
             </table>
            </td>
          </tr>
         </table>
<br>
EOF;
}

 

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

 

Функция со всеми элементами называется render_portal.

Туда-то и где надо вставляем код:

{$data['pop_links']}

 

Вот так. Жду комментариев. А то мало ли работать не будет. Все-таки делал на 1.2 :)

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

Поставил - всё ОК. Огромное спасибо!

Кое что пришлось поправить и добавить(выделено красным), чисто косметически :D :

В файле skin_portal.php:

 

function popular_links($data) {

global $ibforums;

return <<<EOF

<table cellpadding='0' cellspacing='0' border='0' width='100%' bgcolor='<{tbl_border}>' align='center'>

  <tr>

    <td>

      <table cellpadding='4' cellspacing='1' border='0' width='100%'>

          <tr>

            <td colspan='2' class='maintitle' background='{$ibforums->vars['img_url']}/tile_sub.gif'><b>Популярные сайты</b></td>

          </tr>

          <tr>

                <td class='forum2' colspan='2'>

                    <ul>{$data}</ul><br>

              <center>[<a href={$ibforums->vars['board_url]}/index.{$ibforums->vars['php_ext']}?s={$ibforums->session_id}&act=Links'>more links</a>]</center>

                    </td>

              </tr>       

          </table>

            </td>

          </tr>

      </table>

<br>

EOF;

}

 

И в файле Portal.php:

//*********************************************/

// Popular Links (oska modified popular links)

//*********************************************/

function pop_links()

{

    global $DB, $ibforums, $std;

   

    $DB->query( "SELECT * FROM ibf_links WHERE status!='pending' AND popular='1' ORDER BY hits DESC LIMIT 0,10");

    while( $infa = $DB->fetch_row() ) {

                    $links.= "<li><a href='{$ibforums->board_url}?act=Links&CODE=03&lid=".$infa[lid]."'></li>".$infa['title']."</a><br>";

            }

 

            return $this->html->popular_links($links);

    }

 

На результат можно посмотреть здесь

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

А как бы это сделать, чтобы около ссылки в скобках было число переходов(т.е. числовая величина "популярности" ссылки)? Как в приведённом примере
Ссылка на комментарий
Поделиться на других сайтах

В Portal.php изменить строчку. Внести туда изменения. Вот так наверно ты хочешь:

$links.= "<li><a href='{$ibforums->board_url}?act=Links&CODE=03&lid=".$infa[lid]."'></li>".$infa['title']."</a> (".$infa['hits'].")<br>";

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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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

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

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