MyBB Community Forums

Full Version: add text-link-ads in mybb
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi

How do I add text-link-ads.com in mybb just like how mybb homepage has it but instead in the forum itself.
No way to get this done? Any pointer to get it working would be good. I tried using the plugin system but I cannot add the textlinksads code in the php file and get it to run
Any suggestion to get it fixed...
What's the code textlinkads gave you?

Just sticking it in a div or table in a template should work.
I'm afraid I don't entirely understand what you're asking.

Can you elaborate on the problem a little more?
Here is the code I am using from text-link-ads

<?php

function tla_ads() {

    // Number of seconds before connection to XML times out
    // (This can be left the way it is)
    $CONNECTION_TIMEOUT = 15;

    // Local file to store XML
    // This file MUST be writable by web server
    // You should create a blank file and CHMOD it to 666
    $LOCAL_XML_FILENAME = "local_277650.xml";

    if( !file_exists($LOCAL_XML_FILENAME) ) die("Script error: $LOCAL_XML_FILENAME does not exist. Please create a blank file named $LOCAL_XML_FILENAME.");
    if( !is_writable($LOCAL_XML_FILENAME) ) die("Script error: $LOCAL_XML_FILENAME is not writable. Please set write permissions on $LOCAL_XML_FILENAME.");

    if( filemtime($LOCAL_XML_FILENAME) < (time() - 3600) || filesize($LOCAL_XML_FILENAME) < 20) {
        $request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : "";
        $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : "";
        tla_updateLocalXML("http://www.text-link-ads.com/xml.php?inventory_key=QZFKBZCYEQ39EE00H1RF&referer=" . urlencode($request_uri) .  "&user_agent=" . urlencode($user_agent), $LOCAL_XML_FILENAME, $CONNECTION_TIMEOUT);
    }

    $xml = tla_getLocalXML($LOCAL_XML_FILENAME);

    $arr_xml = tla_decodeXML($xml);

    if ( is_array($arr_xml) ) {
        echo "\n<ul>\n";
        for ($i = 0; $i < count($arr_xml['URL']); $i++) {
            if( isset($arr_xml['PostID'][$i]) && $arr_xml['PostID'][$i] > 0 ) continue;
            echo "<li style=\"display: block; clear: none; padding: 0; width: 13%; float: left; margin: 0;\">".$arr_xml['BeforeText'][$i]." <a href=\"".$arr_xml['URL'][$i]."\">".$arr_xml['Text'][$i]."</a> ".$arr_xml['AfterText'][$i]."</li>\n";
        }
        echo "</ul>";
    }

}

function tla_updateLocalXML($url, $file, $time_out)
{
    if($handle = fopen($file, "a")){
            fwrite($handle, "\n");
            fclose($handle);
    }
    if($xml = file_get_contents_tla($url, $time_out)) {
        $xml = substr($xml, strpos($xml, '<?'));
         if ($handle = fopen($file, "w")) {
            fwrite($handle, $xml);
            fclose($handle);
        }
    }
}

function tla_getLocalXML($file)
{
    $contents = "";
    if($handle = fopen($file, "r")){
        $contents = fread($handle, filesize($file)+1);
        fclose($handle);
    }
    return $contents;
}

function file_get_contents_tla($url, $time_out)
{
    $result = "";
    $urlInfo = parse_url($url);

    if ($handle = @fsockopen ($urlInfo['host'], 80)) {
        if(function_exists("socket_set_timeout")) {
            socket_set_timeout($handle, $time_out, 0);
        } else if(function_exists("stream_set_timeout")) {
            stream_set_timeout($handle, $time_out, 0);
        }

        fwrite ($handle, "GET " . $urlInfo['path'] . "?" . $urlInfo['query'] . " HTTP/1.0\r\nHost: " . $urlInfo['host'] . "\r\nConnection: Close\r\n\r\n");
        while (!feof($handle)) {
            $result .= @fread($handle, 40960);
        }
        fclose($handle);
        
    } else if (function_exists('curl_init')) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $time_out);
        curl_setopt($ch, CURLOPT_TIMEOUT, $time_out);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        $result = curl_exec($ch);
        curl_close($ch);
    }

    return $result;
}

function tla_decodeXML($xmlstg)
{

    if( !function_exists('html_entity_decode') ){
        function html_entity_decode($string)
        {
           // replace numeric entities
           $string = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\1"))', $string);
           $string = preg_replace('~&#([0-9]+);~e', 'chr(\1)', $string);
           // replace literal entities
           $trans_tbl = get_html_translation_table(HTML_ENTITIES);
           $trans_tbl = array_flip($trans_tbl);
           return strtr($string, $trans_tbl);
        }
    }

    $out = "";
    $retarr = "";

    preg_match_all ("/<(.*?)>(.*?)</", $xmlstg, $out, PREG_SET_ORDER);
    $search_ar = array('<', '>', '"');
    $replace_ar = array('<', '>', '"');
    $n = 0;
    while (isset($out[$n]))
    {
        $retarr[$out[$n][1]][] = str_replace($search_ar, $replace_ar,html_entity_decode(strip_tags($out[$n][0])));
        $n++;
    }
    return $retarr;
}
tla_ads();
?>

If you look at mybb.com homepage you can see text link ads being run just below the latest news block. I want the ads to be display in the footer of my site (www.evoforums.net)
Oh! Ok, by default you cannot use PHP inside templates. However, if you install this plugin: http://mybbhacks.zingaburga.com/showthread.php?tid=260 you will be able to include that code block into a template.
Thanx a lot I will give that a try and let you know Smile
Glad I could help Smile
I tried using that code with and without the <?php in the beginning and the end but no luck. I also tried it using the plugin system and using $tla_ads in the footer template to display it but when I upload the file that has the code in inc/plugin. I can no longer see all the plugins I have already installed on the forum.

Any suggestions?
Any help would be appreciated.
Here are the instruction on how to get it working for vbulletin but I cannot get it working on mybb

VBulletin 3.5.x Installation Instructions

* Log into your vBulletin administration panel. Click on the Plugin System section on the left and choose Add New Plugin. Plugins may be disabled. If this is the case, you will need to follow the directions given to enable them. Now on the Add New Plugin screen, select global_start (under vBulletin;General) for the Hook Location. Give the plugin a title, such as Text Link Ads. Finally, copy the code from below and paste it into the PHP code box. Make the plugin active and save it.
* Once you decide where you would like the links to appear, open up the appropriate template for the current stylein the administration panel and insert "$tla_ads".


function tla_ads() {

    // Number of seconds before connection to XML times out
    // (This can be left the way it is)
    $CONNECTION_TIMEOUT = 15;

    // Local file to store XML
    // This file MUST be writable by web server
    // You should create a blank file and CHMOD it to 666
    $LOCAL_XML_FILENAME = "local_277650.xml";

    if( !file_exists($LOCAL_XML_FILENAME) ) die("Script error: $LOCAL_XML_FILENAME does not exist. Please create a blank file named $LOCAL_XML_FILENAME.");
    if( !is_writable($LOCAL_XML_FILENAME) ) die("Script error: $LOCAL_XML_FILENAME is not writable. Please set write permissions on $LOCAL_XML_FILENAME.");

    if( filemtime($LOCAL_XML_FILENAME) < (time() - 3600) || filesize($LOCAL_XML_FILENAME) < 20) {
        $request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : "";
        $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : "";
        tla_updateLocalXML("http://www.text-link-ads.com/xml.php?inventory_key=QZFKBZCYEQ39EE00H1RF&referer=" . urlencode($request_uri) .  "&user_agent=" . urlencode($user_agent), $LOCAL_XML_FILENAME, $CONNECTION_TIMEOUT);
    }

    $xml = tla_getLocalXML($LOCAL_XML_FILENAME);

    $arr_xml = tla_decodeXML($xml);

    if ( is_array($arr_xml) ) {
        echo "\n<ul>\n";
        for ($i = 0; $i < count($arr_xml['URL']); $i++) {
            if( isset($arr_xml['PostID'][$i]) && $arr_xml['PostID'][$i] > 0 ) continue;
            echo "<li style=\"width: 13%; clear: none; display: block; margin: 0; padding: 0; float: left;\">".$arr_xml['BeforeText'][$i]." <a href=\"".$arr_xml['URL'][$i]."\">".$arr_xml['Text'][$i]."</a> ".$arr_xml['AfterText'][$i]."</li>\n";
        }
        echo "</ul>";
    }

}

function tla_updateLocalXML($url, $file, $time_out)
{
    if($handle = fopen($file, "a")){
            fwrite($handle, "\n");
            fclose($handle);
    }
    if($xml = file_get_contents_tla($url, $time_out)) {
        $xml = substr($xml, strpos($xml, '<?'));
         if ($handle = fopen($file, "w")) {
            fwrite($handle, $xml);
            fclose($handle);
        }
    }
}

function tla_getLocalXML($file)
{
    $contents = "";
    if($handle = fopen($file, "r")){
        $contents = fread($handle, filesize($file)+1);
        fclose($handle);
    }
    return $contents;
}

function file_get_contents_tla($url, $time_out)
{
    $result = "";
    $urlInfo = parse_url($url);

    if ($handle = @fsockopen ($urlInfo['host'], 80)) {
        if(function_exists("socket_set_timeout")) {
            socket_set_timeout($handle, $time_out, 0);
        } else if(function_exists("stream_set_timeout")) {
            stream_set_timeout($handle, $time_out, 0);
        }

        fwrite ($handle, "GET " . $urlInfo['path'] . "?" . $urlInfo['query'] . " HTTP/1.0\r\nHost: " . $urlInfo['host'] . "\r\nConnection: Close\r\n\r\n");
        while (!feof($handle)) {
            $result .= @fread($handle, 40960);
        }
        fclose($handle);
        
    } else if (function_exists('curl_init')) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $time_out);
        curl_setopt($ch, CURLOPT_TIMEOUT, $time_out);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        $result = curl_exec($ch);
        curl_close($ch);
    }

    return $result;
}

function tla_decodeXML($xmlstg)
{

    if( !function_exists('html_entity_decode') ){
        function html_entity_decode($string)
        {
           // replace numeric entities
           $string = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\1"))', $string);
           $string = preg_replace('~&#([0-9]+);~e', 'chr(\1)', $string);
           // replace literal entities
           $trans_tbl = get_html_translation_table(HTML_ENTITIES);
           $trans_tbl = array_flip($trans_tbl);
           return strtr($string, $trans_tbl);
        }
    }

    $out = "";
    $retarr = "";

    preg_match_all ("/<(.*?)>(.*?)</", $xmlstg, $out, PREG_SET_ORDER);
    $search_ar = array('<', '>', '"');
    $replace_ar = array('<', '>', '"');
    $n = 0;
    while (isset($out[$n]))
    {
        $retarr[$out[$n][1]][] = str_replace($search_ar, $replace_ar,html_entity_decode(strip_tags($out[$n][0])));
        $n++;
    }
    return $retarr;
}

ob_start();
tla_ads();
$tla_ads = ob_get_contents();
ob_end_clean();