WiGgLr |
01-08-2007 10:20 AM |
BBCode to call the PHP version of Sloganizer
If you look on www.sloganizer.net, it is possible to display the slogan as text. To do this you call the PHP code:
PHP Code:
<?php readfile("http://www.sloganizer.net/en/outbound.php?slogan=TEXT"); ?>
Where TEXT is the string you want a slogan about. The result is a piece of htm such as:
Code:
<a href='http://www.sloganizer.net/en/' title='Generated by Sloganizer.net' style='text-decoration:none;'>TEXT is what the world was waiting for.</a>
I have been trying to make a [sloganizer]TEXT[/sloganizer] BBCode to do this but it either doesn't work, or places the resulting text at the top of the browser window and not in the post (it's before the forum html)
Here is the code:
PHP Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<product productid="sloganizer" active="1">
<title>Sloganizer</title>
<description>BBCode for Text Sloganizer</description>
<version>1.0</version>
<url />
<versioncheckurl />
<dependencies>
</dependencies>
<codes>
</codes>
<templates>
</templates>
<plugins>
<plugin active="1">
<title>Sloganizer bbcode hook</title>
<hookname>bbcode_create</hookname>
<phpcode><![CDATA[$this->tag_list['no_option']['sloganizer'] = array(
'callback' => 'handle_external',
'external_callback' => 'handle_bbcode_sloganizer'
);
if (!function_exists('handle_bbcode_sloganizer'))
{
function handle_bbcode_sloganizer (&$parser, $text, $option)
{
$html = readfile('http://www.sloganizer.net/en/outbound.php?slogan=' . $text);
return $html;
}
}]]></phpcode>
</plugin>
</plugins>
<phrases>
</phrases>
<options>
</options>
<helptopics>
</helptopics>
<cronentries>
</cronentries>
<faqentries>
</faqentries>
</product>
Please could some help with why this isn't working right.
Thanks in advance
I managed to solve this by removing the use of readfile:
PHP Code:
$this->tag_list['no_option']['sloganizer'] = array(
'callback' => 'handle_external',
'external_callback' => 'handle_bbcode_sloganizer'
);
if (!function_exists('handle_bbcode_sloganizer'))
{
function handle_bbcode_sloganizer (&$parser, $text, $option)
{
/*
$html = readfile('http://www.sloganizer.net/en/outbound.php?slogan=' . $text);
return $html;
*/
ob_start();
include('http://www.sloganizer.net/en/outbound.php?slogan=' . $text);
$html = ob_get_contents();
ob_end_clean();
return $html;
}
}
Now I have a different issue.
When the bbcode is used as a signature, the static html is stored rather than the code being called every time a page is generated.
Is there a way around this so that the php code is executed every time the signature is queried?
|