Exemplo n.º 1
0
 static function isCategoryList($context)
 {
     $hash = md5('isCategoryList_' . $context);
     if (nnCache::has($hash)) {
         return nnCache::get($hash);
     }
     // Return false if it is not a category page
     if ($context != 'com_content.category' || JFactory::getApplication()->input->get('view') != 'category') {
         return false;
     }
     // Return false if it is not a list layout
     if (JFactory::getApplication()->input->get('layout') && JFactory::getApplication()->input->get('layout') != 'list') {
         return false;
     }
     // Return true if it IS a list layout
     if (JFactory::getApplication()->input->get('layout') == 'list') {
         return true;
     }
     // Layout is empty, so check if default layout is list (default)
     require_once JPATH_PLUGINS . '/system/nnframework/helpers/parameters.php';
     $parameters = nnParameters::getInstance();
     $parameters = $parameters->getComponentParams('content');
     return nnCache::set($hash, $parameters->category_layout == '_:default');
 }
Exemplo n.º 2
0
 public function getAssignmentsFromParams(&$params)
 {
     $hash = md5('getAssignmentsFromParams_' . json_encode($params));
     if (nnCache::has($hash)) {
         return nnCache::get($hash);
     }
     $types = array();
     foreach ($this->types as $id => $type) {
         if (!isset($params->{'assignto_' . $id}) || !$params->{'assignto_' . $id}) {
             continue;
         }
         $types[$type] = (object) array('assignment' => $params->{'assignto_' . $id}, 'selection' => array(), 'params' => new stdClass());
         if (isset($params->{'assignto_' . $id . '_selection'})) {
             $selection = $params->{'assignto_' . $id . '_selection'};
             $types[$type]->selection = in_array($type, $this->nonarray) ? $selection : $this->makeArray($selection);
         }
         $this->addParams($types[$type], $type, $id, $params);
     }
     return nnCache::set($hash, $types);
     return $types;
 }
Exemplo n.º 3
0
 protected function curl($url)
 {
     $hash = md5('curl_' . $url);
     if (nnCache::has($hash)) {
         return nnCache::get($hash);
     }
     $timeout = JFactory::getApplication()->input->getInt('timeout', 3);
     $timeout = min(array(30, max(array(3, $timeout))));
     $ch = curl_init($url);
     curl_setopt($ch, CURLOPT_URL, $url);
     curl_setopt($ch, CURLOPT_HEADER, false);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($ch, CURLOPT_USERAGENT, 'NoNumber/' . $this->_version);
     curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
     jimport('joomla.filesystem.file');
     if (JFile::exists(JPATH_ADMINISTRATOR . '/components/com_nonumbermanager/nonumbermanager.php')) {
         $config = JComponentHelper::getParams('com_nonumbermanager');
         if ($config && $config->get('use_proxy', 0) && $config->get('proxy_host')) {
             curl_setopt($ch, CURLOPT_PROXY, $config->get('proxy_host') . ':' . $config->get('proxy_port'));
             curl_setopt($ch, CURLOPT_PROXYUSERPWD, $config->get('proxy_login') . ':' . $config->get('proxy_password'));
             curl_setopt($ch, CURLOPT_TIMEOUT, 30);
         }
     }
     //follow on location problems
     if (!ini_get('safe_mode') && !ini_get('open_basedir')) {
         curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
         $html = curl_exec($ch);
     } else {
         $html = $this->curl_redir_exec($ch);
     }
     curl_close($ch);
     return nnCache::set($hash, $html);
 }
 function getAssignmentsFromParams(&$params)
 {
     $hash = md5('getAssignmentsFromParams_' . json_encode($params));
     if (nnCache::has($hash)) {
         return nnCache::get($hash);
     }
     jimport('joomla.filesystem.file');
     $assignments = array();
     list($id, $name) = $this->setAssignmentParams($assignments, $params, 'menuitems');
     if ($id) {
         $assignments[$name]->params->inc_children = $params->{'assignto_' . $id . '_inc_children'};
         $assignments[$name]->params->inc_noItemid = $params->{'assignto_' . $id . '_inc_noitemid'};
     }
     $this->setAssignmentParams($assignments, $params, 'homepage');
     list($id, $name) = $this->setAssignmentParams($assignments, $params, 'datetime', 'date');
     if ($id) {
         $assignments[$name]->params->publish_up = $params->{'assignto_' . $id . '_publish_up'};
         $assignments[$name]->params->publish_down = $params->{'assignto_' . $id . '_publish_down'};
         $assignments[$name]->params->recurring = isset($params->{'assignto_' . $id . '_recurring'}) ? $params->{'assignto_' . $id . '_recurring'} : 0;
     }
     list($id, $name) = $this->setAssignmentParams($assignments, $params, 'datetime', 'seasons');
     if ($id) {
         $assignments[$name]->params->hemisphere = $params->{'assignto_' . $id . '_hemisphere'};
     }
     $this->setAssignmentParams($assignments, $params, 'datetime', 'months');
     $this->setAssignmentParams($assignments, $params, 'datetime', 'days');
     list($id, $name) = $this->setAssignmentParams($assignments, $params, 'datetime', 'time');
     if ($id) {
         $assignments[$name]->params->publish_up = $params->{'assignto_' . $id . '_publish_up'};
         $assignments[$name]->params->publish_down = $params->{'assignto_' . $id . '_publish_down'};
     }
     $this->setAssignmentParams($assignments, $params, 'users', 'usergrouplevels');
     $this->setAssignmentParams($assignments, $params, 'users', 'users');
     $this->setAssignmentParams($assignments, $params, 'languages');
     $this->setAssignmentParams($assignments, $params, 'ips');
     list($id, $name) = $this->setAssignmentParams($assignments, $params, 'geo', 'continents', 1);
     if ($id) {
         $assignments[$name]->params = (object) array('service' => isset($params->assignto_geo_service) ? $params->assignto_geo_service : '');
     }
     list($id, $name) = $this->setAssignmentParams($assignments, $params, 'geo', 'countries', 1);
     if ($id) {
         $assignments[$name]->params = (object) array('service' => isset($params->assignto_geo_service) ? $params->assignto_geo_service : '');
     }
     list($id, $name) = $this->setAssignmentParams($assignments, $params, 'geo', 'regions', 1);
     if ($id) {
         $assignments[$name]->params = (object) array('service' => isset($params->assignto_geo_service) ? $params->assignto_geo_service : '');
     }
     $this->setAssignmentParams($assignments, $params, 'templates');
     list($id, $name) = $this->setAssignmentParams($assignments, $params, 'urls');
     if ($id) {
         $assignments[$name]->selection = $params->{'assignto_' . $id . '_selection'};
         if (isset($params->{'assignto_' . $id . '_selection_sef'})) {
             $assignments[$name]->selection .= "\n" . $params->{'assignto_' . $id . '_selection_sef'};
         }
         $assignments[$name]->selection = trim(str_replace("\r", '', $assignments[$name]->selection));
         $assignments[$name]->selection = explode("\n", $assignments[$name]->selection);
         $assignments[$name]->params->regex = isset($params->{'assignto_' . $id . '_regex'}) ? $params->{'assignto_' . $id . '_regex'} : 1;
     }
     $this->setAssignmentParams($assignments, $params, 'agents', 'os');
     list($id, $name) = $this->setAssignmentParams($assignments, $params, 'agents', 'browsers');
     if ($id) {
         $selection = $assignments[$name]->selection;
         if (isset($params->assignto_mobile_selection) && !empty($params->assignto_mobile_selection)) {
             $selection = array_merge($selection, $this->makeArray($params->assignto_mobile_selection));
         }
         if (isset($params->assignto_searchbots_selection) && !empty($params->assignto_searchbots_selection)) {
             $selection = array_merge($selection, $this->makeArray($params->assignto_searchbots_selection));
         }
         $assignments[$name]->selection = $selection;
     }
     $this->setAssignmentParams($assignments, $params, 'components');
     $this->setAssignmentParams($assignments, $params, 'content', 'pagetypes', 1);
     list($id, $name) = $this->setAssignmentParams($assignments, $params, 'content', 'cats');
     if ($id) {
         $incs = $this->makeArray($params->{'assignto_' . $id . '_inc'});
         $assignments[$name]->params->inc_categories = in_array('inc_cats', $incs);
         $assignments[$name]->params->inc_articles = in_array('inc_arts', $incs);
         $assignments[$name]->params->inc_others = in_array('inc_others', $incs);
         $assignments[$name]->params->inc_children = $params->{'assignto_' . $id . '_inc_children'};
     }
     list($id, $name) = $this->setAssignmentParams($assignments, $params, 'content', 'articles');
     if ($id) {
         $assignments[$name]->params->keywords = $params->{'assignto_' . $id . '_keywords'};
     }
     if ($this->has['flexicontent']) {
         $this->setAssignmentParams($assignments, $params, 'flexicontent', 'pagetypes', 1);
         list($id, $name) = $this->setAssignmentParams($assignments, $params, 'flexicontent', 'tags', 1);
         if ($id) {
             $incs = $this->makeArray($params->{'assignto_' . $id . '_inc'});
             $assignments[$name]->params->inc_tags = in_array('inc_tags', $incs);
             $assignments[$name]->params->inc_items = in_array('inc_items', $incs);
         }
         $this->setAssignmentParams($assignments, $params, 'flexicontent', 'types', 1);
     }
     if ($this->has['k2']) {
         $this->setAssignmentParams($assignments, $params, 'k2', 'pagetypes', 1);
         list($id, $name) = $this->setAssignmentParams($assignments, $params, 'k2', 'cats', 1);
         if ($id) {
             $assignments[$name]->params->inc_children = $params->{'assignto_' . $id . '_inc_children'};
             $incs = $this->makeArray($params->{'assignto_' . $id . '_inc'});
             $assignments[$name]->params->inc_categories = in_array('inc_cats', $incs);
             $assignments[$name]->params->inc_items = in_array('inc_items', $incs);
         }
         list($id, $name) = $this->setAssignmentParams($assignments, $params, 'k2', 'tags', 1);
         if ($id) {
             $incs = $this->makeArray($params->{'assignto_' . $id . '_inc'});
             $assignments[$name]->params->inc_tags = in_array('inc_tags', $incs);
             $assignments[$name]->params->inc_items = in_array('inc_items', $incs);
         }
         $this->setAssignmentParams($assignments, $params, 'k2', 'items', 1);
     }
     if ($this->has['zoo']) {
         $this->setAssignmentParams($assignments, $params, 'zoo', 'pagetypes', 1);
         list($id, $name) = $this->setAssignmentParams($assignments, $params, 'zoo', 'cats', 1);
         if ($id) {
             $assignments[$name]->params->inc_children = $params->{'assignto_' . $id . '_inc_children'};
             $incs = $this->makeArray($params->{'assignto_' . $id . '_inc'});
             $assignments[$name]->params->inc_apps = in_array('inc_apps', $incs);
             $assignments[$name]->params->inc_categories = in_array('inc_cats', $incs);
             $assignments[$name]->params->inc_items = in_array('inc_items', $incs);
         }
         $this->setAssignmentParams($assignments, $params, 'zoo', 'items', 1);
     }
     if ($this->has['akeebasubs']) {
         $this->setAssignmentParams($assignments, $params, 'akeebasubs', 'pagetypes', 1);
         $this->setAssignmentParams($assignments, $params, 'akeebasubs', 'levels', 1);
     }
     if ($this->has['hikashop']) {
         $this->setAssignmentParams($assignments, $params, 'hikashop', 'pagetypes', 1);
         list($id, $name) = $this->setAssignmentParams($assignments, $params, 'hikashop', 'cats', 1);
         if ($id) {
             $assignments[$name]->params->inc_children = $params->{'assignto_' . $id . '_inc_children'};
             $incs = $this->makeArray($params->{'assignto_' . $id . '_inc'});
             $assignments[$name]->params->inc_categories = in_array('inc_cats', $incs);
             $assignments[$name]->params->inc_items = in_array('inc_items', $incs);
         }
         $this->setAssignmentParams($assignments, $params, 'hikashop', 'products', 1);
     }
     if ($this->has['mijoshop']) {
         $this->setAssignmentParams($assignments, $params, 'mijoshop', 'pagetypes', 1);
         list($id, $name) = $this->setAssignmentParams($assignments, $params, 'mijoshop', 'cats', 1);
         if ($id) {
             $assignments[$name]->params->inc_children = $params->{'assignto_' . $id . '_inc_children'};
             $incs = $this->makeArray($params->{'assignto_' . $id . '_inc'});
             $assignments[$name]->params->inc_categories = in_array('inc_cats', $incs);
             $assignments[$name]->params->inc_items = in_array('inc_items', $incs);
         }
         $this->setAssignmentParams($assignments, $params, 'mijoshop', 'products', 1);
     }
     if ($this->has['redshop']) {
         $this->setAssignmentParams($assignments, $params, 'redshop', 'pagetypes', 1);
         list($id, $name) = $this->setAssignmentParams($assignments, $params, 'redshop', 'cats', 1);
         if ($id) {
             $assignments[$name]->params->inc_children = $params->{'assignto_' . $id . '_inc_children'};
             $incs = $this->makeArray($params->{'assignto_' . $id . '_inc'});
             $assignments[$name]->params->inc_categories = in_array('inc_cats', $incs);
             $assignments[$name]->params->inc_items = in_array('inc_items', $incs);
         }
         $this->setAssignmentParams($assignments, $params, 'redshop', 'products', 1);
     }
     if ($this->has['virtuemart']) {
         $this->setAssignmentParams($assignments, $params, 'virtuemart', 'pagetypes', 1);
         list($id, $name) = $this->setAssignmentParams($assignments, $params, 'virtuemart', 'cats', 1);
         if ($id) {
             $assignments[$name]->params->inc_children = $params->{'assignto_' . $id . '_inc_children'};
             $incs = $this->makeArray($params->{'assignto_' . $id . '_inc'});
             $assignments[$name]->params->inc_categories = in_array('inc_cats', $incs);
             $assignments[$name]->params->inc_items = in_array('inc_items', $incs);
         }
         $this->setAssignmentParams($assignments, $params, 'virtuemart', 'products', 1);
     }
     if ($this->has['cookieconfirm']) {
         $this->setAssignmentParams($assignments, $params, 'cookieconfirm');
     }
     $this->setAssignmentParams($assignments, $params, 'php');
     return nnCache::set($hash, $assignments);
 }
Exemplo n.º 5
0
 public function makeArray($array = '', $onlycommas = false, $trim = true)
 {
     if (empty($array)) {
         return array();
     }
     $hash = md5('makeArray_' . json_encode($array) . '_' . $onlycommas . '_' . $trim);
     if (nnCache::has($hash)) {
         return nnCache::get($hash);
     }
     $array = $this->mixedDataToArray($array, $onlycommas);
     if (empty($array)) {
         return $array;
     }
     if (!$trim) {
         return $array;
     }
     foreach ($array as $k => $v) {
         if (!is_string($v)) {
             continue;
         }
         $array[$k] = trim($v);
     }
     return nnCache::set($hash, $array);
 }
Exemplo n.º 6
0
 function getObjectFromXML(&$xml)
 {
     $hash = md5('getObjectFromXML_' . json_encode($xml));
     if (nnCache::has($hash)) {
         return nnCache::get($hash);
     }
     if (!is_array($xml)) {
         $xml = array($xml);
     }
     $object = new stdClass();
     foreach ($xml as $item) {
         $key = $this->_getKeyFromXML($item);
         $val = $this->_getValFromXML($item);
         if (isset($object->{$key})) {
             if (!is_array($object->{$key})) {
                 $object->{$key} = array($object->{$key});
             }
             $object->{$key}[] = $val;
         }
         $object->{$key} = $val;
     }
     return nnCache::set($hash, $object);
 }
Exemplo n.º 7
0
 static function xmlToObject($url, $root)
 {
     $hash = md5('curl_' . $url . '_' . $root);
     if (nnCache::has($hash)) {
         return nnCache::get($hash);
     }
     if (JFile::exists($url)) {
         $xml = @new SimpleXMLElement($url, LIBXML_NONET | LIBXML_NOCDATA, 1);
     } else {
         $xml = simplexml_load_string($url, "SimpleXMLElement", LIBXML_NONET | LIBXML_NOCDATA);
     }
     if (!@count($xml)) {
         return nnCache::set($hash, new stdClass());
     }
     if ($root) {
         if (!isset($xml->{$root})) {
             return nnCache::set($hash, new stdClass());
         }
         $xml = $xml->{$root};
     }
     $xml = self::xmlToArray($xml);
     if ($root && isset($xml->{$root})) {
         $xml = $xml->{$root};
     }
     return nnCache::set($hash, $xml);
 }
Exemplo n.º 8
0
 /**
  * prepare the tags and protected tags array
  */
 private static function prepareTags($tags, $include_closing_tags = true)
 {
     if (!is_array($tags)) {
         $tags = array($tags);
     }
     $hash = md5('prepareTags_' . json_encode($tags) . '_' . $include_closing_tags);
     if (nnCache::has($hash)) {
         return nnCache::get($hash);
     }
     foreach ($tags as $i => $tag) {
         if ($tag['0'] == '{') {
             continue;
         }
         $tags[$i] = '{' . $tag;
         if ($include_closing_tags) {
             $tags[] = '{/' . $tag;
         }
     }
     return nnCache::set($hash, array($tags, self::protectArray($tags, 1)));
 }