форум vBSupport.ru > vBulletin > vBulletin 3.8.x > Вопросы по vBulletin 3.8
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
Onikage
Простоузер
Post Дополнительная подпись
0

Есть отдельная Бд где хранятся статичные данные, данные будут вносится туда вручную через отдельную страницу, скрытую от основного форума ....

Вопрос - как и где вставить в showthread кусок кода php, что бы для каждого отображаемого поста в теме, внизу, там где подпись, отображались еще и эти данные, делая выборку по UserID того, чей пост .....

Заранее спасибо х)
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
kerk
k0t
 
kerk's Avatar
Default
0

запрос в БД на хук showthread_complete и возвращенные запросом данные в шаблон постбит_легаси
 
 
Onikage
Простоузер
Default
0

а для чайников ? )
 
 
kerk
k0t
 
kerk's Avatar
Default
1

Quote:
Originally Posted by Onikage View Post
Вопрос - как и где вставить в showthread кусок кода php
если человек пишет подобное, можно предположить, что он знаком с PHP
осталось разобраться с работой хуков форума (hooks)
PHP Code:
$query "SELECT bla FROM table_bla WHERE blabla = 'abl'";
$request $db->query_read($query);
$result $db->fetch_array($request); 
возможно я перепутал хук, нужно не на showthread_complete, а на postbit_display_complete вешать этот код
а результаты запроса в шаблон:
Code:
$result[value1]
$result[value2]
$result[value3]
........
 
 
Onikage
Простоузер
Default
0

спасибо - ушел пробовать ....

Onikage добавил 27.08.2009 в 02:56
postbit_display_complete

Код PHP модуля
PHP Code:
ob_start(); 
include(
'./sing.php'); 
$sing ob_get_contents(); 
ob_end_clean(); 
содержимое sing.php

PHP Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ru">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<?
error_reporting
(E_ALL & ~E_NOTICE);
require_once(
'./global.php');
$sing $vbulletin->db->query_first("SELECT name FROM usersing WHERE userid = 1");
if (
$sing != "")
{
//do nothing
}
else
{
$sing "нету нифига";
}
echo 
"{$sing[name]}";

?>
</body>
</html>

а вместо теста выводит ??? .... где не лады с кодировкой ?

и второй вопрос - мне пришлось в sing.php делать запрос "1", как мне в него вытянуть переменю $post['userid'] ?


----------------

или может лучше сразу в Код PHP модуля впихнуть запрос в БД ? если да - то как он должен выглядеть ?

Onikage добавил 27.08.2009 в 02:58
мне и это нравиться

PHP Code:
$query "SELECT bla FROM table_bla WHERE blabla = 'abl'"
$request $db->query_read($query); 
$result $db->fetch_array($request); 
только выдает ошибку если делаю вод так

PHP Code:
$query "SELECT name FROM usersing WHERE userid = '$post['userid']'";
$request $db->query_read($query);
$result $db->fetch_array($request); 

так как делать, как в первом варианте, или как во втором? и где ошибка синтаксиса во втором ?

Onikage добавил 27.08.2009 в 03:03
в postbit_legacy

Нашел:

Code:
<div>
                                  __________________<br />
                                  $post[signature]
                                 </div>
и заменил на

Code:
<div>
                                 __________________<br />
                                $sing[name]<br />
                                __________________<br />
                                $post[signature]
            </div>
это работает на ура х)

Onikage добавил 27.08.2009 в 09:36
Не поверите - всю ночь снилось пхп х___х зато приснилось решение .....

PHP Code:
ob_start(); 
Вот тут нужно создать сессийную переменную со значением $post[userid]; :D
include('./sing.php'); 
$sing ob_get_contents(); 
ob_end_clean(); 
Onikage добавил 27.08.2009 в 10:56
спасибо что ты мне подсказал, что тут есть такая фишка как хук )

Модуль
PHP Code:
ob_start(); 
session_start();
$_SESSION['suserid'] = $post['userid'];
include(
'./sing.php'); 
$sing[name] = ob_get_contents(); 
ob_end_clean(); 

содержимое sing.php

PHP Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ru">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<?
session_start
();
error_reporting(E_ALL & ~E_NOTICE);
require_once(
'./global.php');
if (isset(
$_SESSION['suserid'])) {$suserid=$_SESSION['suserid']; if ($suserid == '') {unset ($suserid);}}
if (
$suserid>0) {
$sing $vbulletin->db->query_first("SELECT name FROM usersing WHERE userid = $suserid");}
if (
$sing != "")
{
}
else
{
$sing "пусто";
}
echo 
"{$sing[name]}";

?>
</body>
</html>
----------------------------
работает х)

Onikage добавил 27.08.2009 в 10:59
еще поправка
$sing = "пусто";
заменить на

$sing
[name]= "пусто";

Last edited by Onikage : 08-27-2009 at 10:59 AM. Reason: Добавлено сообщение
 
 
slavok47
Простоузер
Default
0

Ошибка
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started a
 
 
Dimoks
Гость
Default

А готового хака "расширенная подпись" нет? :(
Чтобы у юзеров был список подписей а форум их случайным образом вставлял...
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 09:48 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Loading...