Your IP : 172.28.240.42


Current Path : /var/www/html/clients/kampol.e-nk.ru/plugins/system/nnframework/helpers/assignments/
Upload File :
Current File : /var/www/html/clients/kampol.e-nk.ru/plugins/system/nnframework/helpers/assignments/php.php

<?php
/**
 * NoNumber Framework Helper File: Assignments: PHP
 *
 * @package         NoNumber Framework
 * @version         12.11.6
 *
 * @author          Peter van Westen <peter@nonumber.nl>
 * @link            http://www.nonumber.nl
 * @copyright       Copyright © 2012 NoNumber All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

defined('_JEXEC') or die;

/**
 * Assignments: PHP
 */
class NNFrameworkAssignmentsPHP
{
	var $_version = '12.11.6';

	/**
	 * passPHP
	 *
	 * @param  <object> $params
	 * @param  <array> $selection
	 * @param  <string> $assignment
	 *
	 * @return <bool>
	 */
	function passPHP(&$main, &$params, $selection = array(), $assignment = 'all', $article = 0)
	{
		if (!is_array($selection)) {
			$selection = array($selection);
		}

		$pass = 0;
		foreach ($selection as $php) {
			// replace \n with newline and other fix stuff
			$php = str_replace('\|', '|', $php);
			$php = preg_replace('#(?<!\\\)\\\n#', "\n", $php);
			$php = str_replace('[:REGEX_ENTER:]', '\n', $php);

			if (trim($php) == '') {
				$pass = 1;
				break;
			}

			if (!$article && !(strpos($php, '$article') === false) && $main->_params->option == 'com_content' && $main->_params->view == 'article') {
				require_once JPATH_SITE . '/components/com_content/models/article.php';
				$model = JModel::getInstance('article', 'contentModel');
				$model->setId($main->_params->id);
				$article = $model->getArticle();
			}
			if (!isset($Itemid)) {
				$Itemid = JRequest::getInt('Itemid');
			}
			if (!isset($mainframe)) {
				$mainframe = (strpos($php, '$mainframe') === false) ? '' : JFactory::getApplication();
			}
			if (!isset($app)) {
				$app = (strpos($php, '$app') === false) ? '' : JFactory::getApplication();
			}
			if (!isset($database)) {
				$database = (strpos($php, '$database') === false) ? '' : JFactory::getDBO();
			}
			if (!isset($db)) {
				$db = (strpos($php, '$db') === false) ? '' : JFactory::getDBO();
			}
			if (!isset($user)) {
				$user = (strpos($php, '$user') === false) ? '' : JFactory::getUser();
			}

			$vars = '$article,$Itemid,$mainframe,$app,$database,$db,$user';

			$val = '$temp_PHP_Val = create_function( \'' . $vars . '\', $php.\';\' );';
			$val .= ' $pass = ( $temp_PHP_Val(' . $vars . ') ) ? 1 : 0; unset( $temp_PHP_Val );';
			@eval($val);

			if ($pass) {
				break;
			}
		}

		if ($pass) {
			return ($assignment == 'include');
		} else {
			return ($assignment == 'exclude');
		}
	}
}