<?php
########################################
# #
# Mambot #
# csv2joomla #
# Version 1.1 - 05.02.2007 #
# #
# (c) 2007 by Sascha Teuber. #
# All rights reserved. #
#
sascha.teuber@freenet.de #
# #
# Released under GNU/GPL License #
#
http://www.gnu.org/copyleft/gpl.html #
# #
########################################
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
$_MAMBOTS->registerFunction( 'onPrepareContent', 'plugin_csv2joomla' );
function plugin_csv2joomla($published, &$row, $mask=0, $page=0) {
if (!$published) {
return true;
}
$regex = "#{csv2joomla*(.*?)}#s";
$row->text = preg_replace_callback( $regex, 'plugin_csv2joomla_replacer', $row->text );
return true;
}
function plugin_csv2joomla_replacer(&$matches) {
$arr_parameter = explode(" ", $matches[1]);
$arr_csvfile = explode("=", $arr_parameter[1]);
$str_csvpfad = $arr_csvfile[1];
$arr_delimiter = explode("=", $arr_parameter[2]);
$str_trenner = $arr_delimiter[1];
$arr_headline = explode("=", $arr_parameter[3]);
$str_h1 = $arr_headline[1];
$arr_breite = explode("=", $arr_parameter[4]);
$int_breite = $arr_breite[1];
global $database;
$query= 'SELECT params FROM `#__mambots` WHERE `element` = "csv2joomla"';
$database->setQuery( $query);
$plugin_param = $database->loadResult();
$str_parameter = mosParseParams($plugin_param);
$str_h1farbe = $str_parameter->str_h1farbe;
$str_farbeheadline = $str_parameter->str_farbeheadline;
$str_hintergrundfarbeheadline = $str_parameter->str_hintergrundfarbeheadline;
$str_farbeinhalt = $str_parameter->str_farbeinhalt;
$str_hintergrundfarbeinhalt = $str_parameter->str_hintergrundfarbeinhalt;
if($str_farbeheadline == "") {
$str_farbeheadline = "#000000";
}
if($str_hintergrundfarbeheadline == "") {
$str_hintergrundfarbeheadline = "#AAAAAA";
}
if($str_farbeinhalt == "") {
$str_farbeinhalt = "#000000";
}
if($str_hintergrundfarbeinhalt == "") {
$str_hintergrundfarbeinhalt = "#EEEEEE";
}
if($int_breite == "") {
$int_breite = "500";
}
# BEGIN: Zugriffsmethode ermitteln (1. curl - 2. fopen - 3. sockets)
if(preg_match("/^http:\/\//", $str_csvpfad)) {
$eigenedomain = str_replace('http://', '', $str_csvpfad);
$domain = substr($eigenedomain, 0, strpos($eigenedomain, '/'));
$datei = substr($eigenedomain, strpos($eigenedomain, '/')+1);
}
if(function_exists("curl_version")) {
$ch = curl_init("http://$domain/$datei");
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$ret = curl_exec($ch);
curl_close($ch);
$arr_csvdatei = explode("\n", $ret);
$arr_spaltetabellenkennung = explode("$str_trenner", $arr_csvdatei[0]);
$int_anzahlabschnitt = count($arr_spaltetabellenkennung);
$html = "<style type=\"text/css\">";
$html .= ".csv2joomlahead {text-align:center; color:$str_farbeheadline; background-color:$str_hintergrundfarbeheadline;}";
$html .= ".csv2joomlainhalt {text-align:center; color:$str_farbeinhalt; background-color:$str_hintergrundfarbeinhalt;}";
$html .= "</style>";
$html .= "<h2 style=\"color:$str_h1farbe; text-align:center; text-decoration:underline;\">$str_h1</h2>\n";
$html .= "\n<table width=\"$int_breite\" border=\"1\" align=\"center\" cellspacing=\"0\">\n";
$html .= "\t<tr>\n";
for($int_zaehler = 0; $int_zaehler < $int_anzahlabschnitt; $int_zaehler++) {
$arr_spaltetabellenkennung = explode("$str_trenner", $arr_csvdatei[0]);
$html .= "\t\t<th class=\"csv2joomlahead\">" . trim($arr_spaltetabellenkennung[$int_zaehler]) . "</th>\n";
}
$html .= "\t</tr>\n";
for($int_zaehler = 1; $int_zaehler < count($arr_csvdatei); $int_zaehler++) {
$html .= "\t<tr>\n";
$arr_spaltetabellenkennung = explode("$str_trenner", $arr_csvdatei[$int_zaehler]);
for($int_zaehler1 = 0; $int_zaehler1 < $int_anzahlabschnitt; $int_zaehler1++) {
$html .= "\t\t<td class=\"csv2joomlainhalt\">" . trim($arr_spaltetabellenkennung[$int_zaehler1]) . "</td>\n";
}
$html .= "\t</tr>\n";
}
$html .= "</table>\n";
$html .= "<br>\n";
return $html;
}
elseif(ini_get("allow_url_fopen") == 1) {
$arr_csvdatei = file("http://$domain/$datei");
$arr_spaltetabellenkennung = explode("$str_trenner", $arr_csvdatei[0]);
$int_anzahlabschnitt = count($arr_spaltetabellenkennung);
$html = "<style type=\"text/css\">";
$html .= ".csv2joomlahead {text-align:center; color:$str_farbeheadline; background-color:$str_hintergrundfarbeheadline;}";
$html .= ".csv2joomlainhalt {text-align:center; color:$str_farbeinhalt; background-color:$str_hintergrundfarbeinhalt;}";
$html .= "</style>";
$html .= "<h2 style=\"color:$str_h1farbe; text-align:center; text-decoration:underline;\">$str_h1</h2>\n";
$html .= "\n<table width=\"$int_breite\" border=\"1\" align=\"center\" cellspacing=\"0\">\n";
$html .= "\t<tr>\n";
for($int_zaehler = 0; $int_zaehler < $int_anzahlabschnitt; $int_zaehler++) {
$arr_spaltetabellenkennung = explode("$str_trenner", $arr_csvdatei[0]);
$html .= "\t\t<th class=\"csv2joomlahead\">" . trim($arr_spaltetabellenkennung[$int_zaehler]) . "</th>\n";
}
$html .= "\t</tr>\n";
for($int_zaehler = 1; $int_zaehler < count($arr_csvdatei); $int_zaehler++) {
$html .= "\t<tr>\n";
$arr_spaltetabellenkennung = explode("$str_trenner", $arr_csvdatei[$int_zaehler]);
for($int_zaehler1 = 0; $int_zaehler1 < $int_anzahlabschnitt; $int_zaehler1++) {
$html .= "\t\t<td class=\"csv2joomlainhalt\">" . trim($arr_spaltetabellenkennung[$int_zaehler1]) . "</td>\n";
}
$html .= "\t</tr>\n";
}
$html .= "</table>\n";
$html .= "<br>\n";
return $html;
}
else {
$fp = fsockopen($domain, 80, $errno, $errstr, 30);
if (!$fp) {
echo "Curl, fopen & sockets sind nicht verfügbar";
}
else {
$out = "GET //$datei HTTP/1.1\r\n";
$out .= "Host: $domain\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
$resp .= fgets($fp, 128);
}
fclose($fp);
$resp = explode("\r\n\r\n",$resp);
unset($resp[0]);
$resp = implode("",$resp);
$arr_csvdatei = explode("\n",$resp);
$arr_spaltetabellenkennung = explode("$str_trenner", $arr_csvdatei[0]);
$int_anzahlabschnitt = count($arr_spaltetabellenkennung);
$html = "<style type=\"text/css\">";
$html .= ".csv2joomlahead {text-align:center; color:$str_farbeheadline; background-color:$str_hintergrundfarbeheadline;}";
$html .= ".csv2joomlainhalt {text-align:center; color:$str_farbeinhalt; background-color:$str_hintergrundfarbeinhalt;}";
$html .= "</style>";
$html .= "<h2 style=\"color:$str_h1farbe; text-align:center; text-decoration:underline;\">$str_h1</h2>\n";
$html .= "\n<table width=\"$int_breite\" border=\"1\" align=\"center\" cellspacing=\"0\">\n";
$html .= "\t<tr>\n";
for($int_zaehler = 0; $int_zaehler < $int_anzahlabschnitt; $int_zaehler++) {
$arr_spaltetabellenkennung = explode("$str_trenner", $arr_csvdatei[0]);
$html .= "\t\t<th class=\"csv2joomlahead\">" . trim($arr_spaltetabellenkennung[$int_zaehler]) . "</th>\n";
}
$html .= "\t</tr>\n";
for($int_zaehler = 1; $int_zaehler < count($arr_csvdatei); $int_zaehler++) {
$html .= "\t<tr>\n";
$arr_spaltetabellenkennung = explode("$str_trenner", $arr_csvdatei[$int_zaehler]);
for($int_zaehler1 = 0; $int_zaehler1 < $int_anzahlabschnitt; $int_zaehler1++) {
$html .= "\t\t<td class=\"csv2joomlainhalt\">" . trim($arr_spaltetabellenkennung[$int_zaehler1]) . "</td>\n";
}
$html .= "\t</tr>\n";
}
$html .= "</table>\n";
$html .= "<br>\n";
return $html;
}
}
# END: Zugriffsmethode ermitteln (1. curl - 2. fopen - 3. sockets)
}
?>
Lesezeichen