%PDF- %PDF-
| Direktori : /home1/lightco1/www/ilfanale.com.au/plugins/system/jsnpoweradmin/libraries/ |
| Current File : //home1/lightco1/www/ilfanale.com.au/plugins/system/jsnpoweradmin/libraries/jsnjoomlart.php |
<?php
/**
* @version $Id$
* @package JSNPoweradmin
* @subpackage
* @author JoomlaShine Team <support@joomlashine.com>
* @copyright Copyright (C) 2012 JoomlaShine.com. All Rights Reserved.
* @license GNU/GPL v2 or later http://www.gnu.org/licenses/gpl-2.0.html
*
* Websites: http://www.joomlashine.com
* Technical Support: Feedback - http://www.joomlashine.com/contact-us/get-support.html
*/
defined( '_JEXEC' ) or die( 'Restricted access' );
class JSNT3Template extends T3Template{
public function __construct( $template = NULL )
{
if ( $template )
{
parent::T3Template( $template );
}
}
/**
*
* Disable JT3 infomode
*
* @return: Save setting to file params.ini
*/
public function disableInfoMode()
{
JSNFactory::localimport('libraries.joomlashine.database');
$template = JSNDatabase::getDefaultTemplate();
$client = JApplicationHelper::getClientInfo($template->client_id);
$file = $client->path.'/templates/'.$template->element.'/params.ini';
$data = JFile::read($file);
$data = explode("\n", $data);
$params = array();
$needChange = false;
foreach( $data as $val){
$spos = strpos($val, "=");
$key = substr($val, 0, $spos);
$value = substr($val, $spos + 1, strlen($val) - $spos);
if ($key == 'infomode'){
if ( $value == '"1"' ){
$value = '"0"';
$needChange = true;
}
}
$params[$key] = $value;
}
if ( $needChange ){
$data = array();
foreach( $params as $key => $val){
$data[] = $key.'='.$val;
}
$data = implode("\n", $data);
if( JFile::exists($file) ){
@chmod($file, 0777);
}
JFile::write($file, $data);
}
}
/**
*
* JT3 Framework render
*/
public function render()
{
$replace = array();
$matches = array();
parent::loadLayout();
$data = $this->_html;
if(preg_match_all('#<jdoc:include\ type="([^"]+)" (.*)\/>#iU', $data, $matches)) {
$cache_exclude = parent::getParam ('cache_exclude');
$cache_exclude = new JRegistry ($cache_exclude);
$nc_com = explode (',',$cache_exclude->get ('component'));
$nc_pos = explode (',',$cache_exclude->get ('position'));
$replace = array();
$matches[0] = array_reverse($matches[0]);
$matches[1] = array_reverse($matches[1]);
$matches[2] = array_reverse($matches[2]);
$count = count($matches[1]);
$option = JRequest::getCmd ('option');
$headindex = -1;
//for none cache items
$nonecachesearch = array();
$nonecachereplace = array();
//search for item load in template (css, images, js)
$regex = '/(href|src)=("|\')([^"\']*\/templates\/' . T3_ACTIVE_TEMPLATE . '\/([^"\']*))\2/';
for($i = 0; $i < $count; $i++)
{
$attribs = JUtility::parseAttributes( $matches[2][$i] );
$type = $matches[1][$i];
$name = isset($attribs['name']) ? $attribs['name'] : null;
//no cache => no cache for all jdoc include except head
//cache: exclude modules positions & components listed in cache exclude param
//check if head
if ($type == 'head') $headindex = $i;
else {
$content = parent::getBuffer($type, $name, $attribs);
$renderer = $this->loadRenderer('module');
$poweradmin = JRequest::getCmd('poweradmin', 0);
$vsm_changeposition = JRequest::getCmd('vsm_changeposition', 0);
//Add a div wrapper for showing block information
if ( $poweradmin == 1 ) {
//If the page requested to render position only
if ($vsm_changeposition == 1){
if ($type == 'modules') {
$content = '<div class="jsn-element-container_inner">'.
'<div class="jsn-poweradmin-position clearafter" id="'.$name.'-jsnposition">
<p>'.$name.'</p>
</div>
</div>
';
} else if ($type == 'module') {
$key = "mod.$name";
} else if ($type == 'component') {
$content = '<div class="jsn-component-container" id="jsnrender-component"><div class="jsn-show-component-container"><p>'.parent::getTitle().'</p></div></div>';
} else $key = "$type.$name";
}else{
if ($type == 'modules') {
$buffer = '';
foreach (JModuleHelper::getModules($name) as $mod) {
$buffer .= '<div class="poweradmin-module-item" id="'.$mod->id.'-jsnposition" ><div id="moduleid-'.$mod->id.'-content">'.$renderer->render($mod, $attribs).'</div></div>';
}
$content = '<div class="jsn-element-container_inner">'.
'<div class="jsn-poweradmin-position clearafter" id="'.$name.'-jsnposition">
'.$buffer.'
</div>
</div>
';
} else if ($type == 'module') {
$key = "mod.$name";
} else if ($type == 'component') {
$app = JFactory::getApplication();
$itemid = JRequest::getVar('itemid', '');
$menu = $app->getMenu();
if ($itemid){
$menuItem = $menu->getItem($itemid);
}else{
$menuItem = $menu->getActive();
}
$uri = JURI::getInstance();
$route = JRouter::getInstance('site');
$params = $route->parse($uri);
if (empty($params['id']) && !empty($menuItem->id)){
$uri->parse($menuItem->link);
$params = $route->parse($uri);
}
if (!empty($params['option'])){
$key = array_search($params['option'], array('', 'com_content', 'com_categories', 'com_banner', 'com_weblinks', 'com_contact', 'com_newsfeeds', 'com_search', 'com_redirect'));
if ($key){
if (!empty($params['id'])){
if ($params['view'] == 'category'){
$editLink = 'option=com_categories&task=category.edit&id='.$params['id'].'&extension='.$params['option'].'&tmpl=component';
$task = 'category.apply';
}else{
switch($key)
{
case 1: //com_content
$editLink = 'option=com_content&task=article.edit&id='.$params['id'].'&tmpl=component';
$task = 'article.apply';
break;
case 2: //com_categories
$editLink = 'option=com_categories&task=category.edit&id='.$params['id'].'&tmpl=component';
$task = 'category.apply';
break;
case 3:
if($params['view'] == 'client'){
$editLink = 'option=com_banners&task=client.edit&id='.$params['id'].'&tmpl=component';
$task = 'client.apply';
}else{
$editLink = 'option=com_banners&task=banner.edit&id='.$params['id'].'&tmpl=component';
$task = 'bannber.apply';
}
break;
case 4:
$editLink = 'option=com_weblinks&task=weblink.edit&id='.$params['id'].'&tmpl=component';
$task = 'weblink.apply';
break;
case 5:
$editLink = 'option=com_contact&task=contact.edit&id='.$params['id'].'&tmpl=component';
$task = 'contact.apply';
break;
case 6:
$editLink = 'option=com_newsfeeds&task=newsfeed.edit&id='.$params['id'].'&tmpl=component';
$task = 'newsfeed.apply';
break;
case 7:
$editLink = 'option=com_search&task=search.edit&id='.$params['id'].'&tmpl=component';
$task = 'search.apply';
break;
case 8:
$editLink = 'option=com_redirect&task=link.edit&id='.$params['id'].'&tmpl=component';
$task = 'link.apply';
break;
}
}
}else{
$editLink = 'option=com_menus&task=item.edit&id='.$menuItem->id.'&tmpl=component';
$task = 'item.save';
}
}else{
//in feature
$editLink = '';
$task = '';
}
}else{
$editLink = '';
$task = '';
}
$content = '<div class="jsn-component-container" id="jsnrender-component">'
.'<div class="jsn-show-component-container">'
.'<div class="jsn-show-component">'
.'<span id="tableshow" itemid="'.$menuItem->id.'" editlink="'.base64_encode($editLink).'" title="'.parent::getTitle().'" task="'.$task.'"></span>'
.'</div>'
.'</div>'
.$content
.'</div>';
} else $key = "$type.$name";
}
}
//process url
$content = preg_replace_callback ( $regex, array ($this, 'processReplateURL' ), $content );
}
if (!parent::getParam ('cache') || $type == 'head' || ($type == 'modules' && in_array($name, $nc_pos)) || ($type == 'component' && in_array($option, $nc_com))) {
$replace[$i] = $matches[0][$i];
$nonecachesearch[] = $replace[$i];
$nonecachereplace[] = $content;
} else {
$replace[$i] = $content;
}
}
//update head
if ($headindex > -1) {
T3Head::proccess();
$head = parent::getBuffer('head');
$replace[$headindex] = $head;
}
//replace all cache content
$data = str_replace($matches[0], $replace, $data);
//update cache
$key = T3Cache::getPageKey ();
if ($key) {
T3Cache::store ( $data, $key );
}
//replace none cache content
$data = str_replace($nonecachesearch, $nonecachereplace, $data);
} else {
$token = JUtility::getToken();
$search = '#<input type="hidden" name="[0-9a-f]{32}" value="1" />#';
$replacement = '<input type="hidden" name="'.$token.'" value="1" />';
$data = preg_replace( $search, $replacement, $data );
}
echo $data;
}
}
?>