0 Пользователей и 1 Гость просматривают эту тему.
  • 0 Ответов
  • 1771 Просмотров

Всем привет,

пожалуйста помогите кто может.
Очень нужно переделать мамбот, который без проблем работал под старой 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;
}

.....................................................................................

Буду невероятно признателен за любую помощь.
Огромное спасибо заранее!
Андрей
« Последнее редактирование: 13.03.2009, 13:49:59 от letinant »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Надо переделать готовый компонент Генератор Купонов J2.5 на J1.5

Автор mkoff

Ответов: 3
Просмотров: 1416
Последний ответ 18.12.2014, 10:22:04
от assa1988
Шаблонизация компонентов в Joomla1.5. Первый взгляд.

Автор userxp

Ответов: 29
Просмотров: 22977
Последний ответ 30.01.2011, 23:56:42
от shprota