Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2012, 16:34   #1
StoneSour
Пользователь
 
Регистрация: 25.02.2010
Сообщений: 18
По умолчанию Не могу разобратся в плагине на joomla

Есть плагин на сайт joomla 1.5 пытаюсь прокоментить чтобы разобратся в нем.
если есть кое какие в коментах укажите на их.
Вот некоторые строки из за которых я сюда обратился они меня поставили полностью в тупик.
если можно что они ваще значат до малейших знаков типо ".="

$checkedKey = $session->get('jMyAuthentication');

if((preg_match("/administrator\/*index.?\.php$/", $_SERVER['SCRIPT_NAME'])))

if(!$my->id && $params->get('key') != $_SERVER['QUERY_STRING'])

$path .= $params->get('options') == 1 ? JURI::root().'/'.$params->get('custom_path') : JURI::root();

Код:
<?php
// запрет прямого доступа
defined( '_JEXEC' ) or die( 'Restricted access' );
//импортируем зависимую библиотеку
jimport('joomla.plugin.plugin');
// создаем класс который происходит от класса  JPlugin
class plgSystemJMy extends JPlugin {
	
	//создаем функцию в которой 2 парметра 
	function plgSystemCanonicalization(& $subject, $config) {
	//  вызывается родительский конструктор
		parent :: __construct($subject, $config);
	}
	//создаем функцию которая отвечает ,,,
	function onAfterDispatch() {
		
		//создается переменная  где функция getSession принадлижит классу JFactory
		$session =& JFactory::getSession();
		// загрузка параметров плагина
		$plugin =& JPluginHelper::getPlugin( 'system', 'jmy' );
		$params = new JParameter($plugin->params);
		//В переменую my  присваевается результат вызова функции getUser
		//Функция getUser всегда возвращает 0 если пользователь не залогинен
		$my =& JFactory::getUser();
		$checkedKey = $session->get('jMyAuthentication');
		//если ключ пустой выполняем следующее
		if (empty($checkedKey)) {
			
			if((preg_match("/administrator\/*index.?\.php$/", $_SERVER['SCRIPT_NAME']))) {
			// сравниваем переменную my  с ответом сервера залогинелся пользователь или нет		
			if(!$my->id && $params->get('key') != $_SERVER['QUERY_STRING']) {
					//переменная $config которая находится в классе JFactory в котром есть функция getConfig
					$config =& JFactory::getConfig();
					//
					$path .= $params->get('options') == 1 ? JURI::root().'/'.$params->get('custom_path') : JURI::root();
					$app =& JFactory::getApplication();
					$app->redirect($path);
				}  else {
					$session->set('jMyAuthentication', 1);
				}
			}
		}
	}
}
StoneSour вне форума Ответить с цитированием
Старый 16.10.2012, 00:19   #2
Zloy_Doomer
Форумчанин
 
Аватар для Zloy_Doomer
 
Регистрация: 25.04.2008
Сообщений: 277
По умолчанию

Цитата:
$checkedKey = $session->get('jMyAuthentication');
Получение сессии текущего посетителя

Цитата:
if((preg_match("/administrator\/*index.?\.php$/", $_SERVER['SCRIPT_NAME'])))
Можно интерпретировать так:
если в урл содержится некая строка... т.е эта строчка кода проверяет строку на соответствие заданному шаблону...

Цитата:
if(!$my->id && $params->get('key') != $_SERVER['QUERY_STRING'])
если в $my->id не пуста и параметр key неравен тому что пришло в гет запросе то...

Знак ".=" означает прибавление значения в переменную без обнуления оной,... Например

$a= '123';
$a.='456';

в итоге a будит = 123456
it is a good day to die
Zloy_Doomer вне форума Ответить с цитированием
Старый 16.10.2012, 14:28   #3
StoneSour
Пользователь
 
Регистрация: 25.02.2010
Сообщений: 18
По умолчанию павильность коментов

Проверьте плизз правильность коментов,и тута последний строки поставили меня в тупик разшифруйте их плизз

$app =& JFactory::getApplication();

$app->redirect($path);

else {
$session->set('jMyAuthentication', 1);

Код:
<?php
// запрет прямого доступа
defined( '_JEXEC' ) or die( 'Restricted access' );
//импортируем зависимую библиотеку
jimport('joomla.plugin.plugin');
// создаем класс который происходит от класса  JPlugin
class plgSystemJMy extends JPlugin {
	
	//создаем функцию в которой 2 парметра 
	function plgSystemCanonicalization(& $subject, $config) {
	//  вызывается родительский конструктор
		parent :: __construct($subject, $config);
	}
	//создаем функцию которая отвечает ,,,
	function onAfterDispatch() {
		
		//создается переменная  где функция getSession принадлижит классу JFactory
		$session =& JFactory::getSession();
		// загрузка параметров плагина
		$plugin =& JPluginHelper::getPlugin( 'system', 'jmy' );
		$params = new JParameter($plugin->params);
		//В переменую my  присваевается результат вызова функции getUser
		//Функция getUser всегда возвращает 0 если пользователь не залогинен
		$my =& JFactory::getUser();
		//Получение сессии текущего посетителя
		$checkedKey = $session->get('jMyAuthentication');
		//если ключ пустой выполняем следующее
		if (empty($checkedKey)) {
			//если в урл содержится некая строка т.е эта строчка кода проверяет строку на соответствие заданному массиву
			if((preg_match("/administrator\/*index.?\.php$/", $_SERVER['SCRIPT_NAME']))) {
				// сравниваем переменную my  с ответом сервера залогинелся пользователь или нет	
			if(!$my->id && $params->get('key') != $_SERVER['QUERY_STRING']) {
					 //переменная $config которая находится в классе JFactory в котром есть функция getConfig
					$config =& JFactory::getConfig();
					// првоеряется какой из параметров был выбран в админке joomla "перейти на главную или пользовательский путь"
					$path .= $params->get('options') == 1 ? JURI::root().'/'.$params->get('custom_path') : JURI::root();
						
					$app =& JFactory::getApplication();
					//
					$app->redirect($path);
				}  else {
					$session->set('jMyAuthentication', 1);
				}
			}
		}
	}
}
StoneSour вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу разобратся!!! Hooligan Общие вопросы C/C++ 1 11.03.2012 13:30
Не могу разобратся в Dle L'oneke Свободное общение 2 27.08.2011 15:36
Не могу разобратся с датами MrBobyara SQL, базы данных 9 14.04.2011 17:20
не могу разобратся с TreeView L11L Помощь студентам 5 29.04.2010 11:20
Не могу разобратся с постусловием ArteMAN Паскаль, Turbo Pascal, PascalABC.NET 8 23.04.2010 23:28