Пример #1
1
 /**
  *
  * Ajax render to store in session
  */
 public function ajaxGetRender()
 {
     /** load libraries for the system rener **/
     JSNFactory::localimport('libraries.joomlashine.mode.rawmode');
     JSNFactory::localimport('libraries.joomlashine.menu.menuitems');
     /** get url **/
     $render_url = JRequest::getVar('render_url', '');
     $urlRender = base64_decode($render_url);
     $session = JSession::getInstance('files', array('name' => 'jsnpoweradmin'));
     if ($render_url == '') {
         $urlRender = JSNDatabase::getDefaultPage()->link;
     }
     $currUri = new JURI($urlRender);
     if (!$currUri->hasVar('Itemid')) {
         $currUri->setVar('Itemid', JSNDatabase::getDefaultPage()->id);
     }
     $urlString = $currUri->toString();
     $session->set('rawmode_render_url', base64_encode($urlString));
     $parts = JString::parse_url($urlString);
     if (!empty($parts['query'])) {
         parse_str($parts['query'], $params);
     } else {
         $params = array();
     }
     $jsntemplate = JSNFactory::getTemplate();
     $jsnrawmode = JSNRawmode::getInstance($params);
     $jsnrawmode->setParam('positions', $jsntemplate->loadXMLPositions());
     $jsnrawmode->renderAll();
     $session = JSession::getInstance('files', array('name' => 'jsnajaxgetrender'));
     $session->set('component', $jsnrawmode->getHTML('component'));
     $session->set('jsondata', $jsnrawmode->getScript('positions', 'JSON'));
     jexit('success');
 }
 function modifyAttrs($lnkAttrs, $imgAttrs, $group, $params)
 {
     $lnkAttrs['rel'] = 'sexylightbox';
     if ($group) {
         $lnkAttrs['rel'] .= '[' . $group . ']';
     }
     $link = $lnkAttrs['href'];
     $bgColor = $params->get('lightbox_bgColor');
     if ($this->isLink($link)) {
         $uri = new JURI($link);
         $uri->setVar('TB_iframe', 'true');
         $uri->setVar('height', intval($params->get('lightbox_height'), 10));
         $uri->setVar('width', intval($params->get('lightbox_width'), 10));
         if ($bgColor) {
             $uri->setVar('background', $bgColor);
         }
         $lnkAttrs['href'] = $uri->toString();
     } else {
         if ($bgColor) {
             $uri = new JURI($link);
             $uri->setVar('background', $bgColor);
             $lnkAttrs['href'] = $uri->toString();
         }
     }
     return parent::modifyAttrs($lnkAttrs, $imgAttrs, $group, $params);
 }
Пример #3
1
 static function _($plainURL)
 {
     $config = JFactory::getConfig();
     $addSuffix = $config->get('sef_suffix', 0) == 1;
     $url = JRoute::_($plainURL);
     if ($addSuffix) {
         $uri = new JURI($plainURL);
         $format = $uri->getVar('format', 'html');
         $format = strtolower($format);
         if (!in_array($format, array('html', 'raw'))) {
             // Save any query parameters
             if (strstr($url, '?')) {
                 list($url, $qparams) = explode('?', $url, 2);
                 $qparams = '?' . $qparams;
             } else {
                 $qparams = '';
             }
             // Remove the suffix
             $basename = basename($url);
             $exploded = explode(".", $basename);
             $extension = end($exploded);
             $realbase = basename($url, '.' . $extension);
             $url = str_replace($basename, $realbase, $url) . $qparams;
             // Add a format parameter
             $uri = new JURI($url);
             $uri->setVar('format', $format);
             $url = $uri->toString();
         }
     }
     return $url;
 }
Пример #4
1
 function modifyAttrs($lnkAttrs, $imgAttrs, $group, $params)
 {
     $lnkAttrs['rel'] = 'prettyPhoto';
     if ($group) {
         $lnkAttrs['rel'] .= '[' . $group . ']';
     }
     $link = $lnkAttrs['href'];
     if ($this->isLink($link)) {
         $uri = new JURI($link);
         $uri->setVar('iframe', 'true');
         if (!$uri->getVar('height')) {
             $uri->setVar('height', intval($params->get('lightbox_height'), 10));
         } else {
             $height = $uri->getVar('height');
             $uri->delVar('height');
             $uri->setVar('height', $height);
         }
         if (!$uri->getVar('width')) {
             $uri->setVar('width', intval($params->get('lightbox_width'), 10));
         } else {
             $width = $uri->getVar('width');
             $uri->delVar('width');
             $uri->setVar('width', $width);
         }
         $lnkAttrs['href'] = $uri->toString();
     }
     return parent::modifyAttrs($lnkAttrs, $imgAttrs, $group, $params);
 }
Пример #5
0
 public function testToString()
 {
     $this->object->parse('http://*****:*****@www.example.com:80/path/file.html?var=value#fragment');
     $this->assertThat($this->object->toString(), $this->equalTo('http://*****:*****@www.example.com:80/path/file.html?var=value#fragment'));
     $this->object->setQuery('somevar=somevalue');
     $this->object->setVar('somevar2', 'somevalue2');
     $this->object->setScheme('ftp');
     $this->object->setUser('root');
     $this->object->setPass('secret');
     $this->object->setHost('www.example.org');
     $this->object->setPort('8888');
     $this->object->setFragment('someFragment');
     $this->object->setPath('/this/is/a/path/to/a/file');
     $this->assertThat($this->object->toString(), $this->equalTo('ftp://*****:*****@www.example.org:8888/this/is/a/path/to/a/file?somevar=somevalue&somevar2=somevalue2#someFragment'));
 }
Пример #6
0
function gTranslate($text, $SourceLan, $ResultLan)
{
    $url = new JURI();
    // for APIv2
    $url->setHost('https://www.googleapis.com/');
    $url->setPath('language/translate/v2');
    $query['key'] = 'AIzaSyC04nF4KXjfR2VQ0jsFm5vEd9LbyiXqbKw';
    $query['q'] = urlencode($text);
    $query['source'] = $SourceLan;
    $query['target'] = $ResultLan;
    if (!$text) {
        return;
    }
    $url->setQuery($query);
    $url->toString();
    $response = AKHelper::_('curl.getPage', $url->toString());
    $json = new JRegistry($response);
    $r = $json->get('data.translations');
    return $r[0]->translatedText;
}
Пример #7
0
 /**
  * A method to do Google translate.
  * 
  * @param   string    $text        String to translate.
  * @param   string    $SourceLan   Translate from this language, eg: 'zh-tw'. Empty will auto detect.
  * @param   string    $ResultLan   Translate to this language, eg: 'en'. Empty will auto detect.
  *
  * @return  string    Translated text.  
  */
 public static function gTranslate($text, $SourceLan, $ResultLan)
 {
     $url = new JURI();
     // for APIv2
     $url->setHost('https://www.googleapis.com/');
     $url->setPath('language/translate/v2');
     $query['key'] = self::APT_KEY;
     $query['q'] = urlencode($text);
     $query['source'] = $SourceLan;
     $query['target'] = $ResultLan;
     if (!$text) {
         return;
     }
     $url->setQuery($query);
     $url->toString();
     $response = AKHelper::_('curl.getPage', $url->toString());
     $json = new JRegistry();
     $json->loadString($response);
     $r = $json->get('data.translations');
     return $r[0]->translatedText;
 }
Пример #8
0
 /**
  * Return HTML, subitems in menu
  * 
  * @param: Array items
  * @param: int $menuid
  */
 protected function renderItems($mItems, $moduleid)
 {
     $items = '';
     if (count($mItems)) {
         for ($i = 0; $i < count($mItems); $i++) {
             $publish = $mItems[$i]->published == 1 ? 'Unpublish' : 'Publish';
             $class_unpublish = $mItems[$i]->published == 0 ? ' unpublish' : '';
             $default = $mItems[$i]->home == 1 ? ' default' : '';
             $uri = new JURI($mItems[$i]->link);
             $link = $uri->toString();
             //if external link
             if (!JURI::isInternal($link)) {
                 $link = $mItems[$i]->link;
             } else {
                 $link = JURI::root() . $link;
             }
             //if default item
             if ($mItems[$i]->home == 1) {
                 $link = JURI::root();
             }
             $attributes = $this->getCheckboxAttributes($mItems[$i]->id, $moduleid);
             if ($mItems[$i]->type == 'alias') {
                 $aliasparams = new JRegistry();
                 $aliasparams->loadString($mItems[$i]->params);
                 $address_itemid = $aliasparams->get('aliasoptions');
                 if ((int) $address_itemid > 0) {
                     $address_item = $this->getMenuItem($address_itemid);
                     if (!$address_item) {
                         continue;
                     }
                     $link = $address_item->link;
                     if (strpos($link, '?') === false) {
                         $link .= '?aliasoptions=' . $address_itemid . '&Itemid=' . $mItems[$i]->id;
                     } else {
                         $link .= '&aliasoptions=' . $address_itemid . '&Itemid=' . $mItems[$i]->id;
                     }
                     $mItems[$i]->link = $link;
                 }
             }
             if ($this->hasChild($mItems[$i]->id)) {
                 $subItems = $this->getItems($mItems[$i]->menutype, $mItems[$i]->id);
                 //Render item
                 $items .= JSNHtmlHelper::openTag('li') . JSNHtmlHelper::addInputTag('checkbox', $attributes) . JSNHtmlHelper::openTag('a', array('conClick' => 'javascript:void(0);', 'class' => $default . $class_unpublish, 'href' => $link, 'title' => $this->getMenuItemType($mItems[$i]->link))) . $mItems[$i]->title . JSNHtmlHelper::closeTag('a') . JSNHtmlHelper::openTag('ul', array('class' => 'jsn-menu-items', 'id' => 'item-' + $mItems[$i]->id)) . $this->renderItems($subItems, $moduleid) . JSNHtmlHelper::closeTag('ul') . JSNHtmlHelper::closeTag('li');
             } else {
                 $items .= JSNHtmlHelper::openTag('li') . JSNHtmlHelper::addInputTag('checkbox', $attributes) . JSNHtmlHelper::openTag('a', array('onClick' => 'javascript:void(0);', 'class' => $default . $class_unpublish, 'href' => $link, 'title' => $this->getMenuItemType($mItems[$i]->link))) . $mItems[$i]->title . JSNHtmlHelper::closeTag('a') . JSNHtmlHelper::closeTag('li');
             }
         }
     }
     return $items;
 }
Пример #9
0
 function getObjectInfo($id, $language = null)
 {
     $db = JFactory::getDBO();
     $article = null;
     $link = null;
     require_once JPATH_ROOT . '/components/com_content/helpers/route.php';
     $query = $db->getQuery(true);
     // Select the required fields from the table.
     $query->select('a.id, a.title, a.created_by, a.access, a.alias, a.catid, a.language');
     $query->from('#__content AS a');
     // Join over the categories.
     $query->select('c.title AS category_title, c.path AS category_route, c.access AS category_access, c.alias AS category_alias');
     $query->join('LEFT', '#__categories AS c ON c.id = a.catid');
     $query->where('a.id = ' . (int) $id);
     $db->setQuery($query);
     $article = $db->loadObject();
     if (!empty($article)) {
         $user = JFactory::getUser();
         $article->slug = $article->alias ? $article->id . ':' . $article->alias : $article->id;
         $article->catslug = $article->category_alias ? $article->catid . ':' . $article->category_alias : $article->catid;
         $authorised = JAccess::getAuthorisedViewLevels($user->get('id'));
         $checkAccess = in_array($article->access, $authorised);
         if ($checkAccess) {
             $link = JRoute::_(ContentHelperRoute::getArticleRoute($article->slug, $article->catslug, $article->language));
         } else {
             $returnURL = JRoute::_(ContentHelperRoute::getArticleRoute($article->slug, $article->catslug, $article->language));
             $menu = JFactory::getApplication()->getMenu();
             $active = $menu->getActive();
             $ItemId = $active->id;
             $link = JRoute::_('index.php?option=com_users&view=login&Itemid=' . $ItemId);
             $uri = new JURI($link);
             $uri->setVar('return', base64_encode($returnURL));
             $link = $uri->toString();
         }
     }
     $info = new JCommentsObjectInfo();
     if (!empty($article)) {
         $info->category_id = $article->catid;
         $info->title = $article->title;
         $info->access = $article->access;
         $info->userid = $article->created_by;
         $info->link = $link;
     }
     return $info;
 }
Пример #10
0
 /**
  * Give a relative path, return path with host.
  *
  * @param   string $path A system path.
  *
  * @return  string  Path with host added.
  */
 public static function pathAddHost($path)
 {
     if (!$path) {
         return;
     }
     // build path
     $uri = new JURI($path);
     if ($uri->getHost()) {
         return $path;
     }
     $uri->parse(JURI::root());
     $root_path = $uri->getPath();
     if (strpos($path, $root_path) === 0) {
         $num = JString::strlen($root_path);
         $path = JString::substr($path, $num);
     }
     $uri->setPath($uri->getPath() . $path);
     $uri->setScheme('http');
     $uri->setQuery(null);
     return $uri->toString();
 }
Пример #11
0
 function modifyAttrs($lnkAttrs, $imgAttrs, $group, $params)
 {
     if ($group) {
         $lnkAttrs['rel'] = $group;
     }
     if (empty($lnkAttrs['class'])) {
         $lnkAttrs['class'] = '';
     } else {
         $lnkAttrs['class'] .= ' ';
     }
     $lnkAttrs['class'] .= 'arifancybox';
     $link = $lnkAttrs['href'];
     if ($this->isLink($link)) {
         $uri = new JURI($link);
         $lnkParams = array('width' => intval($uri->getVar('width') ? $uri->getVar('width') : $params->get('lightbox_width'), 10), 'height' => intval($uri->getVar('height') ? $uri->getVar('height') : $params->get('lightbox_height'), 10));
         $lnkAttrs['class'] .= ' iframe ' . str_replace('"', '&quot;', AriJSONHelper::encode($lnkParams));
         $uri->delVar('width');
         $uri->delVar('height');
         $lnkAttrs['href'] = $uri->toString();
     }
     return parent::modifyAttrs($lnkAttrs, $imgAttrs, $group, $params);
 }
Пример #12
0
 function _uriToUrl($uri, $removeVariables = null)
 {
     // Create new JURI object
     $url = new JURI($uri->toString(array('path', 'query', 'fragment')));
     // Remove variables if needed
     if (!empty($removeVariables)) {
         if (is_array($removeVariables)) {
             foreach ($removeVariables as $var) {
                 $url->delVar($var);
             }
         } else {
             $url->delVar($removeVariables);
         }
     }
     // sort variables
     ksort($url->_vars);
     $opt = $url->getVar('option');
     if (!is_null($opt)) {
         $url->delVar('option');
         array_unshift($url->_vars, array('option' => $opt));
     }
     $url->_query = null;
     // Create string for db
     return $url->toString(array('path', 'query'));
 }
 /**
  * 
  * Add image tag to 
  * 
  * @param String $src
  * @param String $attrs
  */
 public static function showImage($src, $attrs = "")
 {
     $uri = new JURI($src);
     return '<img src="' . JURI::root() . $uri->toString() . '" ' . $attrs . ' />';
 }
Пример #14
0
 function prepareSlides($slides, $params)
 {
     $newSlides = array();
     $target = $params->get('customLinkTarget');
     if (empty($target)) {
         $target = $params->get('linkTarget', '_self');
     }
     $defLink = $params->get('defaultLink');
     $baseUri = JURI::base(true);
     $lightboxEngine = AriImageSliderHelper::getLightboxEngine($params);
     $lightboxGrouping = (bool) $params->get('lightbox_grouping', true);
     $lightboxGroup = $lightboxGrouping ? uniqid('cc_') : null;
     foreach ($slides as $slide) {
         $slideLink = !empty($slide['link']) ? $slide['link'] : $defLink;
         if (empty($slide['link']) && !empty($defLink)) {
             $slide['link'] = $defLink;
         }
         $isLink = !empty($slideLink);
         $description = isset($slide['description']) ? $slide['description'] : '';
         $altText = isset($slide['alt']) ? $slide['alt'] : '';
         $lnkAttrs = null;
         $imgAttrs = array('src' => $baseUri . '/' . $slide['image'], 'alt' => $altText, 'title' => $description, 'class' => 'imageslider-item');
         if (!empty($slide['width'])) {
             $imgAttrs['width'] = $slide['width'];
         }
         if (!empty($slide['height'])) {
             $imgAttrs['height'] = $slide['height'];
         }
         if ($isLink) {
             $lnkAttrs = array('href' => $slideLink, 'target' => $target);
             if ($description) {
                 $lnkAttrs['title'] = $description;
             }
             $skip_lb = false;
             if (!is_null($lightboxEngine) && strpos($slideLink, 'skip_lb') !== false) {
                 $uri = new JURI($slideLink);
                 $skip_lb = (bool) $uri->getVar('skip_lb');
                 $uri->delVar('skip_lb');
                 $slideLink = $uri->toString();
                 $lnkAttrs['href'] = $slideLink;
             }
             if (!$skip_lb && !is_null($lightboxEngine)) {
                 list($lnkAttrs, $imgAttrs) = $lightboxEngine->modifyAttrs($lnkAttrs, $imgAttrs, $lightboxGroup, $params);
             } else {
                 $originalLink = $slideLink;
                 if (strpos($originalLink, '_target') !== false) {
                     $uri = new JURI($originalLink);
                     $linkTarget = $uri->getVar('_target');
                     if (!is_null($linkTarget)) {
                         $uri->delVar('_target');
                         $lnkAttrs['target'] = $linkTarget;
                         $lnkAttrs['href'] = $uri->toString();
                     }
                 }
             }
         }
         $slide['lnkAttrs'] = $lnkAttrs;
         $slide['imgAttrs'] = $imgAttrs;
         $newSlides[] = $slide;
     }
     return $newSlides;
 }
Пример #15
0
 function onTP_Processpayment($data, $vars = array())
 {
     $isValid = true;
     $error = array();
     $error['code'] = '';
     $error['desc'] = '';
     $trxnstatus = '';
     JLoader::import('joomla.utilities.date');
     // Check if we're supposed to handle this
     JLoader::import('joomla.environment.uri');
     switch ($this->params->get('site', 0)) {
         case '0':
         default:
             $apiURL = 'https://au.ewaygateway.com/Result';
             break;
         case '1':
             $apiURL = 'https://payment.ewaygateway.com/Result';
             break;
         case '2':
             $apiURL = 'https://nz.ewaygateway.com/Result';
             break;
     }
     $eWayURL = new JURI($apiURL);
     $eWayURL->setVar('CustomerID', urlencode($this->params->get('customerid', '')));
     $eWayURL->setVar('UserName', urlencode($this->params->get('username', '')));
     $eWayURL->setVar('AccessPaymentCode', urlencode($data['AccessPaymentCode']));
     $posturl = $eWayURL->toString();
     $posturl = str_replace('Result?', 'Result/?', $posturl);
     $ch = curl_init();
     curl_setopt($ch, CURLOPT_URL, $posturl);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     curl_setopt($ch, CURLOPT_HEADER, 1);
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
     if (defined('CURL_PROXY_REQUIRED')) {
         if (CURL_PROXY_REQUIRED == 'True') {
             $proxy_tunnel_flag = defined('CURL_PROXY_TUNNEL_FLAG') && strtoupper(CURL_PROXY_TUNNEL_FLAG) == 'FALSE' ? false : true;
             curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, $proxy_tunnel_flag);
             curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
             curl_setopt($ch, CURLOPT_PROXY, CURL_PROXY_SERVER_DETAILS);
         }
     }
     $response = curl_exec($ch);
     $authecode = $this->fetch_data($response, '<authCode>', '</authCode>');
     $responsecode = $this->fetch_data($response, '<responsecode>', '</responsecode>');
     $retrunamount = $this->fetch_data($response, '<returnamount>', '</returnamount>');
     $trxnnumber = $this->fetch_data($response, '<trxnnumber>', '</trxnnumber>');
     $trxnstatus = $this->fetch_data($response, '<trxnstatus>', '</trxnstatus>');
     $trxnresponsemessage = $this->fetch_data($response, '<trxnresponsemessage>', '</trxnresponsemessage>');
     // order id
     $MerchantOption1_orderid = $this->fetch_data($response, '<MerchantOption1>', '</MerchantOption1>');
     $MerchantOption2_email = $this->fetch_data($response, '<MerchantOption2>', '</MerchantOption2>');
     $merchantreference = $this->fetch_data($response, '<merchantreference>', '</merchantreference>');
     $isValid = true;
     // Check that the amount is correct // checked in model payment
     $rootURL = rtrim(JURI::base(), '/');
     $subpathURL = JURI::base(true);
     if (!empty($subpathURL) && $subpathURL != '/') {
         $rootURL = substr($rootURL, 0, -1 * strlen($subpathURL));
     }
     //3.compare response order id and send order id in notify URL
     if ($isValid) {
         if (!empty($vars) && $MerchantOption1_orderid != $vars->order_id) {
             $isValid = false;
             $trxnstatus = 'ERROR';
             $data['error'] = "ORDER_MISMATCH" . "Invalid ORDERID; notify order_is " . $vars->order_id . ", and response " . $MerchantOption1_orderid;
         }
     }
     // amount check
     if ($isValid) {
         if (!empty($vars)) {
             // Check that the amount is correct
             $order_amount = (double) $vars->amount;
             $return_resp['status'] = '0';
             $retrunamount = (double) $retrunamount;
             $epsilon = 0.01;
             if ($order_amount - $retrunamount > $epsilon) {
                 $trxnstatus = 'ERROR';
                 // change response status to ERROR FOR AMOUNT ONLY
                 $isValid = false;
                 $data['error'] = "ORDER_AMOUNT_MISTMATCH - order amount= " . $order_amount . ' response order amount = ' . $retrunamount;
             }
         }
     }
     $order_status = '';
     // Translaet Payment status
     $order_status = $this->translateResponse($trxnstatus);
     // IF REQUIRE:: add the AfterPaymentCallback events
     $data['status'] = $trxnstatus;
     //Error Handling
     $responseCodes = $this->responseCodes;
     $error = array();
     if ($responsecode != '00') {
         $error['code'] = $responsecode;
         $error['desc'] = isset($responsecode) ? $responseCodes[$responsecode] : '';
     }
     $result = array('order_id' => $MerchantOption1_orderid, 'transaction_id' => $authecode, 'buyer_email' => $MerchantOption2_email, 'status' => $order_status, 'txn_type' => '', 'total_paid_amt' => (double) $retrunamount, 'raw_data' => $response, 'error' => $error);
     //return true;
     return $result;
 }
Пример #16
0
 function _fixLangSwitcher($reqURI)
 {
     $isLangFilter = JPluginHelper::isEnabled("system", "languagefilter");
     if (!$isLangFilter) {
         return $reqURI;
     }
     $uri = JFactory::getURI();
     $app = JFactory::getApplication();
     $router = $app->getRouter();
     if ($app->isSite()) {
         // setup language data
         $mode_sef = $router->getMode() == JROUTER_MODE_SEF ? true : false;
         $default_lang = JLanguageHelper::getLanguages('lang_code');
         if ($mode_sef) {
             // Get the route path from the request.
             $path = JString::substr($uri->toString(), JString::strlen($uri->base()));
             // Apache mod_rewrite is Off
             //$path = JFactory::getConfig()->get('sef_rewrite') ? $path : JString::substr($path, 10);
             $path = $app->getCfg('sef_rewrite') ? $path : JString::substr($path, 10);
             // Trim any spaces or slashes from the ends of the path and explode into segments.
             $path = JString::trim($path, '/ ');
             $parts = explode('/', $path);
             // The language segment is always at the beginning of the route path if it exists.
             $langcode = $uri->getVar('lang');
             if (!empty($parts) && empty($langcode)) {
                 $langcode = reset($parts);
             }
             //set to default language
             if (empty($langcode)) {
                 //$langcode = $default_lang;
                 // @since 4.0 we get default language from here
                 $lang = JFactory::getLanguage();
                 $langcode = $lang->getDefault();
             }
             //append language code to the request
             $reqURI = $reqURI . '/' . $langcode . '/';
         } else {
             $langcode = $uri->getVar('lang', $default_lang);
             //append language code to the request
             $tmpURI = new JURI($reqURI);
             $tmpURI->setVar('lang', $langcode);
             $reqURI = $tmpURI->toString();
         }
     }
     return $reqURI;
 }
Пример #17
0
 static function fixPage()
 {
     global $user, $phpEx;
     $uri = new JURI($user->page['page_name'] . '.' . $phpEx . '?' . $user->page['query_string']);
     $user->page['page'] = $uri->toString();
 }
Пример #18
0
 static function _($url, $xhtml = false, $ssl = null, $d = false)
 {
     // skip any external urls
     if (strpos($url, "option") !== false && strpos($url, "option=com_fss") === false) {
         return JRoute::_($url, $xhtml, $ssl);
     }
     global $FSSRoute_debug;
     global $FSSRoute_menus;
     global $FSSRoute_access;
     self::$d = $d;
     // get any menu items for fss
     FSS_Helper::GetRouteMenus();
     // Get the router
     $router = JFactory::getApplication()->getRouter();
     // if the url dont start with index.php, we need to add the exisitng url to what we want
     if (substr($url, 0, 9) != "index.php") {
         //echo "Making FUll URL: $url<br>";
         $url = self::_fullURL($router, $url);
         //echo "Resut : $url<br>";
     }
     $uri = new JURI($url);
     // work out is we are in an Itemid already, if so, set it as the best match
     if ($uri->hasVar('Itemid')) {
         $bestmatch = $uri->getVar('Itemid');
     } else {
         $bestmatch = '';
     }
     $bestcount = 0;
     $uriquery = $uri->toString(array('query'));
     $urivars = FSSRoute::SplitURL($uriquery);
     $sourcevars = FSSRoute::SplitURL($url);
     // check through the menu item for the current url, and add any items to the new url that are missing
     if ($bestmatch && array_key_exists($bestmatch, $FSSRoute_menus)) {
         foreach ($FSSRoute_menus[$bestmatch] as $key => $value) {
             if (!array_key_exists($key, $urivars) && !array_key_exists($key, $sourcevars)) {
                 $urivars[$key] = $value;
             }
         }
     }
     $current_access = 0;
     if (array_key_exists(FSS_Input::getInt('Itemid'), $FSSRoute_access)) {
         $current_access = $FSSRoute_access[FSS_Input::getInt('Itemid')];
     }
     if ($d) {
         echo "Incoming Link : {$url}<br>";
         echo "Cur Item ID : " . FSS_Input::getInt('Itemid') . "<br>";
         //print_p($FSSRoute_menus);
     }
     foreach ($FSSRoute_menus as $id => $vars) {
         if ($d) {
             echo "{$id} => <Br>";
             print_p($vars);
         }
         // need to check if the access level is the same
         if ($current_access && array_key_exists($id, $FSSRoute_access) && $FSSRoute_access[$id] != $current_access) {
             if ($d) {
                 echo "No Access<br>";
             }
             continue;
         }
         $count = FSSRoute::MatchVars($urivars, $vars);
         if (FSS_Input::getInt('Itemid') == $id && $count > 0) {
             if ($d) {
                 echo "Current ItemId: increase count<br>";
             }
             $count++;
         }
         if ($d) {
             echo "Count: {$count}<br>";
         }
         if ($count > $bestcount) {
             if ($d) {
                 echo "New best match - {$id}<br>";
             }
             $bestcount = $count;
             $bestmatch = $id;
         }
     }
     if ($bestcount == 0 && array_key_exists('view', $sourcevars) && substr($sourcevars['view'], 0, 6) == "admin_") {
         foreach ($FSSRoute_menus as $id => $item) {
             // need to check if the access level is the same
             if ($current_access && array_key_exists($id, $FSSRoute_access) && $FSSRoute_access[$id] != $current_access) {
                 continue;
             }
             if ($item['view'] == "admin") {
                 $bestcount = 1;
                 $bestmatch = $id;
             }
         }
     }
     // no match found, try to fallback on the main support menu id
     if ($bestcount == 0) {
         foreach ($FSSRoute_menus as $id => $item) {
             // need to check if the access level is the same
             if ($current_access && array_key_exists($id, $FSSRoute_access) && $FSSRoute_access[$id] != $current_access) {
                 continue;
             }
             if ($item['view'] == "main") {
                 $bestcount = 1;
                 $bestmatch = $id;
             }
         }
     }
     if ($bestcount == 0) {
         // still no match found, use any fss menu
         if (count($FSSRoute_menus) > 0) {
             foreach ($FSSRoute_menus as $id => $item) {
                 // need to check if the access level is the same
                 if ($current_access && array_key_exists($id, $FSSRoute_access) && $FSSRoute_access[$id] != $current_access) {
                     continue;
                 }
                 $bestcount = 1;
                 $bestmatch = $id;
                 break;
             }
         }
     }
     if ($d) {
         echo "Best Found : {$bestcount}, {$bestmatch}<br>";
     }
     // sticky menu items
     if (FSS_Settings::get('sticky_menus_type')) {
         $cur_item_id = FSS_Input::GetInt("Itemid");
         if ($cur_item_id > 0) {
             $sticky_ids = explode(";", FSS_Settings::get('sticky_menus'));
             if (FSS_Settings::get('sticky_menus_type') == 1 && in_array($cur_item_id, $sticky_ids) || FSS_Settings::get('sticky_menus_type') == 2 && !in_array($cur_item_id, $sticky_ids)) {
                 $bestcount = 0;
                 $uri->setVar('Itemid', $cur_item_id);
             }
         }
     }
     if ($bestcount > 0) {
         $uri->setVar('Itemid', $bestmatch);
         // we need to remove parameters that are in the main url as well as the sub one
         // wait till 2.2 for this change as it may break stuff
     }
     if ($d) {
         echo "Using : " . $uri->toString(array('path', 'query', 'fragment')) . "<br>";
     }
     return JRoute::_($uri->toString(array('path', 'query', 'fragment')), $xhtml, $ssl);
 }
Пример #19
0
 /**
  * Method to get the OAuth message string for signing.
  *
  * Note: As of PHP 5.3 the $this->encode() function is RFC 3986 compliant therefore this requires PHP 5.3+
  *
  * @param   string  $requestUrl     The message's request URL.
  * @param   string  $requestMethod  The message's request method.
  *
  * @return  string  The unsigned OAuth message string.
  *
  * @link    http://www.faqs.org/rfcs/rfc3986
  * @see     $this->encode()
  * @since   1.0
  */
 public function _fetchStringForSigning($requestUrl, $requestMethod)
 {
     // Get a JURI instance for the request URL.
     $uri = new JURI($requestUrl);
     // Initialise base array.
     $base = array();
     // Get the found parameters.
     $params = $this->getParameters();
     // Add the variables from the URI query string.
     foreach ($uri->getQuery(true) as $k => $v) {
         if (strpos($k, 'oauth_') !== 0) {
             $params[$k] = $v;
         }
     }
     // Make sure that any found oauth_signature is not included.
     unset($params['oauth_signature']);
     // Ensure the parameters are in order by key.
     ksort($params);
     // Iterate over the keys to add properties to the base.
     foreach ($params as $key => $value) {
         // If we have multiples for the parameter let's loop over them.
         if (is_array($value)) {
             // Don't want to do this more than once in the inner loop.
             $key = $this->encode($key);
             // Sort the value array and add each one.
             sort($value, SORT_STRING);
             foreach ($value as $v) {
                 $base[] = $key . '=' . $this->encode($v);
             }
         } else {
             $base[] = $this->encode($key) . '=' . $this->encode($value);
         }
     }
     // Start off building the base string by adding the request method and URI.
     $base = array($this->encode(strtoupper($requestMethod)), $this->encode(strtolower($uri->toString(array('scheme', 'user', 'pass', 'host', 'port'))) . $uri->getPath()), $this->encode(implode('&', $base)));
     return implode('&', $base);
 }
Пример #20
0
 function &getItem($index = 0, &$params)
 {
     global $mainframe;
     // Initialize some variables
     $user =& JFactory::getUser();
     $dispatcher =& JDispatcher::getInstance();
     $SiteName = $mainframe->getCfg('sitename');
     $task = JRequest::getCmd('task');
     $linkOn = null;
     $linkText = null;
     $item =& $this->items[$index];
     $item->text = $item->introtext;
     // Get the page/component configuration and article parameters
     $item->params = clone $params;
     $aparams = new JParameter($item->attribs);
     // Merge article parameters into the page configuration
     $item->params->merge($aparams);
     // Process the content preparation plugins
     JPluginHelper::importPlugin('content');
     $results = $dispatcher->trigger('onPrepareContent', array(&$item, &$item->params, 0));
     // Build the link and text of the readmore button
     if ($item->params->get('show_readmore') && @$item->readmore || $item->params->get('link_titles')) {
         // checks if the item is a public or registered/special item
         if ($item->access <= $user->get('aid', 0)) {
             //$item->readmore_link = JRoute::_("index.php?view=article&id=".$item->slug);
             $item->readmore_link = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->sectionid));
             $item->readmore_register = false;
         } else {
             $item->readmore_link = JRoute::_("index.php?option=com_user&view=login");
             $returnURL = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->sectionid), false);
             $fullURL = new JURI($item->readmore_link);
             $fullURL->setVar('return', base64_encode($returnURL));
             $item->readmore_link = $fullURL->toString();
             $item->readmore_register = true;
         }
     }
     $item->event = new stdClass();
     $results = $dispatcher->trigger('onAfterDisplayTitle', array(&$item, &$item->params, 0));
     $item->event->afterDisplayTitle = trim(implode("\n", $results));
     $results = $dispatcher->trigger('onBeforeDisplayContent', array(&$item, &$item->params, 0));
     $item->event->beforeDisplayContent = trim(implode("\n", $results));
     $results = $dispatcher->trigger('onAfterDisplayContent', array(&$item, &$item->params, 0));
     $item->event->afterDisplayContent = trim(implode("\n", $results));
     return $item;
 }
Пример #21
0
$db = JFactory::getDbo();
$q = $db->getQuery(true);
$q->select("*")->from("#__menu")->where("id != 1")->where("published=1")->where("access=1");
$db->setQuery($q);
$menus = $db->loadObjectList();
foreach ($menus as $menu) {
    if (!$menu->link) {
        continue;
    }
    // fix URI bugs
    $uri = new JURI($menu->link);
    $uri->setVar('Itemid', $menu->id);
    if ($app->getCfg('sef')) {
        $uri->setVar('layout', null);
    }
    $link = JRoute::_($uri->toString());
    $host = str_replace('http://' . $_SERVER['HTTP_HOST'], '', JURI::root());
    $link = str_replace($host, '', $link);
    $link = AK::_('uri.pathAddHost', $link);
    // set xml data
    $url = $xml->addChild('url');
    $url->addChild('loc', $link);
    $url->addChild('lastmod', $date->format('Y-m-d'));
    $url->addChild('changefreq', 'weekly');
    $url->addChild('priority', '0.8');
    $exists_links[] = $link;
}
// build category map
$q = $db->getQuery(true);
$q->select("*")->from("#__categories")->where("id != 1")->where("published=1")->where("access=1")->where("extension = 'com_content'");
$db->setQuery($q);
Пример #22
0
 function getObjectInfo($id, $language = null)
 {
     $db = JCommentsFactory::getDBO();
     $article = null;
     $link = null;
     if (JCOMMENTS_JVERSION == '1.0') {
         global $mainframe, $Itemid;
         $query = 'SELECT a.id, a.title, a.created_by, a.access' . ' FROM #__content AS a' . ' LEFT JOIN #__categories AS cc ON cc.id = a.catid' . ' WHERE a.id = ' . intval($id);
         $db->setQuery($query);
         $db->loadObject($article);
         $compatibilityMode = $mainframe->getCfg('itemid_compat');
         if ($compatibilityMode == null) {
             // Joomla 1.0.12 or below
             if ($Itemid && $Itemid != 99999999) {
                 $_Itemid = $Itemid;
             } else {
                 $_Itemid = $mainframe->getItemid($id);
             }
         } else {
             if ((int) $compatibilityMode > 0 && (int) $compatibilityMode <= 11) {
                 // Joomla 1.0.13 or higher and Joomla 1.0.11 compatibility
                 $_Itemid = $mainframe->getItemid($id, 0, 0);
             } else {
                 // Joomla 1.0.13 or higher and new Itemid algorithm
                 $_Itemid = $Itemid;
             }
         }
         $link = JoomlaTuneRoute::_('index.php?option=com_content&amp;task=view&amp;id=' . $id . '&amp;Itemid=' . $_Itemid);
     } else {
         require_once JPATH_ROOT . DS . 'components' . DS . 'com_content' . DS . 'helpers' . DS . 'route.php';
         $query = 'SELECT a.id, a.title, a.created_by, a.sectionid, a.access,' . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,' . ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug' . ' FROM #__content AS a' . ' LEFT JOIN #__categories AS cc ON cc.id = a.catid' . ' WHERE a.id = ' . intval($id);
         $db->setQuery($query);
         $article = $db->loadObject();
         if (!empty($article)) {
             $user = JFactory::getUser();
             if (JCOMMENTS_JVERSION == '1.5') {
                 $checkAccess = $article->access <= $user->get('aid', 0);
                 if ($checkAccess) {
                     $link = JRoute::_(ContentHelperRoute::getArticleRoute($article->slug, $article->catslug, $article->sectionid));
                 } else {
                     $link = JRoute::_("index.php?option=com_user&task=register");
                 }
             } else {
                 $authorised = JAccess::getAuthorisedViewLevels($user->get('id'));
                 $checkAccess = in_array($article->access, $authorised);
                 if ($checkAccess) {
                     $link = JRoute::_(ContentHelperRoute::getArticleRoute($article->slug, $article->catslug));
                 } else {
                     $returnURL = JRoute::_(ContentHelperRoute::getArticleRoute($article->slug));
                     $menu = JFactory::getApplication()->getMenu();
                     $active = $menu->getActive();
                     $ItemId = $active->id;
                     $link = JRoute::_('index.php?option=com_users&view=login&Itemid=' . $ItemId);
                     $uri = new JURI($link);
                     $uri->setVar('return', base64_encode($returnURL));
                     $link = $uri->toString();
                 }
             }
         }
     }
     $info = new JCommentsObjectInfo();
     if (!empty($article)) {
         $info->title = $article->title;
         $info->access = $article->access;
         $info->userid = $article->created_by;
         $info->link = $link;
     }
     return $info;
 }
Пример #23
0
				<?php 
            $this->item = $item;
            echo JHTML::_('icon.edit', $item, $this->params, $this->access);
            ?>
			</td>
			<?php 
        } else {
            ?>
			<td>
				<?php 
            echo $this->escape($item->title) . ' : ';
            $link = JRoute::_('index.php?option=com_user&view=login');
            $returnURL = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->sectionid));
            $fullURL = new JURI($link);
            $fullURL->setVar('return', base64_encode($returnURL));
            $link = $fullURL->toString();
            ?>
				<a href="<?php 
            echo $link;
            ?>
"><?php 
            echo JText::_('Register to read more...');
            ?>
</a>
			</td>
			<?php 
        }
        ?>
		<?php 
    }
    ?>
Пример #24
0
 /**
  * Преобразует img-тег в html-код иконки
  * @param array $matches
  * @return string
  */
 function imageReplacer(&$matches)
 {
     // Создать объект тега изображения
     $newImgStr = $imgStr = $matches[0];
     $this->img->parse($imgStr);
     // Если указаны классы для которых (не)надо создавать иконки, проверить класс изображения.
     // И если для данного не надо создавать - выйти из функции.
     if ($this->thumbnailsFor && $this->class) {
         $imgClasses = explode(' ', $this->img->getAttribute('class'));
         $myClasses = preg_split('/\\W+/', $this->class);
         $classFind = array_intersect($imgClasses, $myClasses);
         if ($this->thumbnailsFor == 1 && !$classFind || $this->thumbnailsFor == 2 && $classFind) {
             return $imgStr;
         }
     }
     // Если изображение удаленное - проверить наличие локальной копии, при отсутствии создать
     $juri =& JFactory::getURI();
     $src = $this->img->getAttribute('src');
     if (!$juri->isInternal($src)) {
         $this->copyRemote($src);
     }
     // Проверить необходимость замены - нужна ли иконка?
     // Прежде чем обращатья к функциям GD, проверяются атрибуты тега.
     if ($this->img->getHeight() || $this->img->getWidth() || $this->defaultWidth || $this->defaultHeight) {
         $this->origImgName = $this->img->getAttribute('src');
         $this->origImgName = $this->urlToFile($this->origImgName);
         $this->origImgSize = @getimagesize($this->origImgName);
         // Если размер файла определить не удалось, вероятно это скрипт
         // Копируем как файл с удаленного сервера и пробуем еще раз
         if ($this->origImgSize === false) {
             $src = new JURI($src);
             $src->setHost($_SERVER['SERVER_NAME']);
             $src->setScheme('http');
             $this->copyRemote($src->toString());
             $this->origImgName = $this->img->getAttribute('src');
             $this->origImgName = $this->urlToFile($this->origImgName);
             $this->origImgSize = @getimagesize($this->origImgName);
         }
         $origImgW = $this->origImgSize[0];
         $this->origImgSize[1] = $this->origImgSize[1];
         /* Размеры по-умолчанию */
         // Если это блог или главная, взять настройки для блогов
         if ($this->blogHelper && $this->blogHelper->isBlog()) {
             $this->defaultSize = $this->blogDefaultSize;
             $this->defaultWidth = $this->blogDefaultWidth;
             $this->defaultHeight = $this->blogDefaultHeight;
         }
         $this->proportionsStrategy->setDefaultSize();
         if ($this->img->getWidth() && $this->img->getWidth() < $this->origImgSize[0] || $this->img->getHeight() && $this->img->getHeight() < $this->origImgSize[1]) {
             // Заменить изображение на иконку
             $newImgStr = $this->createThumb();
             $this->img->isThumb = true;
         }
     }
     if ($this->img->isThumb || $this->popupType == 'bloglink') {
         if (!$this->has_header) {
             $this->decorator->addHeader();
         }
         $this->has_header = true;
         $result = $this->decorator->decorate();
     } else {
         $result = $this->img->toString();
     }
     return $result;
 }
Пример #25
0
 /**
  * Using CURL get page source.
  *
  * @param   string  $url  Link to get content
  *
  * @return  string
  */
 protected static function curlResponse($url)
 {
     $options = array(CURLOPT_RETURNTRANSFER => true, CURLOPT_HEADER => false, CURLOPT_FOLLOWLOCATION => true, CURLOPT_USERAGENT => "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13", CURLOPT_AUTOREFERER => true, CURLOPT_CONNECTTIMEOUT => 120, CURLOPT_TIMEOUT => 120, CURLOPT_MAXREDIRS => 10, CURLOPT_SSL_VERIFYPEER => false);
     $ch = curl_init($url);
     curl_setopt_array($ch, $options);
     $contents = curl_exec($ch);
     $err = curl_errno($ch);
     $errmsg = curl_error($ch);
     $header = curl_getinfo($ch);
     curl_close($ch);
     if ($err > 0) {
         exit('cUrl error number: ' . $err);
     }
     $response = new stdClass();
     $response->contents = $contents;
     $response->redirect_url = $header['redirect_url'];
     if ($response->redirect_url != self::$_renderUrl and trim($response->redirect_url) != '') {
         $old_uri = new JURI(self::$_renderUrl);
         $redirect_uri = new JURI($response->redirect_url);
         if ($old_uri->hasVar('tp') and !$redirect_uri->hasVar('tp')) {
             $redirect_uri->setVar('tp', 1);
         }
         if ($old_uri->hasVar('jsntpl_position') and !$redirect_uri->hasVar('jsntpl_position')) {
             $redirect_uri->setVar('jsntpl_position', 1);
         }
         if ($old_uri->hasVar('secret_key') and !$redirect_uri->hasVar('secret_key')) {
             $config = JFactory::getConfig();
             $secret = $config->get('secret');
             $redirect_uri->setVar('secret_key', md5($secret));
         }
         if ($old_uri->hasVar('Itemid') and !$redirect_uri->hasVar('Itemid')) {
             $redirect_uri->setVar('Itemid', $old_uri->getVar('Itemid'));
         }
         // Save redirect url
         self::$_renderUrl = $redirect_uri->toString();
         $response = self::curlResponse(self::$_renderUrl);
     }
     return $response;
 }
Пример #26
0
 /**
  * Return HTML, subitems in menu
  * 
  * @param: Array items
  * @param: int $menuid
  */
 protected function renderItems($mItems, $menuid)
 {
     $items = '';
     if (count($mItems)) {
         for ($i = 0; $i < count($mItems); $i++) {
             $publish = $mItems[$i]->published == 1 ? 'Unpublish' : 'Publish';
             $class_unpublish = $mItems[$i]->published == 0 ? ' unpublish' : '';
             $default = $mItems[$i]->home == 1 ? ' default' : '';
             $defaultIndicator = $mItems[$i]->home == 1 ? ' <ins class="menu-default-indicator"></ins>' : '';
             $uri = new JURI($mItems[$i]->link);
             $link = $uri->toString();
             if (!JURI::isInternal($link)) {
                 if (JString::strtolower($link) != JString::strtolower($_SERVER['HTTP_HOST'])) {
                     $link = '#';
                 }
             } else {
                 if ($mItems[$i]->link == '#') {
                     $link = '#';
                 } else {
                     $link = JURI::root() . $link;
                 }
             }
             if ($link != '#') {
                 if (strpos($link, '?') === false) {
                     $link .= '?Itemid=' . $mItems[$i]->id;
                 } else {
                     $link .= '&Itemid=' . $mItems[$i]->id;
                 }
             }
             if ($mItems[$i]->type == 'alias') {
                 jimport('joomla.html.parameter');
                 $aliasparams = new JRegistry();
                 $aliasparams->loadString($mItems[$i]->params);
                 $address_itemid = $aliasparams->get('aliasoptions');
                 if ((int) $address_itemid > 0) {
                     $address_item = $this->getMenuItem($address_itemid);
                     if (is_object($address_item)) {
                         $link = $address_item->link;
                     } else {
                         if (is_array($address_item)) {
                             $link = $address_item['link'];
                         }
                     }
                     if (strpos($link, '?') === false) {
                         $link .= '?aliasoptions=' . $address_itemid . '&Itemid=' . $mItems[$i]->id;
                     } else {
                         $link .= '&aliasoptions=' . $address_itemid . '&Itemid=' . $mItems[$i]->id;
                     }
                     $mItems[$i]->link = $link;
                 }
             }
             if ($this->hasChild($mItems[$i]->id)) {
                 $subItems = $this->getItems($mItems[$i]->menutype, $mItems[$i]->id);
                 $items .= JSNHtmlHelper::openTag('li', array('id' => $publish . '-menutypeid' . $menuid . '-' . $mItems[$i]->id, 'class' => 'moveable')) . JSNHtmlHelper::openTag('a', array('onClick' => 'javascript:void(0);', 'class' => $default . $class_unpublish, 'link' => $link, 'title' => $this->getMenuItemType($mItems[$i]->link))) . $mItems[$i]->title . $defaultIndicator . JSNHtmlHelper::closeTag('a');
                 $items .= JSNHtmlHelper::openTag('ul', array('class' => 'jsn-menu-items', 'style' => 'display:none;', 'id' => 'parentid-' . $mItems[$i]->id)) . $this->renderItems($subItems, $menuid) . JSNHtmlHelper::closeTag('ul');
                 $items .= JSNHtmlHelper::closeTag('li');
             } else {
                 $items .= JSNHtmlHelper::openTag('li', array('id' => $publish . '-menutypeid' . $menuid . '-' . $mItems[$i]->id, 'class' => 'moveable')) . JSNHtmlHelper::openTag('a', array('onClick' => 'javascript:void(0);', 'class' => $default . $class_unpublish, 'link' => $link, 'title' => $this->getMenuItemType($mItems[$i]->link))) . $mItems[$i]->title . $defaultIndicator . JSNHtmlHelper::closeTag('a') . JSNHtmlHelper::closeTag('li');
             }
         }
     }
     return $items;
 }
Пример #27
0
 /**
  * Display function
  */
 public function display($tpl = null)
 {
     if (function_exists('error_reporting')) {
         error_reporting(E_ALL & ~E_WARNING & ~E_NOTICE & ~E_STRICT);
     }
     /** load libraries for the system rener **/
     JSNFactory::localimport('libraries.joomlashine.mode.rawmode');
     JSNFactory::localimport('libraries.joomlashine.menu.menuitems');
     /** Assignment variables **/
     $jsntemplate = JSNFactory::getTemplate();
     $jsnmenuitems = JSNMenuitems::getInstance();
     /** get url **/
     $render_url = JRequest::getVar('render_url', '');
     $session = JSession::getInstance('files', array('name' => 'jsnpoweradmin'));
     if ($render_url == '' && $session->get('rawmode_render_url')) {
         $render_url = $session->get('rawmode_render_url');
     }
     $urlRender = base64_decode($render_url);
     if ($render_url == '') {
         $urlRender = JSNDatabase::getDefaultPage()->link;
     }
     $currUri = new JURI($urlRender);
     if (!$currUri->hasVar('Itemid')) {
         $currUri->setVar('Itemid', JSNDatabase::getDefaultPage()->id);
     }
     $urlString = $currUri->toString();
     $session->set('rawmode_render_url', base64_encode($urlString));
     $parts = JString::parse_url($urlString);
     if (!empty($parts['query'])) {
         parse_str($parts['query'], $params);
     } else {
         $params = array();
     }
     $jsnrawmode = JSNRawmode::getInstance($params);
     $jsnrawmode->setParam('positions', $jsntemplate->loadXMLPositions());
     $jsnrawmode->renderAll();
     $this->assign('component', $jsnrawmode->getHTML('component'));
     $this->assign('modules', $jsnrawmode->getHTML('positions'));
     $this->assign('jsnmenuitems', $jsnmenuitems);
     $this->assign('urlRender', $urlRender);
     /** add toolbar buttons **/
     $this->addToolBar();
     /** add scripts and css **/
     //$this->addMedia( $currUri->getVar('Itemid'), $urlString, array());//$jsnrawmode->getScript('positions', 'Array'));
     $this->addMedia($currUri->getVar('Itemid'), $urlString, $jsnrawmode->getScript('positions', 'Array'));
     return parent::display();
 }
Пример #28
0
 function prepareSlides($slides, $params)
 {
     $newSlides = array();
     $target = $params->get('customLinkTarget');
     if (empty($target)) {
         $target = $params->get('linkTarget', '_self');
     }
     $baseUri = JURI::base(true);
     $lightboxEngine = AriCloudCarouselHelper::getLightboxEngine($params);
     $lightboxGroup = uniqid('cc_');
     foreach ($slides as $slide) {
         $isLink = !empty($slide['link']);
         $description = isset($slide['description']) ? $slide['description'] : '';
         $title = isset($slide['title']) ? $slide['title'] : '';
         $lnkAttrs = null;
         $imgAttrs = array('src' => $baseUri . '/' . $slide['image'], 'alt' => $description, 'title' => $title, 'class' => 'cloudcarousel');
         if (!empty($slide['width'])) {
             $imgAttrs['width'] = $slide['width'];
         }
         if (!empty($slide['height'])) {
             $imgAttrs['height'] = $slide['height'];
         }
         if ($isLink) {
             $lnkAttrs = array('href' => $slide['link'], 'target' => $target);
             if ($description) {
                 $lnkAttrs['title'] = $description;
             }
             if (!is_null($lightboxEngine)) {
                 list($lnkAttrs, $imgAttrs) = $lightboxEngine->modifyAttrs($lnkAttrs, $imgAttrs, $lightboxGroup, $params);
             } else {
                 $originalLink = $slide['link'];
                 if (strpos($originalLink, '_target') !== false) {
                     $uri = new JURI($originalLink);
                     $linkTarget = $uri->getVar('_target');
                     if (!is_null($linkTarget)) {
                         $uri->delVar('_target');
                         $lnkAttrs['target'] = $linkTarget;
                         $lnkAttrs['href'] = $uri->toString();
                     }
                 }
             }
         }
         $slide['lnkAttrs'] = $lnkAttrs;
         $slide['imgAttrs'] = $imgAttrs;
         $newSlides[] = $slide;
     }
     return $newSlides;
 }
Пример #29
0
 function _uriToUrl($uri, $removeVariables = null)
 {
     // Create new JURI object
     $url = new JURI($uri->toString(array('path', 'query', 'fragment')));
     // Remove variables if needed
     if (!empty($removeVariables)) {
         if (is_array($removeVariables)) {
             foreach ($removeVariables as $var) {
                 $url->delVar($var);
             }
         } else {
             $url->delVar($removeVariables);
         }
     }
     // sort variables
     $vars = $url->getQuery(true);
     ksort($vars);
     // Move option to beginning
     if (isset($vars['option'])) {
         $opt = $vars['option'];
         unset($vars['option']);
         $vars = array_merge(array('option' => $opt), $vars);
     }
     // Set vars
     $url->setQuery($vars);
     // Create string for db
     return $url->toString(array('path', 'query'));
 }
Пример #30
0
 protected function _redirectNonSef($uri)
 {
     if (!$this->_canRedirectFromNonSef($uri)) {
         return;
     }
     // search cache and db for a sef url
     $nonSefUrl = shSortURL('index.php?' . $uri->getQuery());
     $targetSefUrl = '';
     $urlType = JModel::getInstance('Sefurls', 'Sh404sefModel')->getSefURLFromCacheOrDB($nonSefUrl, $targetSefUrl);
     $pageInfo =& Sh404sefFactory::getPageInfo();
     // found a match : redirect
     if ($urlType == sh404SEF_URLTYPE_AUTO || $urlType == sh404SEF_URLTYPE_CUSTOM) {
         $tmpUri = new JURI($uri->base() . $targetSefUrl);
         $targetSefUrl = $tmpUri->toString();
         if ($targetSefUrl != $pageInfo->shCurrentPageURL) {
             _log('redirecting non-sef to existing SEF : ' . $targetSefUrl);
             shRedirect($targetSefUrl);
         }
     }
     // haven't found a SEF in the cache or DB, maybe we can just create it on the fly ?
     if (!empty($nonSefUrl) && (!shIsMultilingual() || shIsMultilingual() == 'joomla' || shIsMultilingual() == 'joomfish' && shGetNameFromIsoCode(shDecideRequestLanguage()) == Sh404sefFactory::getPageInfo()->shMosConfig_locale)) {
         // $shMosConfig_locale is still deafult lang, as language has not been discovered yet
         $GLOBALS['mosConfig_defaultLang'] = Sh404sefFactory::getPageInfo()->shMosConfig_locale;
         // V 1.2.4.t joomfish not initialised so we must do
         // this otherwise shGetDefaultLanguage will not work
         $shUri = new JUri($nonSefUrl);
         $shOriginalUri = new JURI($nonSefUrl);
         $targetSefUrl = shSefRelToAbs($nonSefUrl, $uri->getVar('lang'), $shUri, $shOriginalUri);
         if ($targetSefUrl != $pageInfo->shCurrentPageURL) {
             if (strpos($targetSefUrl, 'option=com') === false && $targetSefUrl != $nonSefUrl) {
                 _log(__METHOD__ . '/' . __LINE__ . ': redirecting non-sef to newly created SEF : ' . $targetSefUrl . ' from ' . $nonSefUrl);
                 shRedirect($targetSefUrl);
             }
         }
     }
 }