Login   Register  
PHP Classes
elePHPant
Icontem

File: BloggerIntegration.php5

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  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: 7 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)<&& !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;
}

}
?>