• Страница 1 из 1
  • 1
Модератор форума: LightInDarkness  
[Скрипт] Вывод последних $n тем из форума IPB
Quintessence
Центурион
Вчера нечем было вечером заняться, решил посмотреть структуры баз IPB.
Появилась вот такая идея:)
Сам код:
Код

               <? $dbip = '127.0.0.1';    //IP базы данных
             $dblogin = 'ggh';          //Имя пользователя базы данных
             $dbpass = 'gght';           //Пароль пользователя базы данных
             $fdb = 'forum_ipb';                //База данных форума
             $site_f_url = '127.0.0.1/forum';  //Адрес форума (127.0.0.1/forum или forum.127.0.0.1) !без http://!
             $n ='10';                  // Колличество выводимых тем

$connect = mysql_connect("$dbip1","$dblogin1","$dbpass1") or die ("нет соединения с базой данных");
mysql_select_db("$fdb") or die ("нет соединения с базой forums");
$forums = "SELECT tid, title FROM topics order by `start_date` desc LIMIT $n";
mysql_query('SET NAMES CP1251');
$titles = mysql_query ($forums) or die ("Нет такой таблицы");
?><center><h2>Последние темы</h2></center>
<table border=0 width=100%><tr>          
<?          
$forum_table = mysql_num_rows($titles);
for($i=0;$i<$forum_table;$i++) {
           $row = mysql_fetch_array($titles);          
           $tid = $row['tid'];           
$title = $row['title'];          
echo "<tr align=left><td height='18'>
<a href=\"http://$site_f_url/index.php?/topic/$tid-$tid/\"\><font style=\"color: #000; text-shadow: #4399FF 2px 2px 5px, #4399FF -2px -2px 5px, #4399FF 2px -2px 5px, #4399FF -2px 2px 5px;\">$title</font></a></td></tr>";
          }
          @mysql_close($connect);
          ?>
          </table>

Посмотреть, как все это выглядит, можно на моем веб-сайте, ссылка в подписи.
Только что отредактировал на скорую руку, добавил переменных и мини конфиг...
Если есть ошибки, исправляйте;)

Исправил ошибочку, обновил.
Уникальный рейтинг серверов http://rtop.biz
RTOP на WoWJP
Сообщение # 1 отредактировано Sherlоck - Среда, 05.02.2014, 18:51
Нео6итаемый
Скаут
позже тестану, если робит то гуд.
Сообщение # 2 написано 13.03.2012 в 10:20
Quintessence
Центурион
Дополнил закрытие MySQL соединения.
Уникальный рейтинг серверов http://rtop.biz
RTOP на WoWJP
Сообщение # 3 написано 13.03.2012 в 15:38
Mago_De_Sombra
Маршал
Code
         $fh = 'forum';             //Деректива форума(forum)  
         $n ='10';                  //константа колличества выводимых т


спасибо, поржал
Сообщение # 4 написано 13.03.2012 в 15:53
Quintessence
Центурион
Просто у всех может быть разный путь до папки форума.

Добавлено (13.03.2012, 16:11)
---------------------------------------------
Сейчас подумал о поддоменах...
Сделаю универсальный метод:)

Уникальный рейтинг серверов http://rtop.biz
RTOP на WoWJP
Сообщение # 5 написано 13.03.2012 в 16:11
TheChosenOne
FUS RO DAH
Quote (Mago_De_Sombra)
//Деректива форума(forum)  

Quote (Mago_De_Sombra)
//константа колличества выводимых т

Намекаю, что ржали над комментариями. Специально для тебя:
http://ru.wikipedia.org/wiki/Директива_(программирование)
http://ru.wikipedia.org/wiki/Константа_(программирование)

Добавлено (13.03.2012, 16:20)
---------------------------------------------
Сообщение # 6 отредактировано TheChosenOne - Вторник, 13.03.2012, 16:32
Quintessence
Центурион
Ну это все великий и магучий русский язык:)
Константа - неизменимое число
Директиву перепутал с директорией;) да, бывает и такое...

Может скажете что-нибудь по поводу кода? На ошибки укажете?
Уникальный рейтинг серверов http://rtop.biz
RTOP на WoWJP
Сообщение # 7 написано 13.03.2012 в 17:36
TheChosenOne
FUS RO DAH
Quote (Quintessence)
число

Так почему оно в кавычках?!
Сообщение # 8 написано 13.03.2012 в 17:40
Mago_De_Sombra
Маршал
Quote (Quintessence)
Константа - неизменимое число


Code

define ( 'RESULT', 'Quintessence_Lamer' );  


RESULT - не константа? Почему? Потому, что не целое число?

Quote (TheChosenOne)
Так почему оно в кавычках?!


Потому, что у него переменная.
И присвоить ей значение (в данном случае 10) можно как типа integer (без ковычек), так и типа string (с ковычками).
И назвать переменную константой - это всё равно что назвать членом сапёрскую лопатку
Сообщение # 9 написано 13.03.2012 в 17:45
TheChosenOne
FUS RO DAH
Quote (Mago_De_Sombra)
Потому, что у него переменная. И присвоить ей значение (в данном случае 10) можно как типа integer (без ковычек), так и типа string (с ковычками).

Это я знаю, но если он сам сказал, что там число, очевидно же, что надо без кавычек smile

Добавлено (13.03.2012, 17:48)
---------------------------------------------
Хотя, пока в php не ввели всякую там скалярщину, можно забить.

Сообщение # 10 написано 13.03.2012 в 17:48
Mago_De_Sombra
Маршал
ну php - не язык строго типизации.
в данном случае плевать, какой тип будет.
Сообщение # 11 написано 13.03.2012 в 17:49
TheChosenOne
FUS RO DAH
А вообще, можно было не выё... и написать //Кол-во выводимых тем
Сообщение # 12 написано 13.03.2012 в 17:53
Quintessence
Центурион
TheChosenOne, я уже тоже об этом подумал, а то развели флуда...

Добавлено (13.03.2012, 18:20)
---------------------------------------------
Ну что, неламер, твоя душа спокойна?:)
Троллить, кстати, было не обязательно.

Уникальный рейтинг серверов http://rtop.biz
RTOP на WoWJP
Сообщение # 13 написано 13.03.2012 в 18:20
Mago_De_Sombra
Маршал
Quote (Quintessence)
Ну что, неламер, твоя душа спокойна?:)


неа.
вы всё равно не поняли разницы между константой и переменной.
если тухлятину полить дезодорантом, лучше она пахнуть не станет.
Сообщение # 14 отредактировано Mago_De_Sombra - Вторник, 13.03.2012, 19:03
Quintessence
Центурион
Предлогаю закрыть нашу дискуссию на высокой ноте, так как не хочу ни с кем ругаться...
Может есть какие-то замечания по коду?
Уникальный рейтинг серверов http://rtop.biz
RTOP на WoWJP
Сообщение # 15 написано 14.03.2012 в 09:41
Dedmaroz
Скаут
Quote (Quintessence)
Может есть какие-то замечания по коду?

Можешь переписать под расширение mysqli. Ибо IPB требует сервер mysql >= 5.0. А PHP документация настоятельно рекомендует использовать mysqli вместо mysql.
Это предложение ложно!
Сообщение # 16 написано 14.03.2012 в 15:06
Quintessence
Центурион
Dedmaroz, может быть...
Позже над этим задумаюсь.
Уникальный рейтинг серверов http://rtop.biz
RTOP на WoWJP
Сообщение # 17 написано 14.03.2012 в 20:24
lexa940
Сержант
Кто шарит в IPB и сможет подобный сделать скрипт ну только вывод (Самой популярной темы на форуме)
С меня ++
Сообщение # 18 написано 27.05.2012 в 12:34
nrj45
Рыцарь
Тоже нужен подобный скрипт кто поможет ?
Новый сервер - http://lk-wow.ru
Сообщение # 19 написано 16.07.2013 в 02:47
Xamejiuoh
Центурион
Цитата (nrj45)
Тоже нужен подобный скрипт кто поможет ?

Пиши в лс или скайп
Сообщение # 20 написано 16.07.2013 в 10:25
IGRIKRUS
Рыцарь
исходя из твоего кода так думаю чище будет
Код
<?php
$conf = array(
'host' => '127.0.0.1', // хост базы данных
'user' => 'IGRIK', // логин базы данных
'pass' => 'IGRIK', // пароль базы данных
'db' => 'forum_IPB', // название базы форума
'url_forum' => '/forum/', // url путь до форума
'int' => 10, // количество отображение последних тем
'coder' => 'cp1251', // кодировка вывода из базы
'prefix' => 'ipb_' // префикс таблиц базы
);

function connect($config) {
$db = @mysql_connect($config['host'], $config['user'], $config['pass']);
if (!$db) {
exit('error connect DB');
} else {
mysql_query("SET NAMES {$config['coder']}");
if (mysql_select_db($config['db'])) {
return $db;
} else {
exit('not found DB->' . $config['db']);
}
}
}

function theme_forum_db($prefix, $int) {
$zap = 'SELECT tid, title FROM ' . $prefix . 'topics ORDER BY start_date desc LIMIT ' . $int;
if ($query = mysql_query($zap)) {
while ($result = mysql_fetch_assoc($query)) {
if (!is_null($result)) {
$n[] = $result;
} else {
$n = '';
}
}
return @$n;
mysql_close();
} else {
exit('error table DB');
}
}

function theme($conf) {
connect($conf);
$theme = theme_forum_db($conf['prefix'], $conf['int']);
if (!is_null($theme)) {
foreach ($theme as $result) {
$tm .= '<tr></tr><td><a href="' . $conf['url_forum'] . 'index.php?/topic/' . $result['tid'] . '-' . $result['tid'] . '/">' . $result['title'] . '</a></td>';
}
} else {
$tm = '<tr></tr><td><h6>нет тем на форуме</h6></td>';
}
return $tm;
}
?>

<h5>Последние темы</h5>
<table>
<? echo theme($conf); ?>
</table>

и делает тоже самое biggrin

Добавлено (16.07.2013, 15:44)
---------------------------------------------
mysqli

Код
<?php

if (!extension_loaded('mysqli')) {
     exit('error mysqli');
}

$conf = array(
      'host' => '127.0.0.1', // хост базы данных
      'user' => 'IGRIK', // логин базы данных
      'pass' => 'IGRIK', // пароль базы данных
      'db' => 'forum_IPB', // название базы форума
      'url_forum' => '/forum/', // url путь до форума
      'int' => 10, // количество отображение последних тем
      'coder' => 'cp1251', // кодировка вывода из базы   
      'prefix' => 'ipb_'               // префикс таблиц базы
);

function connect_mysqli($config)
{
      $mysqli = new mysqli($config['host'], $config['user'], $config['pass']);
      if(!$mysqli){
          exit(mysqli_connect_errno());
      }else{
          if($mysqli->select_db($config['db'])){
              return $mysqli;
          }else{
              exit('not found DB-> ' . $config['db']);
          }
      }
}

function select_theme_forum($conf) {
      $mysqli = connect_mysqli($conf);
      $zap = 'SELECT tid, title FROM ' . $conf['prefix'] . 'topics ORDER BY start_date desc LIMIT ' . $conf['int'];
      if ($result = $mysqli->query($zap)) {
          while ($row = $result->fetch_assoc()) {
              if (!is_null($row)) {
                  $n[] = $row;
              } else {
                  $n = '';
              }
          }
          return $n;
          $result->close();
      } else {
          exit('error table DB');
      }
}

function forum_theme_new($conf)
{
      $theme = select_theme_forum($conf);
      if (!is_null($theme)) {
          foreach ($theme as $result) {
              $tm .= '<tr></tr><td><a href="' . $conf['url_forum'] . 'index.php?/topic/' . $result['tid'] . '-' . $result['tid'] . '/">' . $result['title'] . '</a></td>';
          }
      } else {
          $tm = '<tr></tr><td><h6>нет тем на форуме</h6></td>';
      }
      return $tm;
}
?>


<h5>Последние темы</h5>
<table>
<? echo forum_theme_new($conf); ?>
</table>
Сообщение # 21 отредактировано IGRIKRUS - Вторник, 16.07.2013, 18:40
staford11
^s†af0rd f0rever^
Цитата (IGRIKRUS)
профикс

Мб "префикс"?
Победоносная @ Галакронд
Мои сборки под 3.3.5а 12340

Исправительные работы: в наличии.
Сообщение # 22 написано 16.07.2013 в 16:39
IGRIKRUS
Рыцарь
Цитата
Мб "префикс"?

исправил
Сообщение # 23 написано 16.07.2013 в 18:40
StormDev2
Скаут
Цитата Quintessence ()
dbip = '127.0.0.1';    //IP базы данных              $dblogin = 'ggh';          //Имя пользователя базы данных
             $dbpass = 'gght';           //Пароль пользователя базы данныхА
А почему вас начало переменные называются вот так.А при конекте ,
Цитата Quintessence ()
$connect = mysql_connect("$dbip1","$dblogin1","$dbpass1") or die ("нет соединения с базой данных");
Они почему-то резко меняются smile
Сообщение # 24 написано 06.01.2017 в 02:05
  • Страница 1 из 1
  • 1
Поиск: