Как безопасно подключить баннер в шаблон
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
kupidon
- phpBB 1.4.4
- Сообщения: 120
- Стаж: 14 лет 5 месяцев
- Благодарил (а): 62 раза
Как безопасно подключить баннер в шаблон
Добрый день.
Имеется рекламный баннер: Такой.
Данные в нем берутся из базы данных. Баннер написан на php.
Как правильно и безопасно внедрить его в оверал хедер? Прямой код php вроде не рекомендуется вставлять в шаблон..
Очень прошу подсказать, а лучше привести пример, заранее спасибо.
Имеется рекламный баннер: Такой.
Данные в нем берутся из базы данных. Баннер написан на php.
Как правильно и безопасно внедрить его в оверал хедер? Прямой код php вроде не рекомендуется вставлять в шаблон..
Очень прошу подсказать, а лучше привести пример, заранее спасибо.
-
Pazh
- Former team member
- Сообщения: 2317
- Стаж: 16 лет 10 месяцев
- Благодарил (а): 42 раза
- Поблагодарили: 506 раз
Re: Как безопасно подключить баннер в шаблон
а что тебе мешает прописать вызов функционала твоего файла banner.php в функцию, отвечающую за формирование хедера? а результат передать через переменную? Функция называется
page_header и располагается в /includes/functions.phpПомощь в ЛС/email только за WM или ЮMoney
-
kupidon
- phpBB 1.4.4
- Сообщения: 120
- Стаж: 14 лет 5 месяцев
- Благодарил (а): 62 раза
Re: Как безопасно подключить баннер в шаблон
Дело в том, что я только учусь и в этом плане- двоечник, но стремящийся к обучению))Pazh писал(а):а что тебе мешает прописать вызов функционала твоего файла banner.php в функцию, отвечающую за формирование хедера? а результат передать через переменную? Функция называется page_header и располагается в /includes/functions.php
Посмотрите пожалуйста, и скажите что не так:
1. Помещаю в папку мой файл
/includes/banner.php 2. Открываю
/includes/functions.phpПод функцией
page_header размещаю код:
Код: Выделить всё
// баннер
include "banner.php";
//Код: Выделить всё
// The following assigns all _common_ variables that may be used at any point in a template.
$template->assign_vars(array(
'SITENAME' => $config['sitename'],
.......
.....
'kart1'=> $kart1,
'kart2'=> $kart2,
'kart3'=> $kart3,
'kart4'=> $kart4,
....пишу таблицу на html
Код: Выделить всё
<table>
<tr><td>{kart1}</td><td>{kart2}</td><td>{kart3}</td><td>{kart4}</td> </tr>
</table> -
Sheer
- Former team member
- Сообщения: 12113
- Стаж: 19 лет 7 месяцев
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2756 раз
Re: Как безопасно подключить баннер в шаблон
Ну... в общем все не так. Покажи свой
banner.phpОбщие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
kupidon
- phpBB 1.4.4
- Сообщения: 120
- Стаж: 14 лет 5 месяцев
- Благодарил (а): 62 раза
Re: Как безопасно подключить баннер в шаблон
banner.php
Код: Выделить всё
<html>
<head>
<title>Пример</title>
</head>
<body>
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
mysql_set_charset( 'utf8' );
$query = "SELECT item_order FROM sp_orders_items WHERE state_order=0 or state_order=1 or state_order=2";
$res = $db->sql_query( $query );
while( $row = $db->sql_fetchrow($res) ) {
$available_ids[] = $row["item_order"]; }
for($x=1;$x<9;$x++){
$rnd=rand( 0 , (count($available_ids)-1) );
$rand[$x]=$available_ids[$rnd];}
for($y=1;$y<9;$y++){
$query = "SELECT catalog_id, name, price, image_urls FROM sp_items WHERE id_items=".$rand[$y];
$res = $db->sql_query( $query );
$leader = $db->sql_fetchrow( $res );
$cat[$y]=$leader["catalog_id"];
$nam[$y]=$leader["name"];
$price[$y]=$leader["price"];
$krt=unserialize($leader["image_urls"]);
if (!is_array($krt)) {
// что-то пошло не так, инициализируем пустой массив
$krt = array();
}
$kart[$y]=$krt[1];
}
$kart1= "<a href='http://19sp.ru/forum/sp/catalog.php?catalog_id= $cat[1]'><img border=2px height=120px src=\"http://19sp.ru/forum/sp/photos/s/".$kart[1]."\" title='$nam[1]' /></a>";
$kart2= "<a href='http://19sp.ru/forum/sp/catalog.php?catalog_id= $cat[2]'><img border=2px height=120px src=\"http://19sp.ru/forum/sp/photos/s/".$kart[2]."\" title='$nam[2]' /></a>";
$kart3= "<a href='http://19sp.ru/forum/sp/catalog.php?catalog_id= $cat[3]'><img border=2px height=120px src=\"http://19sp.ru/forum/sp/photos/s/".$kart[3]."\" title='$nam[3]' /></a>";
$kart4= "<a href='http://19sp.ru/forum/sp/catalog.php?catalog_id= $cat[4]'><img border=2px height=120px src=\"http://19sp.ru/forum/sp/photos/s/".$kart[4]."\" title='$nam[4]' /></a>";
$kart5= "<a href='http://19sp.ru/forum/sp/catalog.php?catalog_id= $cat[5]'><img border=2px height=120px src=\"http://19sp.ru/forum/sp/photos/s/".$kart[5]."\" title='$nam[5]' /></a>";
$kart6= "<a href='http://19sp.ru/forum/sp/catalog.php?catalog_id= $cat[6]'><img border=2px height=120px src=\"http://19sp.ru/forum/sp/photos/s/".$kart[6]."\" title='$nam[6]' /></a>";
$kart7= "<a href='http://19sp.ru/forum/sp/catalog.php?catalog_id= $cat[7]'><img border=2px height=120px src=\"http://19sp.ru/forum/sp/photos/s/".$kart[7]."\" title='$nam[7]' /></a>";
$kart8= "<a href='http://19sp.ru/forum/sp/catalog.php?catalog_id= $cat[8]'><img border=2px height=120px src=\"http://19sp.ru/forum/sp/photos/s/".$kart[8]."\" title='$nam[8]' /></a>";
?>
<table align="center" width="350" cellspacing="1" cellpadding="3" text-align: center>
<tr align="center" valign="bottom"> <td><?php echo $kart1; ?> </td><td><?php echo $kart2; ?> </td><td><?php echo $kart3; ?> </td><td><?php echo $kart4; ?> </td><td><?php echo $kart5; ?> </td><td><?php echo $kart6; ?> </td><td><?php echo $kart7; ?> </td> <td><?php echo $kart8; ?> </td></tr>
<tr style="font: 10px arial;" align="center" valign="top" > <td><?php echo $price[1]."руб."; ?> </td><td><?php echo $price[2]."руб."; ?> </td><td><?php echo $price[3]."руб."; ?> </td> <td><?php echo $price[4]."руб."; ?> </td><td><?php echo $price[5]."руб."; ?> </td><td><?php echo $price[6]."руб."; ?> </td><td><?php echo $price[7]."руб."; ?> </td><td><?php echo $price[8]."руб."; ?> </td></tr>
</table>
</body>
</html>-
Sheer
- Former team member
- Сообщения: 12113
- Стаж: 19 лет 7 месяцев
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2756 раз
Re: Как безопасно подключить баннер в шаблон
Жуть... код нечитабельный. Про остальное промолчу.
kupidon, научитесь правильно оформлять код. Ссылки вам уже давали.
http://www.phpbbguru.net/useful/codeboo ... uidelines/
http://www.phpbbguru.net/kb/styling/tem ... -tutorial/
http://www.phpbbguru.net/kb/modding/add ... stom-page/
Итак. Создаем в папке
Далее. Открыть includes/functions.php
Найти
Перед вставить
Открыть styles/__стиль__/template/overall_header.html
и в нужное место всавить примерно такой код
kupidon, научитесь правильно оформлять код. Ссылки вам уже давали.
http://www.phpbbguru.net/useful/codeboo ... uidelines/
http://www.phpbbguru.net/kb/styling/tem ... -tutorial/
http://www.phpbbguru.net/kb/modding/add ... stom-page/
Итак. Создаем в папке
includes файл примерно следующего содержания (не проверял, ибо таких таблиц БД у меня естественно нет)
Код: Выделить всё
<?php
if (!defined('IN_PHPBB'))
{
exit;
}
function show_banner()
{
global $template, $db;
$query = 'SELECT item_order FROM sp_orders_items WHERE state_order = 0 or state_order = 1 or state_order = 2';
$res = $db->sql_query($query);
while($row = $db->sql_fetchrow($res))
{
$available_ids[] = $row['item_order'];
}
for($x=1; $x<9; $x++)
{
$rnd=rand(0, (count($available_ids) - 1));
$rand[$x] = $available_ids[$rnd];
}
for($y = 1; $y < 9; $y++)
{
$query = 'SELECT catalog_id, name, price, image_urls FROM sp_items WHERE id_items = ' .$rand[$y]. '';
$res = $db->sql_query($query);
$leader = $db->sql_fetchrow($res);
$cat[$y] = $leader['catalog_id'];
$nam[$y] = $leader['name'];
$price[$y] = $leader['price'];
$krt = unserialize($leader['image_urls']);
if (!is_array($krt))
{
// что-то пошло не так, инициализируем пустой массив
$krt = array();
}
$kart[$y] = $krt[1];
$template->assign_block_vars('images', array(
'IMG' => '<a href="http://19sp.ru/forum/sp/catalog.php?catalog_id = ' .$cat[$y]. '"><img border=2px height=120px src="http://19sp.ru/forum/sp/photos/s/' .$kart[$y]. '" title="' .$nam[$y]. '" /></a>',
)
);
$db->sql_freeresult($res);
}
}
?>Найти
Код: Выделить всё
// Generate logged in/logged out statusКод: Выделить всё
include($phpbb_root_path . 'includes/banner.' . $phpEx);
show_banner();и в нужное место всавить примерно такой код
Код: Выделить всё
<div>
<table width="100%">
<tr>
<!-- BEGIN images -->
<td style="text-align:center;">{images.IMG}</td>
<!-- END images -->
</tr>
</table>
</div>Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
kupidon
- phpBB 1.4.4
- Сообщения: 120
- Стаж: 14 лет 5 месяцев
- Благодарил (а): 62 раза
Re: Как безопасно подключить баннер в шаблон
Извиняюсь, что потерялся...меня грипп душил, душил, да к другим ушел..
Вы мне очень помогли и сэкономили мне дня три точно. Теперь я более менее понял алгоритм. Я все установил, как вы сказали и все заработало.
Один вопросик: Если передавать в шаблон не массив, а одну переменную, это так выглядит?
Вы мне очень помогли и сэкономили мне дня три точно. Теперь я более менее понял алгоритм. Я все установил, как вы сказали и все заработало.
Один вопросик: Если передавать в шаблон не массив, а одну переменную, это так выглядит?
$template->assign_block_vars('images', $temp);-
Sheer
- Former team member
- Сообщения: 12113
- Стаж: 19 лет 7 месяцев
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2756 раз
Re: Как безопасно подключить баннер в шаблон
Код: Выделить всё
$template->assign_vars(array(
'DATE' => $user->format_date($cal_this_day),
'S_HOLIDAY' => ($holiday) ? true : false,
));Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
kupidon
- phpBB 1.4.4
- Сообщения: 120
- Стаж: 14 лет 5 месяцев
- Благодарил (а): 62 раза
Re: Как безопасно подключить баннер в шаблон
Немного отклонюсь от темы, но это касается аналогичного вопроса. Столкнулся с такой проблемой:
Я, при просмотре профилей пользователей- делаю табличку небольшую с выборкой данных из БД.
Все делаю как вы меня научили.
Так вот,
1. в папке includes разместил файл showzakup.php с кодом
2. потом прописываю новую функцию в functions.php
3. в файле memberlist_view.html создаю таблицу и вывожу в ней данные из кода.
Все работает! НО показывает данные по пользователю 456. мне надо вот этого пользователя 456 заменить на {USERNAME}- это ник того чей профиль просматриваю (в файле memberlist_view.html).
если я в файле showzakup.php напишу
Заранее благодарю за ответ.
Добавлено спустя 12 минут 1 секунду:
Я, при просмотре профилей пользователей- делаю табличку небольшую с выборкой данных из БД.
Все делаю как вы меня научили.
Так вот,
1. в папке includes разместил файл showzakup.php с кодом
$query = "SELECT item_order FROM sp_orders_items WHERE user_order=4562. потом прописываю новую функцию в functions.php
3. в файле memberlist_view.html создаю таблицу и вывожу в ней данные из кода.
Все работает! НО показывает данные по пользователю 456. мне надо вот этого пользователя 456 заменить на {USERNAME}- это ник того чей профиль просматриваю (в файле memberlist_view.html).
если я в файле showzakup.php напишу
...WHERE user_order={USERNAME} он естественно выдает ошибку, поскольку в момент обработки этих данных нет. Как быть? Что и где прописывать?Заранее благодарю за ответ.
Добавлено спустя 12 минут 1 секунду:
а как определить? я ведь получаю имя только когда захожу в профиль чей либо... я так понимаю надо сначала в профиль зайти, а потом уже обработчики включать.. или нет?Sheer писал(а):Логично было бы предположить, что нужно предварительно определить имя пользователя из таблицы _users, и присвоить это значение объекту шаблонаUSERNAME
-
Sheer
- Former team member
- Сообщения: 12113
- Стаж: 19 лет 7 месяцев
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2756 раз
Re: Как безопасно подключить баннер в шаблон
Ничё нипонел...
Добавлено спустя 3 минуты 25 секунд:
Добавлено спустя 3 минуты 25 секунд:
kupidon писал(а):а как определить?
Код: Выделить всё
$sql = 'SELECT username FROM ' .USERS_TABLE. ' WHERE user_id =' .$user_id. ''; // user_id наверное 456Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
kupidon
- phpBB 1.4.4
- Сообщения: 120
- Стаж: 14 лет 5 месяцев
- Благодарил (а): 62 раза
Re: Как безопасно подключить баннер в шаблон
Я так понимаю, только не смейтесь) :
Перед работой форума, файл functions.php обрабатывает все свои функции и, в том числе наш файл showzakup.php. Даже если я не просматриваю профили - все равно он его уже обработал, так?
а значит если я не просматриваю профили у меня нет данных юзера..? я совсем запутался.
Добавлено спустя 3 минуты 24 секунды:
Код: Выделить всё
$sql = 'SELECT username FROM ' .USERS_TABLE. ' WHERE user_id =' .$user_id. ''; // user_id наверное 456456 я прогонял, чтобы отладить функцию, а мне надо номер того пользователя, которого я буду просматривать
-
Sheer
- Former team member
- Сообщения: 12113
- Стаж: 19 лет 7 месяцев
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2756 раз
Re: Как безопасно подключить баннер в шаблон
С какой стати? Включаются объявленные там функции, но не факт, что все они запускаются.kupidon писал(а):все равно он его уже обработал, так?
id юзера.kupidon писал(а):.$user_id. - вот это что за переменная?
Добавлено спустя 37 секунд:
Где?kupidon писал(а):которого я буду просматривать
Добавлено спустя 1 минуту 26 секунд:
Чтоб я знал что там за код.kupidon писал(а):файл showzakup.php с кодом
Какую?kupidon писал(а):прописываю новую функцию в functions.php
Добавлено спустя 1 минуту 2 секунды:
http://segfault.kiev.ua/smart-questions-ru.html <-- указывайте конечную цель, а не отдельные шаги.
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
kupidon
- phpBB 1.4.4
- Сообщения: 120
- Стаж: 14 лет 5 месяцев
- Благодарил (а): 62 раза
Re: Как безопасно подключить баннер в шаблон
Мы просто маленько не понимаем друг друга. Надо вместо пользователя 456 ( это и есть его user_id ) прописать номер того, чей профиль просматриваю.
showzakupka.php
functions.php
memberlist_view.html
Этот код работает, но при просмотре любого профиля пользователя- показывает таблицу с выбранными данными от пользователя user_id=456. А надо чтобы показывал данные того чей профиль просматривается.
showzakupka.php
Код: Выделить всё
<?php
if (!defined('IN_PHPBB'))
{
exit;
}
function show_zakupka()
{
global $template, $db;
mysql_set_charset( 'utf8' );
$query = "SELECT item_order FROM sp_orders_items WHERE user_order=456 and state_order<3";
$rгs = $db->sql_query( $query );
while( $row = $db->sql_fetchrow($rгs) ) {
$items[] = $row["item_order"]; }
$kol=(count($items)-2) ;
for($y=1;$y<$kol;$y++){
$query = "SELECT purchase_id, name, price FROM sp_items WHERE id_items=".$items[$y];
$rгs = $db->sql_query( $query );
$leader = $db->sql_fetchrow( $rгs );
$pur[$y]=$leader["purchase_id"];
$nam[$y]=$leader["name"];
$price[$y]=$leader["price"];
$query = "SELECT id_username, name, forum_url FROM sp_purchases WHERE id_purchases=".$pur[$y];
$rгs = $db->sql_query( $query );
$leader = $db->sql_fetchrow( $rгs );
$purch[$y]=$leader["name"];
$org[$y]=$leader["id_username"];
$url[$y]=$leader["forum_url"];
$query = "SELECT username FROM phpbb_users WHERE user_id=".$org[$y];
$rгs = $db->sql_query( $query );
$leader = $db->sql_fetchrow( $rгs );
$organ[$y]=$leader["username"];
}
//$purch01=$organ[1];
for($y=1;$y<$kol;$y++){
//echo $organ[$y]." -- <a href=$url[$y]>$purch[$y]</a> -- ".$nam[$y]."<br />" ;
$template->assign_block_vars('zakupka', array(
'ORGANIZATOR' => $organ[$y],
'ZAKUP' => '<a href="'.$url[$y].'">'.$purch[$y].'</a>',
'ITEM' => $nam[$y],
'PRICE' => $price[$y],
)
);
$db->sql_freeresult($rгs);
}
}
?>Код: Выделить всё
include($phpbb_root_path . 'includes/showzakupka.' . $phpEx);
show_zakupka();Код: Выделить всё
<table border="1" width="100%" >
<tr align="center" > <td>Организатор:</td><td>Закупка:</td><td>Наименование:</td><td>Цена, руб.</td></tr>
<!-- BEGIN zakupka -->
<tr> <td align="left" width="13%">{zakupka.ORGANIZATOR}</td><td align="left" width="40%">{zakupka.ZAKUP}</td><td align="left" width="40%">{zakupka.ITEM}</td><td width="7%">{zakupka.PRICE}</td></tr>
<!-- END zakupka -->
</table> -
Sheer
- Former team member
- Сообщения: 12113
- Стаж: 19 лет 7 месяцев
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2756 раз
Re: Как безопасно подключить баннер в шаблон
Жуть...
Откуда вызывается функция
Откуда вызывается функция
show_zakupka ?Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
kupidon
- phpBB 1.4.4
- Сообщения: 120
- Стаж: 14 лет 5 месяцев
- Благодарил (а): 62 раза
Re: Как безопасно подключить баннер в шаблон
Получается в function.php. Может в functions_profile_fields.php прописать функцию?
я же говорю: я- двоечник, но я с удовольствием учусь.

