پارس جوم :: انجمن های تخصصی جوملا

نسخه‌ی کامل: تبدیل کدهای جوملا 1.5 به جوملا 3
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام
من تو تبدیل این کد پلاگینJoomla 1.5 به joomla 3.0 موندم لطفاً کمک کنید
کد:
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

if (!function_exists('randomkeys')) {
    function randomkeys($length) {
        $key = '';
        $pattern = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
        for($i = 0; $i < $length; $i++)    {
            $key .= $pattern{rand(0,strlen($pattern)-1)};
        }
        return $key;
    }
}

jimport('joomla.event.plugin');

class plgContentSIS extends JPlugin {
    
    private $image_dir = 'images/stories';
    private $uid;
    private $sis_dir = 'plugins/content/sis';
    private $width, $height;
    
    function plgContentSIS(&$subject) {
        parent::__construct($subject);
    }
        //$mainframe->registerEvent( 'onPrepareContent', 'plgContentPHPinc' );
    function onPrepareContent(&$row, &$params, $page=0)    {
        if ( JString::strpos($row->text, '{sis}') === false) {
            return true;
        }
        // Get plugin info
        $plugin =& JPluginHelper::getPlugin('content', 'sis');
        $pluginParams = new JParameter( $plugin->params );
        $image_dir = $pluginParams->get('image_dir');
        if (isset($image_dir{0})) {
            $this->image_dir = $image_dir;
        }
        $jquery_loaded = $pluginParams->get('jquery_loaded');
        $doc =& JFactory::getDocument();
        if ($jquery_loaded == 0) {
            $doc->addScript('plugins/content/sis/jquery-1.4.2.min.js');
        }
        $doc->addScript('plugins/content/sis/jquery.tools.min.js');
        //$regex = '/{sis (.*?)(\s+(.*?))?}/i';
        $regex = '@{sis}(.*?){/sis}@i';
        $row->text = preg_replace_callback($regex, array($this,'replaceSIS'), $row->text);
    }

    function replaceSIS($matches) {
        $this->uid = randomkeys(16);
        $folder = $this->image_dir.'/'.$matches[1];
        if (file_exists($folder)) {
            $files = glob("$folder/*.jpg");
            if (count($files) > 0) {
                $html = $this->getHTML($files);
                $doc =& JFactory::getDocument();
                $doc->addStyleDeclaration($this->getCSS($this->width, $this->height));
                $doc->addScriptDeclaration($this->getJS());
                return $html;
            } else {
                return '<p>No images found!</p>';
            }
        } else {
            return '<p>Folder not found!</p>';
        }
    }
    
    function getHTML($files) {
        $imgsize = getimagesize($files[0]);
        $this->width = $imgsize[0];
        $this->height = $imgsize[1];
        $html = '
<div class="'.$this->uid.'">
    <div class="scrollable">
        <div class="items">';
        foreach ($files as $file) {
            $alt = substr($file, strrpos($file, '/') + 1);
            $html .= '<div class="sis-image"><img width="'.$this->width.'" height="'.$this->height.'" src="'.$file.'" alt="'.$alt.'" /></div>';
        }
        $html .= '</div>
    </div>
    <a href="javascript:;" class="prev"></a>
    <a href="javascript:;" class="next"></a>
</div>';
        return $html;
    }
    
    function getCSS($width, $height) {
        $half_width = floor($width/2);
        $css = "
div.$this->uid a, div.$this->uid a:focus, div.$this->uid a:active {outline:none; border:0;}
div.$this->uid {position:relative;}
div.$this->uid a.prev:hover {background:url('{$this->sis_dir}/prev-active.png') no-repeat 5% 50%;}
div.$this->uid a.prev, div.$this->uid a.prev.disabled {display:block;width:{$half_width}px;height:{$height}px;position:absolute;top:0;​left:0;background:url('{$this->sis_dir}/prev.png') no-repeat 5% 50%;}
div.$this->uid a.next:hover {background:url('{$this->sis_dir}/next-active.png') no-repeat 95% 50%;}
div.$this->uid a.next, div.$this->uid a.next.disabled {display:block;width:{$half_width}px;height:{$height}px;position:absolute;top:0;​left:{$half_width}px;background:url('{$this->sis_dir}/next.png') no-repeat 95% 50%;}
div.$this->uid div.scrollable {width:{$width}px;height:{$height}px;overflow:hidden;position:relative;}
div.$this->uid div.scrollable div.items {width:20000em;position:absolute;}
div.$this->uid div.scrollable div.items div {float:left;}";        
        return $css;
    }
    
    function getJS() {
        $plugin =& JPluginHelper::getPlugin('content', 'sis');
        $pluginParams = new JParameter( $plugin->params );
        $use_keyboard = $pluginParams->get('use_keyboard');
        $use_keyboard = ($use_keyboard == 0)?"keyboard:0,":"";
        $transition = $pluginParams->get('transition');
        $transition = ($transition != '')?"speed:$transition,":"";
        $circular = $pluginParams->get('circular');
        $circular = ($circular == 1)?"circular:1,":"";
        $js = "
(function($) {
    $(document).ready(function() {
        $('div.$this->uid div.scrollable').scrollable({
            $use_keyboard $transition $circular    size:1
        });
    });
})(jQuery);";
        return $js;
    }
}
لینک مرجع