Пропустить

Вызов php из BBcode

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

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

Вызов php из BBcode

Сообщение exec » 23.07.2010 17:10

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

каким способом можно вызвать 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 18:41, всего редактировалось 1 раз.

exec
phpBB 1.2.1
 
Сообщения: 25
Зарегистрирован: 10.06.2010 0:08
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.

Re: Вызов php из BBcode

Сообщение MIT » 23.07.2010 17:59

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

Ну и немного оффтопа:
exec писал(а):нехорош тем, требует задания высоты
Ну да, это самый страшный из всех возможных недостатков :roll:
exec писал(а):т.к. хостер почему-то в выдачу file.php вставляет свой счётчик на HTML
Знаешь куда слать такого хостера надо? Если не знаешь, могу в личку нашептать.
exec писал(а):из бибикода
Из откуда?.. А, по аналогии форум у нас зовётся пихипибиби, html — хитимили, а твой ник вообще не произнесёшь.
Аватара пользователя
MIT
Поддержка
Поддержка
 
Сообщения: 2060
Зарегистрирован: 14.03.2009 18:52
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 16 раз.
Поблагодарили: 277 раз.

Re: Вызов php из BBcode

Сообщение Nekstati » 23.07.2010 18:06

Есть простые яваскрипт-решения для автоматической подстройки высоты фрейма.
Аватара пользователя
Nekstati
Лидер поддержки
Лидер поддержки
 
Сообщения: 2571
Зарегистрирован: 19.03.2009 18:43
Благодарил (а): 9 раз.
Поблагодарили: 772 раз.

Re: Вызов php из BBcode

Сообщение exec » 23.07.2010 18:32

MIT писал(а):AJAX. Тебе о чём-нибудь это говорит?

Nekstati писал(а):Есть простые яваскрипт-решения для автоматической подстройки высоты фрейма.


О, огромное спасибо за наводку.
Тем более что, видимо, есть готовые решения

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

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

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

Извините. Поправил
Последний раз редактировалось exec 23.07.2010 18:43, всего редактировалось 1 раз.

exec
phpBB 1.2.1
 
Сообщения: 25
Зарегистрирован: 10.06.2010 0:08
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.

Re: Вызов php из BBcode

Сообщение Nekstati » 23.07.2010 18:38

Вот пример упомянутого яваскрипта, цельнотянутый из 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.
Аватара пользователя
Nekstati
Лидер поддержки
Лидер поддержки
 
Сообщения: 2571
Зарегистрирован: 19.03.2009 18:43
Благодарил (а): 9 раз.
Поблагодарили: 772 раз.

Re: Вызов php из BBcode

Сообщение exec » 23.07.2010 18:45

Nekstati
Огромное спасибо! Я даже не расчитывал на это!

exec
phpBB 1.2.1
 
Сообщения: 25
Зарегистрирован: 10.06.2010 0:08
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.

Re: Вызов php из BBcode

Сообщение Nekstati » 23.07.2010 19:00

P.S. Поскольку тут iframe ищется по ID, в ББ-коде надо бы предусмотреть указание уникального ID, типа [iframe=1][/iframe], иначе при наличии на странице двух и более фреймов будут проблемы.
Аватара пользователя
Nekstati
Лидер поддержки
Лидер поддержки
 
Сообщения: 2571
Зарегистрирован: 19.03.2009 18:43
Благодарил (а): 9 раз.
Поблагодарили: 772 раз.

Re: Вызов php из BBcode

Сообщение exec » 23.07.2010 21:00

Уникальный ID - это проблема
можно было бы поимённо все iframe перечислять, но мне это решение не по душе, слишком много вычислений
Да уж, опять корабль плучается.

exec
phpBB 1.2.1
 
Сообщения: 25
Зарегистрирован: 10.06.2010 0:08
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.

Re: Вызов php из BBcode

Сообщение Nekstati » 23.07.2010 21:17

Тогда, как сказал MIT, вас спасёт Аякс. Но тут я пас.
Аватара пользователя
Nekstati
Лидер поддержки
Лидер поддержки
 
Сообщения: 2571
Зарегистрирован: 19.03.2009 18:43
Благодарил (а): 9 раз.
Поблагодарили: 772 раз.

Re: Вызов php из BBcode

Сообщение MIT » 23.07.2010 21:33

exec
Если интересует решение твоей задачи при помощи AJAX`а, то приведи пример страницы, которую отдаёт испоганенный хостером скрипт (разметка, что и как вставляется).
Аватара пользователя
MIT
Поддержка
Поддержка
 
Сообщения: 2060
Зарегистрирован: 14.03.2009 18:52
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 16 раз.
Поблагодарили: 277 раз.

Re: Вызов php из BBcode

Сообщение exec » 23.07.2010 21:57

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

Вот такой умный хостер.

exec
phpBB 1.2.1
 
Сообщения: 25
Зарегистрирован: 10.06.2010 0:08
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.

Re: Вызов php из BBcode

Сообщение MIT » 23.07.2010 22:12

Я уже придумал два способа избавления от этой хрени. Но раз нет, значит нет, что мне настаивать-то.
Аватара пользователя
MIT
Поддержка
Поддержка
 
Сообщения: 2060
Зарегистрирован: 14.03.2009 18:52
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 16 раз.
Поблагодарили: 277 раз.

Re: Вызов php из BBcode

Сообщение exec » 23.07.2010 22:17

длинные, насколько я понимаю

exec
phpBB 1.2.1
 
Сообщения: 25
Зарегистрирован: 10.06.2010 0:08
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.

Re: Вызов php из BBcode

Сообщение MIT » 23.07.2010 22:22

Позволь узнать, а какая разница? Вот что тебе с того, что решение будет не в две строчки, а в три?
Аватара пользователя
MIT
Поддержка
Поддержка
 
Сообщения: 2060
Зарегистрирован: 14.03.2009 18:52
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 16 раз.
Поблагодарили: 277 раз.

Re: Вызов php из BBcode

Сообщение exec » 23.07.2010 22:34

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

exec
phpBB 1.2.1
 
Сообщения: 25
Зарегистрирован: 10.06.2010 0:08
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.

След.

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

 

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

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

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

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