PHP Classes

File: BloggerIntegration.php5

Recommend this page to a friend!
  Classes of DAKEDO, Online Shopping Mall   Blogger Integration   BloggerIntegration.php5   Download  
File: BloggerIntegration.php5
Role: Class source
Content type: text/plain
Description: PHP5 class file
Class: Blogger Integration
Import a blog published in Blogger.com into a site
Author: By
Last change: "Add to Yahoo" and "Add to Google" buttons are inserted into the blog.
Date: 17 years ago
Size: 7,149 bytes
 

Contents

Class file image Download
<?php
/*
      BloggerIntegration v1.3 - BloggerIntegration.php5 v1.2 2007/03/24

    This class enables you to insert a blog created with Blogger.com (FTP publishing) into your web site.
    More precisely, it wraps your website's look (or template) around your blog.

      Copyright (c) 2007 DAKEDO

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License along
    with this program; if not, write to the Free Software Foundation, Inc.,
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

      designer: DAKEDO, Online Shopping Mall
      url: http://www.dakedo.com
      download: http://www.dakedo.com/blogs/27/2007/02/blogger-integration.html
      email: contact@dakedo.com
*/

define('OSCOMMERCE','false');//set to 'true' if you use osCommerce

include("includes/classes/DynamicTemplate.php");

function
replace_directive($match)
    {
   
$product_id = $match[2];
   
$product_url = $match[1] . $match[2];
   
$product_query = tep_db_query("select products_image from " . TABLE_PRODUCTS . " where products_id = '" . $product_id . "'");
   
$product_result = tep_db_fetch_array($product_query);

    eval(
"\$return_string = '<a href=\"" . $product_url . "\" >'" . " . tep_image('" . DIR_WS_IMAGES . $product_result['products_image'] . "','','','','style=\"margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;\"') . '</a>';");

    return
$return_string;
    }

class
BloggerIntegration extends DynamicTemplate {

function
BloggerIntegration($templateFile, $globals = array()) {
DynamicTemplate::__construct($templateFile, $globals);
}

//Copyright announcement (html comment, not visible on the web page of course)
protected function copyright() {
//This announcement complies with section 2c of the GNU General Public License (GPL) and thus can not be removed.
return "BloggerIntegration V1.0\rCopyright (c) 2007 DAKEDO\rReleased under the GNU General Public License\rurl: http://www.dakedo.com\rfree download: http://www.dakedo.com/blogs/27/2007/02/blogger-integration.html\r";
}


protected function
processBody($page_body) {
if (
OSCOMMERCE == 'true') {
//replace (http://www.yoursite.com/catalog/product_info.php?products_id=24) by the image with the link
//image insertion
$this->page = preg_replace_callback ("(\((" . HTTP_SERVER . DIR_WS_HTTP_CATALOG . FILENAME_PRODUCT_INFO ."\?products_id=)([0-9]+)\))", 'replace_directive', $this->page);
}

//add the full path to the permalinks
//so that I can keep the original base directory coming from the template
$this->page = eregi_replace('((<a[^<^>]*[ ]+href=\")(#c[0-9]+\"[^<^>]*>[^<^>]+<\/a>))', '\\2' . BLOG_SERVER . DIR_WS_BLOG . $PHP_SELF . '?\\3', $this->page);

//Little image link near the button "Powered by blogger"
//Please keep this little image if you can, that will allow people reading your blog to download easily this distribution (like you probably did :-) ) if they like it...
$this->page = eregi_replace('(<a href="http://www.blogger.com"><img)','<a target="_blank" href="http://www.dakedo.com/blogs/27/2007/02/blogger-integration.html"><img border="0" src="http://www.dakedo.com/mall/images/dakedo-logo1.gif" alt="Integrated by DAKEDO" title="Integrated by DAKEDO"></a>\\1 border="0"', $this->page);

//"Add to Google" and "Add to Yahoo" buttons
$matches = array();
preg_match("(http://[1-9a-zA-Z./]+.xml)", $this->page, $matches);
$rss_feed_url = $matches[0];

$add_to_google = '<a href="http://fusion.google.com/add?feedurl=' . $rss_feed_url . '"><img src="http://buttons.googlesyndication.com/fusion/add.gif" width="104" height="17" border="0" alt="Add to Google"></a>';

$add_to_yahoo = '<a href="http://add.my.yahoo.com/content?.intl=us&url=' . $rss_feed_url . '"><img src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif" width="91" height="17" border="0" align=middle alt="Add to My Yahoo!"></a>';

$rss_feed_url_pos = strripos($this->page,'id="blogfeeds"');

$rss_feed_end_pos = strpos($this->page,"</p>",$rss_feed_url_pos);

$this->page = substr($this->page,0,$rss_feed_end_pos+4) .
               
"\n <p>" . $add_to_google . "</p>" .
               
"\n <p>" . $add_to_yahoo . "</p>" .
               
substr($this->page,$rss_feed_end_pos+4);
}


protected function
processHead($page_head) {
//remove the navbar style definition,to get the navbar with the body of the blog
$this->page = eregi_replace('(<style[ ]+type=[^<]+>[^<^>]+navbar[^<^>]+</style>)','',$this->page);

//remove parts that interfere with my stylesheet, if needed
//$this->page = eregi_replace('(a:(link|visited)[ ]+\{[^{^}]+})','',$this->page);
}


protected function
get_File_To_Include($path, $file) {
$error = false;

//case of a directory or a wrong file name
if ( ($file == '') || (!file_exists($path . $file)) )
    {
    if (
file_exists($path . 'index.html')) $included_file = $path . 'index.html';
    elseif (
file_exists($path . 'index.htm')) $included_file = $path . 'index.htm';
    elseif (
file_exists($path . 'index.php')) $included_file = $path . 'index.php';
    else
$included_file = false;
    }
else
$included_file = $path . $file;

if (
$included_file === false)
    {
    if (isset(
$_GET['language']))//=> the language-specific blog wasn't found
       
{
       
//if there is one at the root I take it
       
if (file_exists('index.html')) $included_file = 'index.html';
        elseif (
file_exists('index.htm')) $included_file = 'index.htm';
        elseif (
file_exists('index.php')) $included_file = 'index.php';
        else
$included_file = false;
        }

    if (
$included_file === false) //=>no file in the root directory
       
{
       
$languages_array = array();
        if (
$handle = opendir(DIR_FS_BLOG))
            {
               while (
false !== ($file = readdir($handle)))
                {
                   if (
$file != "." && $file != ".." &&
                       
filetype(DIR_FS_BLOG . $file)=='dir' &&
                       
strlen($file)<3 && !is_numeric($file) ) $languages_array[] = $file;
                   }
              
closedir($handle);
            }
        else die(
"can not open the blog directory '" . DIR_FS_BLOG . "'");

       
// I take the first blog I find in the language-specific subdirectories
       
$found = false;
       
$i = 0;
       
$nb_languages = count($languages_array);
        while(
$i < $nb_languages && !$found)
            {
           
$language_code = $languages_array[$i];
           
$found = true;

            if (
file_exists(DIR_FS_BLOG . $language_code . '/index.html'))
               
$included_file = DIR_FS_BLOG . $language_code . '/index.html';
            elseif (
file_exists(DIR_FS_BLOG . $language_code . '/index.htm'))
               
$included_file = DIR_FS_BLOG . $language_code . '/index.htm';
            elseif (
file_exists(DIR_FS_BLOG . $language_code . '/index.php'))
               
$included_file = DIR_FS_BLOG . $language_code . '/index.php';
            else
                {
               
$included_file = false;
               
$found = false;
                }

           
$i++;
            }

        }
    }

return
$included_file;
}

}
?>