Пропустить

К статье "Подключение собственного кода на php к phpBB&

"Обсуждение материалов сайта" и "Пожелания и критика" в одном флаконе.
Свернуть Развернуть Правила форума Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).

К статье "Подключение собственного кода на php к phpBB&

Сообщение Zmei » 10.11.2004 17:52

Прочитал статью Подключение собственного кода на php к phpBB. Написал процедуру.

Но решил сделать так:
include('somefile.php');
           function slogan()
                 ....
           $output = $my_array['slogan1'];

            $my_array прописан в somefile.php;
            Просто как $my_array['slogan1'] ='Slogan1'; 


Всё это дело не работает.Главная страница сохраняет от стиля только кнопки.
Знаю, что способ с выносом в отдельный файл дурацкий.
Но, что я делаю не так?

Zmei
 

Сообщение Xpert » 10.11.2004 21:06

Cпособ с выносом в отдельный файл вполне приемлем, хотя пожалуй стоит при его подключении писать следующим образом:

include($phpbb_root_path . 'somefile.php');


А делаете вы не так вот что: переменная $my_array у вас глобальная, соответственно, чтобы функция ее "увидела" необходимо ее объявить специальным образом:

function slogan()
{
	global $my_array;
	...
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Xpert
phpBB Guru
phpBB Guru
 
Сообщения: 5492
Зарегистрирован: 13.03.2004 22:27
Откуда: msk.ru
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Подключение баннерокрутилки

Сообщение AlexMen » 21.01.2005 23:12

Внедрил код баннерокрутилки, как было указано в статье (через page_header.php). Но у меня почему-то баннер выводится в самом начале страницы, а не там, где мне этого хотелось бы (внутри таблицы).
В чем может быть дело?
Created by AlexMen

AlexMen
phpBB 1.4.3
 
Сообщения: 62
Зарегистрирован: 21.11.2004 2:09
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Xpert » 21.01.2005 23:58

А как у вас выглядит код баннерокрутилки?
Последний раз редактировалось Xpert 22.01.2005 10:01, всего редактировалось 1 раз.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Xpert
phpBB Guru
phpBB Guru
 
Сообщения: 5492
Зарегистрирован: 13.03.2004 22:27
Откуда: msk.ru
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение AlexMen » 22.01.2005 0:08

Код представляет собой файл, который includ'ится в нужное место.
В файле указано:
$RANDOM_TXT_FILE = "/path/forum/ad/banners.dat";
srand((double)microtime()*1000000);

if (file_exists($RANDOM_TXT_FILE)) {
$arry_txt = preg_split("/--NEXT--/", join('', file($RANDOM_TXT_FILE)));
        echo $arry_txt[rand(0, sizeof($arry_txt) -1)];
} else {
        echo "Error: can't open $RANDOM_IMG_FILE file";
}

Буду благодарен за ответ!
Created by AlexMen

AlexMen
phpBB 1.4.3
 
Сообщения: 62
Зарегистрирован: 21.11.2004 2:09
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Xpert » 22.01.2005 0:52

Так вам не echo надо, вам надо данное значение в шаблон передать.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Xpert
phpBB Guru
phpBB Guru
 
Сообщения: 5492
Зарегистрирован: 13.03.2004 22:27
Откуда: msk.ru
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение AlexMen » 22.01.2005 0:58

Xpert, я не совсем понимаю.
В РНР я умею лишь писать простые программы и редактировать уже созданные.
Не подскажете, как лучше это осуществить?
Created by AlexMen

AlexMen
phpBB 1.4.3
 
Сообщения: 62
Зарегистрирован: 21.11.2004 2:09
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Xpert » 22.01.2005 9:57

echo - это вывод строки непосредственно в браузер. Вам же надо передать ее в шаблон. Т.е. вместо
echo $arry_txt[rand(0, sizeof($arry_txt) -1)];

Нужно:
$banner_txt = $arry_txt[rand(0, sizeof($arry_txt) -1)];

Далее передаете переменную $banner_txt в шаблон как написано в статье.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Xpert
phpBB Guru
phpBB Guru
 
Сообщения: 5492
Зарегистрирован: 13.03.2004 22:27
Откуда: msk.ru
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение AlexMen » 22.01.2005 14:12

Xpert, спасибо!
Created by AlexMen

AlexMen
phpBB 1.4.3
 
Сообщения: 62
Зарегистрирован: 21.11.2004 2:09
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение pehota » 21.12.2005 3:35

У меня схожая проблемка, посему пишу в эту ветку. Согласно статье пытаюсь вызвать скрипт. Делаю так:

1. В page_header.php нахожу "NAV_LINKS" => $nav_links_html) и добавляю:

'NAV_LINKS' => $nav_links_html, 
'INCLUDE_OUTPUT' => $include_output)


BTW, - использую одинарные кавычки, потому как в коде обнаружены именно таковые, а не как в примере в статье.

2. Несколько выше, в том же page_header.php прописываю путь к php-скрипту:

$include_output = include 'http://www.sitename.ru/path_to_file/cnt.php'

3. В overall_header.tpl добавляю:

{INCLUDE_OUTPUT}

В результате в месте вызова скрипта получаю 1 (единицу).

Что я делаю неправильно?

P.S. Вызываемые скрипт прилагается.
Вложения
cnt.rar
(4.11 КБ) Скачиваний: 552
FTN Technologies Support - FidoNet Software
Аватара пользователя
pehota
phpBB 1.4.2
 
Сообщения: 52
Зарегистрирован: 16.08.2005 18:16
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Xpert » 21.12.2005 8:59

Тут либо надо использовать такую конструкцию:
function load_include($file)
{
	ob_start();
	include($file);
	$text = ob_get_contents();
	ob_end_clean();
	return $text;
}

Либо file или file_get_contents. Потом соотвественно передает все это в шаблон.

Кстати, лучше уж нашу статью почитайте, ссылка на нее есть в первом посте.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Xpert
phpBB Guru
phpBB Guru
 
Сообщения: 5492
Зарегистрирован: 13.03.2004 22:27
Откуда: msk.ru
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение [R: R@m$e$ :U] » 21.12.2005 10:17

pehota
а единицу получаешь потому, что скрипт успешно инклюдится =)
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
 
Сообщения: 1466
Зарегистрирован: 16.01.2005 14:04
Откуда: Novosibirsk,RU
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.


Вернуться в Обсуждаем сайт и конференцию

 

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Место для вашей рекламы