<?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;
}
}
?>
|