1. Важное и срочное обновление IPB 3.4.5 - https://nulled.cc/threads/243375/

[Помощь] Последние сообщения

Тема в разделе "IPB", создана пользователем KveSteR, 18 сен 2009.

Статус темы:
Закрыта.
Модераторы: Maybe
  1. KveSteR

    KveSteR Постоялец

    Регистр.:
    19 апр 2007
    Сообщения:
    70
    Симпатии:
    5
    Последние сообщения (Latest Post), для вывода на сайт

    Был такой замечательный мод Latest Post для двушки. С его помощью на сайте можно было выводить список последних постов форума.
    Привожу код:
    PHP:
    <?
    // ******************************************* //
    // Оригинальная идея Miles Johnson.            //
    // Дополнение: HungerGhost                     //
    //             Schnapz                         //
    //             mrMad-Cat                       // 
    // Дополнительная информация в readme.html     //
    // ******************************************* //
    $i=1;
    $posts 10;
    $showtopiclength 1;
    $topiclength 35;
    $forumexclude "26";
    $datedisplay 'd F Y';
    // Скрипт работает на российском 24х часовом формате показа времени
    // Так что следующие две строки не меняем :)
    $hours_display='H';
    $minutes_display 'i';
    // Сюда вводим размер коррекции по часам и по минутам
    // Если не нужны - ставим нули
    $hours_corrector 0;
    $minutes_corrector 0;
    require 
    "ips_kernel/class_db_mysql.php";
    require 
    "conf_global.php";
    $db = new db_driver_mysql;
    $db->obj['sql_database'] = $INFO['sql_database'];
    $db->obj['sql_user'] = $INFO['sql_user'];
    $db->obj['sql_pass'] = $INFO['sql_pass'];
    $db->obj['sql_host'] = $INFO['sql_host'];
    $db->obj['sql_tbl_prefix'] = $INFO['sql_tbl_prefix'];
    $db->connect();
    ob_start();
    $getposts $db->query("SELECT posts, last_poster_name, last_poster_id, title, tid, forum_id, last_post FROM ibf_topics WHERE (forum_id NOT IN ($forumexclude)) ORDER BY last_post DESC LIMIT $posts");
    while (
    $post $db->fetch_row($getposts)) {
    $post[full_title] = $post[title];
    if (
    $showtopiclength == AND strlen($post[full_title]) > $topiclength) {
    $post[short_title] = substr($post[full_title],0,$topiclength);
    $post[short_title] = $post[short_title]."...";
    }
    else {
    $post[short_title] = $post[full_title];
    }
    $posted_on date($datedisplay$post[last_post]);
    $today_date date($datedisplaytime());
    $hours_edited substr(date($hours_display$post[last_post]),0,2);
    $hours_edited $hours_edited $hours_corrector;
    if (
    $hours_edited == 24) {$hours_edited "00";}
    if (
    $hours_edited 24) {$hours_final =$hours_edited 24$hours_edited "0".$hours_final;}
    $minutes_edited substr(date($minutes_display$post[last_post]),0,2);
    $minutes_edited $minutes_edited $minutes_corrector;
    if (
    $minutes_edited == 60) {$minutes_edited "00";}
    if (
    $minutes_edited 60) {$minutes_final $minutes_edited 60;    } else {$minutes_final $minutes_edited; }
    if (
    $minutes_final 10) {
    $time_edited $hours_edited.":0".$minutes_edited; }
    else
    {
    $time_edited $hours_edited.":".$minutes_edited;
    }
    If (
    $posted_on == $today_date) {
    $datefield "Сегодня";
    $datefield $datefield ", " $time_edited;
    }
    elseif (
    date('d F Y',strtotime("-1 day")) == $posted_on) {
    $datefield "Вчера";
    $datefield $datefield ", " .$time_edited;
    }
    else {
    $datefield $posted_on;
    }
    // Вывод информации (Вы можете изменить вывод для своего дизайна сайта, примеры представлены в readme.html)
    echo
    <<<EOD
    <li>
    <noindex><a rel="nofollow" href="
    $INFO[board_url]/index.php?showtopic=$post[tid]&view=getnewpost">$post[short_title]</a><br><span class="meta">[<a href="$INFO[board_url]/index.php?showuser=$post[last_poster_id]">$post[last_poster_name]</a> - $datefield]</span><br></noindex>
    </li>
    EOD;
    }
    $tmp ob_get_contents();
    ob_end_clean();
    echo 
    iconv('CP1251','UTF-8'$tmp);
    ?>
    Может кто адаптирует кто адаптирует к IPB 3.0.*? очень нужен, думаю и не одному мне полезен будет.
     
  2. KveSteR

    KveSteR Постоялец

    Регистр.:
    19 апр 2007
    Сообщения:
    70
    Симпатии:
    5
    Мод очень нужен, кто нибудь адаптирует за деньги?
     
  3. Dart

    Dart Создатель

    Регистр.:
    23 июл 2007
    Сообщения:
    43
    Симпатии:
    39
    Рекомендовал бы вам поставить unreal portal(чем мучатся с хуком), там это уже все есть и красиво смотрится все.
    Сначала идет портал, там есть блок последние сообщения, последние новости и прочее. Настраивается легко и просто в админке.
     
  4. Revenge-R

    Revenge-R Mr. Revenge-R

    Регистр.:
    6 фев 2009
    Сообщения:
    897
    Симпатии:
    319
    url include врубите и пользуйтесь ssl.php для вывода. Уже обсуждали. Зачем вам этот велосипед.
     
  5. AndrewDK

    AndrewDK

    Регистр.:
    8 фев 2009
    Сообщения:
    247
    Симпатии:
    58
    ccылку можно плиз на обсуждение, а то я нифига не понял.
     
  6. Revenge-R

    Revenge-R Mr. Revenge-R

    Регистр.:
    6 фев 2009
    Сообщения:
    897
    Симпатии:
    319
  7. alex_omega

    alex_omega Постоялец

    Регистр.:
    28 окт 2008
    Сообщения:
    87
    Симпатии:
    3
    Помогите с этим скриптом...
    Все настроил и подчистил под WP, но с кодировкой проблемы :(
    Вот код:
    HTML:
    <? 
    // ******************************************* // 
    // Оригинальная идея Miles Johnson.            // 
    // Дополнение: HungerGhost                     // 
    //             Schnapz                         // 
    //             mrMad-Cat                       //  
    // Дополнительная информация в readme.html     // 
    // ******************************************* // 
    $i=1; 
    $posts = 10; 
    $showtopiclength = 1; 
    $topiclength = 35; 
    $forumexclude = "26"; 
    $datedisplay = 'd F Y'; 
    // Скрипт работает на российском 24х часовом формате показа времени 
    // Так что следующие две строки не меняем :) 
    $hours_display='H'; 
    $minutes_display = 'i'; 
    // Сюда вводим размер коррекции по часам и по минутам 
    // Если не нужны - ставим нули 
    $hours_corrector = 0; 
    $minutes_corrector = 0; 
    require "/data0/customers/motor.ck.ua/forum/ips_kernel/class_db_mysql.php"; 
    require "/data0/customers/motor.ck.ua//forum/conf_global.php"; 
    $db = new db_driver_mysql; 
    $db->obj['sql_database'] = $INFO['sql_database']; 
    $db->obj['sql_user'] = $INFO['sql_user']; 
    $db->obj['sql_pass'] = $INFO['sql_pass']; 
    $db->obj['sql_host'] = $INFO['sql_host']; 
    $db->obj['sql_tbl_prefix'] = $INFO['sql_tbl_prefix']; 
    $db->connect(); 
    ob_start(); 
    $getposts = $db->query("SELECT posts, last_poster_name, last_poster_id, title, tid, forum_id, last_post FROM ibf_topics WHERE (forum_id NOT IN ($forumexclude)) ORDER BY last_post DESC LIMIT $posts"); 
    while ($post = $db->fetch_row($getposts)) { 
    $post[full_title] = $post[title]; 
    if ($showtopiclength == 1 AND strlen($post[full_title]) > $topiclength) { 
    $post[short_title] = substr($post[full_title],0,$topiclength); 
    $post[short_title] = $post[short_title]."..."; 
    } 
    else { 
    $post[short_title] = $post[full_title]; 
    } 
    $posted_on = date($datedisplay, $post[last_post]); 
    $today_date = date($datedisplay, time()); 
    $hours_edited = substr(date($hours_display, $post[last_post]),0,2); 
    $hours_edited = $hours_edited + $hours_corrector; 
    if ($hours_edited == 24) {$hours_edited = "00";} 
    if ($hours_edited > 24) {$hours_final =$hours_edited - 24; $hours_edited = "0".$hours_final;} 
    $minutes_edited = substr(date($minutes_display, $post[last_post]),0,2); 
    $minutes_edited = $minutes_edited + $minutes_corrector; 
    if ($minutes_edited == 60) {$minutes_edited = "00";} 
    if ($minutes_edited > 60) {$minutes_final = $minutes_edited - 60;    } else {$minutes_final = $minutes_edited; } 
    if ($minutes_final < 10) { 
    $time_edited = $hours_edited.":0".$minutes_edited; } 
    else 
    { 
    $time_edited = $hours_edited.":".$minutes_edited; 
    } 
    If ($posted_on == $today_date) { 
    $datefield = "Сегодня"; 
    $datefield = $datefield . ", " . $time_edited; 
    } 
    elseif (date('d F Y',strtotime("-1 day")) == $posted_on) { 
    $datefield = "Вчера"; 
    $datefield = $datefield . ", " .$time_edited; 
    } 
    else { 
    $dates[January]="Января";
    $dates[February]="Февраля";
    $dates[March]="Марта";
    $dates[April]="Апреля";
    $dates[May]="Мая";
    $dates[June]="Июня";
    $dates[July]="Июля";
    $dates[August]="Августа";
    $dates[September]="Сентября";
    $dates[October]="Октября";
    $dates[November]="Ноября";
    $dates[December]="Декабря";
      $day = date('d', $post[last_post]);
      $month_key = date('F', $post[last_post]);
      $datefield = $day . " " . $dates[$month_key];
    $db->close_db();
    } 
    // Вывод информации (Вы можете изменить вывод для своего дизайна сайта, примеры представлены в readme.html) 
    echo 
    <<<EOD
    <li>
    <a href="/forum/index.php?showtopic=$post[tid]&view=getnewpost" target="_top">$post[short_title]</a><BR>
    <font size="-10">от <i><a href="/forum/index.php?showuser=$post[last_poster_id]" target="_top">$post[last_poster_name]</a> - $datefield</i></font>
    </li>
    EOD;
    $i++;
    }
    $tmp = ob_get_contents(); 
    ob_end_clean(); 
    echo iconv('CP1251','UTF-8', $tmp); 
    ?>
    а вот что выводит (см.картинку)
    Причем название тем в нормальной кодировке, а строка ниже
    слово "от" и дата "сегодня", "вчера" или название месяца - в мазямбах.
     

    Вложения:

    • 333.jpg
      333.jpg
      Размер файла:
      46,9 КБ
      Просмотров:
      19
  8. KveSteR

    KveSteR Постоялец

    Регистр.:
    19 апр 2007
    Сообщения:
    70
    Симпатии:
    5
    Попробуй сам скрипт пересохранить в нжной кодировке.
     
  9. alex_omega

    alex_omega Постоялец

    Регистр.:
    28 окт 2008
    Сообщения:
    87
    Симпатии:
    3
    кстати, если убрать эту строку в коде
    HTML:
    echo iconv('CP1251','UTF-8', $tmp); 
    то получается ровно наоборот: тема форума в мазямбах, а от кого и дата - читабельно

    Добавлено через 7 минут
    Я вписал в страницу код
    HTML:
    <script language='JavaScript' src='/forum/latest_post.php'></script>
    но просмотрев папку /forum/ этого файла latest_post.php я не нашел :nezn:
    но работает и без него. странно.
     
  10. KveSteR

    KveSteR Постоялец

    Регистр.:
    19 апр 2007
    Сообщения:
    70
    Симпатии:
    5
    Ту строку я дописывал, потому что форум в CP1251, а сайт UTF-8. Неудевительно что кракозябры вылазят если ее убрать. Скрипт вставь инклюдингом, и посмотри в какой кодировке он сохранен сейчас?
     
Статус темы:
Закрыта.