Всем привет,
пожалуйста помогите кто может.
Очень нужно переделать мамбот, который без проблем работал под старой Joomla, чтобы работал в "Native Mode" на новой 1.5.
Мамбот был частично ориентирован на
JoomPie. Т.е. я его переделал так, что он работал с флэшем
"Line & Area chart" от
Amcharts.
Плагин функционирует (под Joomla 1) таким образом:
В статьях контента можно вводить следующее:
{kursline}
{klmode}inline{/klmode}
{kldata}1949;2.54;20.21|1950;2.51;19.73|1951;2.53;18.43|1952;2.53;18.08{/kldata}
{klwidth}500{/klwidth}
{klheight}400{/klheight}
{kllabel}Current Index{/kllabel}
{/kursline}
или вот это:
{kursline}
{klmode}datex{/klmode}
{klattitude}amline_oi_settings.xml{/klattitude}
{kldatei}oiz_2charts.txt{/kldatei}
{klwidth}630{/klwidth}
{klheight}440{/klheight}
{kllabel}Index Notes{/kllabel}
{/kursline}
Эти данные через PHP-файл плагина коммуницируют с флэшем и получаются вот >
такие симпатичные графики.
PHP-скрипт плaгина выглядит следующим образом:
..................................................................................
<?php
// no direct access
defined('_JEXEC') or die("Direct Access Is Not Allowed");
global $mainframe;
$mainframe->registerEvent( 'onPrepareContent', 'kursline' );
function klParam( $name, $tags ) {
$paramregex = '/{kl'.$name.'}(.*){\/kl'.$name.'}/s';
$paramresult = preg_match($paramregex, $tags[1],$result);
return $result;
}
function kursline( $published, &$row ) {
global $database;
if (!$published) {
$row->text = preg_replace( '/{kursline}(.*){\/kursline}/s','', $row->text );
return true;
}
$version = "1.1";
$regex = '/{kursline}(.*){\/kursline}/s';
// Get Parameters from Content
$result = preg_match( $regex, $row->text, $tags );
$debug = klParam("debug", $tags);
$mode = klParam("mode", $tags);
$chart = klParam("chart", $tags);
$data = klParam("data", $tags);
$datei = klParam("datei", $tags);
$attitude = klParam("attitude", $tags);
$sql = klParam("sql", $tags);
$width = klParam("width", $tags);
$height = klParam("height", $tags);
$colors = klParam("colors", $tags);
$basecolor = klParam("basecolor", $tags);
$bgcolor = klParam("bgcolor", $tags);
$digitsafterdecimal = klParam("digitsafterdecimal", $tags);
// Get Parameters from Backend
$query = "SELECT id FROM #__mambots WHERE element = 'kursline' AND folder = 'content'";
$database->setQuery( $query );
$id = $database->loadResult();
$mambot = new mosMambot( $database );
$mambot->load( $id );
$mambotParams =& new mosParameters( $mambot->params );
// Use Content-Parameters or Backend-Defaults
if($debug[1]=="") $debug[1] = $mambotParams->get( 'debug', '0' );
if($chart[1]=="") $chart[1] = $mambotParams->get( 'chart', 'default' );
if($width[1]=="") $width[1] = $mambotParams->get( 'width', '500' );
if($height[1]=="") $height[1] = $mambotParams->get( 'height', '500' );
if($bgcolor[1]=="") $bgcolor[1] = $mambotParams->get( 'bgcolor', '#ffffff' );
if($digitsafterdecimal[1]=="") $digitsafterdecimal[1] = $mambotParams->get( 'digitsafterdecimal', '2' );
// ...............................
if($debug[1] == 1) {
echo "<pre>";
$row->text = print_r($mode);
$row->text = print_r($chart);
$row->text = print_r($sql);
$row->text = print_r($width);
$row->text = print_r($height);
$row->text = print_r($label);
$row->text = print_r($basecolor);
$row->text = print_r($data);
$row->text = print_r($bgcolor);
echo "</pre>";
}
global $mosConfig_live_site;
$repl = "\n".'<!-- KURSLINE v'.$version.' START -->'."\n";
$repl .= '<script type="text/javascript" src="';
$repl .= $mosConfig_live_site;
$repl .= '/mambots/content/kursline/amline/swfobject.js"></script>'."\n";
$repl .= '<div id="flashcontent_line"><strong>You need to upgrade your Flash Player</strong></div>';
$repl .= '<script type="text/javascript">'."\n";
$repl .= ' // <![CDATA['."\n";
$repl .= ' var so = new SWFObject("';
$repl .= $mosConfig_live_site;
$repl .= '/mambots/content/kursline/amline/amline.swf", "amline", "'.$width[1].'", "'.$height[1].'", "8", "'.$bgcolor[1].'");'."\n";
$repl .= ' so.addVariable("path", "';
$repl .= $mosConfig_live_site;
$repl .= '/mambots/content/kursline/amline/");'."\n";
if($mode[1] == "file") {
$repl .= ' so.addVariable("settings_file", "';
$repl .= $mosConfig_live_site;
$repl .= '/mambots/content/kursline/charts/default/amline_settings.xml");'."\n";
$repl .= ' so.addVariable("data_file", "';
$repl .= $mosConfig_live_site;
$repl .= '/mambots/content/kursline/charts/default/amline_data.txt");'."\n";
}
if($mode[1] == "datex") {
$repl .= ' so.addVariable("settings_file", "';
$repl .= $mosConfig_live_site;
$repl .= '/images/stories/charts/settings/'.$attitude[1].'");'."\n";
$repl .= ' so.addVariable("data_file", "';
$repl .= $mosConfig_live_site;
$repl .= '/images/stories/charts/'.$datei[1].'");'."\n";
}
if($mode[1] == "inline") {
if( !empty($data) ) {
$repl .= ' so.addVariable("settings_file", "';
$repl .= $mosConfig_live_site;
if(empty($chart)) {
$chart = "default";
}
else {
$chart = $chart[1];
}
$data[1] = str_replace("|","\\n",$data[1]);
$repl .= '/mambots/content/kursline/charts/'.$chart.'/amline_settings.xml");'."\n";
$repl .= ' so.addVariable("chart_data", escape("'.$data[1].'"))'."\n";
}
}
if($mode[1] == "sql") {
$sql = $sql[1];
$database->setQuery( $sql );
$sqldata = $database->loadRowList();
foreach($sqldata as $data) {
if(!empty($data[1])) {
$sqlitems .= $data[0].";".$data[1].";".'\n';
}
}
$repl .= ' so.addVariable("settings_file", "';
$repl .= $mosConfig_live_site;
if(empty($chart)) {
$chart = "default";
}
else {
$chart = $chart[1];
}
$repl .= '/mambots/content/kursline/charts/'.$chart.'/amline_settings.xml");'."\n";
$repl .= ' so.addVariable("chart_data", escape("'.$sqlitems.'"))'."\n";
}
$repl .= ' so.addVariable("additional_chart_settings", "';
$repl .= '<settings>';
// Global
$repl .= '<data_type>csv</data_type><font>Arial</font><text_size>'.$textsize[1].'</text_size>';
if( !empty($digitsafterdecimal) ) {
$repl .= '<digits_after_decimal>'.$digitsafterdecimal[1].'</digits_after_decimal>';
}
// ...............................
$repl .= '<export_as_image><file>../../mambots/content/kursline/amline/export.php</file><color>#69adc1</color><alpha>50</alpha></export_as_image>';
$repl .= '</settings>");'."\n";
$repl .= ' so.write("flashcontent_line");'."\n";
$repl .= ' // ]]>'."\n";
$repl .= '</script>'."\n";
$repl .= '<!-- KURSLINE v'.$version.' END -->'."\n";
$regex = '/{kursline}(.*){\/kursline}/s';
$row->text = preg_replace($regex, $repl, $row->text);
return true;
}
.....................................................................................
Буду невероятно признателен за любую помощь.
Огромное спасибо заранее!
Андрей