Вызов php из BBcode

Форум для авторов модов для phpBB 3.0.x. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
exec
phpBB 1.2.1
Сообщения: 25
Стаж: 16 лет 3 месяца
Поблагодарили: 2 раза

Вызов php из BBcode

Сообщение exec »

Уважаемые гуру, помогите советом

каким способом можно вызвать php страничку из BBcode?
Это требуется для написания BBcode, который выводит некоторые поля из базы данных
Сам я знаю только 2 способа, и оба мне не подходят:

1. <iframe src="./file.php"></iframe>

Этот способ нехорош тем, требует задания высоты. Если содержание превысит высоту, то появится линейка прокрутки

2. <script type="text/javascript" src="./file.php"></script>

Этот способ всем хорош, но не работает у меня на хостинге, т.к. хостер почему-то в выдачу file.php вставляет свой счётчик на HTML, что убивает работу javascript. Задание Content-type: application/x-javascript не помогает

Есть ещё какие-нибудь простые способы, а то в голову уже лезут какие-то interframe communications на javascript, что для этой задачки уже явный перебор

Заранее благодарю

PS. Т.е. нужны такие способы, чтобы результатом работы скрипта file.php был text/html
Последний раз редактировалось exec 23.07.2010 14:41, всего редактировалось 1 раз.
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 17 лет 6 месяцев
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 3 раза
Поблагодарили: 351 раз

Re: Вызов php из BBcode

Сообщение MIT »

AJAX. Тебе о чём-нибудь это говорит?

Ну и немного оффтопа:
exec писал(а):нехорош тем, требует задания высоты
Ну да, это самый страшный из всех возможных недостатков :roll:
exec писал(а):т.к. хостер почему-то в выдачу file.php вставляет свой счётчик на HTML
Знаешь куда слать такого хостера надо? Если не знаешь, могу в личку нашептать.
exec писал(а):из бибикода
Из откуда?.. А, по аналогии форум у нас зовётся пихипибиби, html — хитимили, а твой ник вообще не произнесёшь.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Вызов php из BBcode

Сообщение Nekstati »

Есть простые яваскрипт-решения для автоматической подстройки высоты фрейма.
exec
phpBB 1.2.1
Сообщения: 25
Стаж: 16 лет 3 месяца
Поблагодарили: 2 раза

Re: Вызов php из BBcode

Сообщение exec »

MIT писал(а):AJAX. Тебе о чём-нибудь это говорит?
Nekstati писал(а):Есть простые яваскрипт-решения для автоматической подстройки высоты фрейма.
О, огромное спасибо за наводку.
Тем более что, видимо, есть готовые решения

MIT писал(а):Ну да, это самый страшный из всех возможных недостатков :roll:

Это же BBcode, и размер будут выставлять пользователи. Скорее всего - не будут. А я за них это делать не хочу.
MIT писал(а):Знаешь куда слать такого хостера надо?

Это бесплатный хостер. Не хотелось бы его так. Тем более что по всем остальным параметрам он слишком хорош. Может, за исключением стабильности и этого глюка, который обещают поправить, но не ясно когда сделают.
MIT писал(а):Из откуда?..

Извините. Поправил
Последний раз редактировалось exec 23.07.2010 14:43, всего редактировалось 1 раз.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Вызов php из BBcode

Сообщение Nekstati »

Вот пример упомянутого яваскрипта, цельнотянутый из jFusion.

Код: Выделить всё

	function getElement(aID)
	{
		return (document.getElementById) ?
			document.getElementById(aID) : document.all[aID];
	}

	function getIFrameDocument(aID)
	{
		var rv = null;
		var frame=getElement(aID);
		// if contentDocument exists, W3C compliant (e.g. Mozilla)

		if (frame.contentDocument)
			rv = frame.contentDocument;
		else // bad IE  ;)
			rv = document.frames[aID].document;
		return rv;
	}

	function adjustMyFrameHeight()
	{
		var frame = getElement("blockrandom");
		var frameDoc = getIFrameDocument("blockrandom");
		frame.height = frameDoc.body.offsetHeight;
	}

Код: Выделить всё

<iframe onload="adjustMyFrameHeight();" id="blockrandom" src="............" width="100%" height="300" scrolling="auto" allowtransparency="true" align="top" frameborder="0"></iframe>
Первое вставляем куда-нибудь в forum_fn.js, а второе в BBcode.
exec
phpBB 1.2.1
Сообщения: 25
Стаж: 16 лет 3 месяца
Поблагодарили: 2 раза

Re: Вызов php из BBcode

Сообщение exec »

Nekstati
Огромное спасибо! Я даже не расчитывал на это!
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Вызов php из BBcode

Сообщение Nekstati »

P.S. Поскольку тут iframe ищется по ID, в ББ-коде надо бы предусмотреть указание уникального ID, типа [iframe=1][/iframe], иначе при наличии на странице двух и более фреймов будут проблемы.
exec
phpBB 1.2.1
Сообщения: 25
Стаж: 16 лет 3 месяца
Поблагодарили: 2 раза

Re: Вызов php из BBcode

Сообщение exec »

Уникальный ID - это проблема
можно было бы поимённо все iframe перечислять, но мне это решение не по душе, слишком много вычислений
Да уж, опять корабль плучается.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Вызов php из BBcode

Сообщение Nekstati »

Тогда, как сказал MIT, вас спасёт Аякс. Но тут я пас.
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 17 лет 6 месяцев
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 3 раза
Поблагодарили: 351 раз

Re: Вызов php из BBcode

Сообщение MIT »

exec
Если интересует решение твоей задачи при помощи AJAX`а, то приведи пример страницы, которую отдаёт испоганенный хостером скрипт (разметка, что и как вставляется).
exec
phpBB 1.2.1
Сообщения: 25
Стаж: 16 лет 3 месяца
Поблагодарили: 2 раза

Re: Вызов php из BBcode

Сообщение exec »

MIT
AJAX не очень интересует, т.к. желательно решение в одну строчку. Ну в 2.
Я тут пообщался с умными людьми (с вами) и пришла в голову мысль про inline javascript. Сижу проверяю.

Но если интересно посмотреть на причуды хостера, то вот
http://darshah.bigteo.net/ - внизу текста html можно увидеть
http://darshah.bigteo.net/test.html - это аналог BBcode - работает в мозилле из-за её толерантности, и не работает больше нигде

Самое забавное, что этот код не появляется нигде у меня на форуме в PHPBB3.
forum.darshah.org.ru
Только в левых скриптах, котрые либо я писал, либо вообще слева. Нет ни в одном из модов.
а вот здесь есть:
http://darshah.bigteo.net/test1.php

Вот такой умный хостер.
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 17 лет 6 месяцев
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 3 раза
Поблагодарили: 351 раз

Re: Вызов php из BBcode

Сообщение MIT »

Я уже придумал два способа избавления от этой хрени. Но раз нет, значит нет, что мне настаивать-то.
exec
phpBB 1.2.1
Сообщения: 25
Стаж: 16 лет 3 месяца
Поблагодарили: 2 раза

Re: Вызов php из BBcode

Сообщение exec »

длинные, насколько я понимаю
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 17 лет 6 месяцев
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 3 раза
Поблагодарили: 351 раз

Re: Вызов php из BBcode

Сообщение MIT »

Позволь узнать, а какая разница? Вот что тебе с того, что решение будет не в две строчки, а в три?
exec
phpBB 1.2.1
Сообщения: 25
Стаж: 16 лет 3 месяца
Поблагодарили: 2 раза

Re: Вызов php из BBcode

Сообщение exec »

Да нет никакой разницы!
3 строчки подходят!

Вернуться в «Для авторов (phpBB 3.0.x)»