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

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

Было бы неплохо доработать хак 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>";

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

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

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

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

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

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

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

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

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

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

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

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