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'); }
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; }
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); }
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); }
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); }
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); }
/** * 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))); }