View Single Post
  #1  
Old 01-08-2007, 10:20 AM
WiGgLr WiGgLr is offline
 
Join Date: Aug 2006
Posts: 9
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default 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?
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01139 seconds
  • Memory Usage 1,788KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code
  • (3)bbcode_php
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete