игра брюс 2048
Главная / Программирование / Разработка расширений для CMS Joomla / Тест 5

Разработка расширений для CMS Joomla - тест 5

Упражнение 1:
Номер 1
Какое значение будет передано в функцию генерации SEF-ссылок для ссылки index.php?option=com_mycomponent&var1=value1&var2=value2&…&varN=valueN?

Ответ:

 (1) сама эта ссылка 

 (2) option=com_mycomponent&var1=value1&var2=value2&…&varN=valueN 

 (3) Array(0=>'com_mycomponent', 1=>'value1', 2=>'value2', ..., N=>'valueN') 

 (4) Array([option]=>com_mycomponent [var1]=>value1 [var2]=>value2... [varN]=>valueN) 


Номер 2
Какое значение функция генерации SEF-ссылок получила на вход, если она вернула массив Array([0]=>value1 [1]=>value2 … [N-1]=>valueN)?

Ответ:

 (1) var1=value1&var2=value2&…&varN=valueN 

 (2) Array(0=>'value1', 1=>'value2', ..., N-1=>'valueN') 

 (3) Array(0=>'com_mycomponent', 1=>'value1', 2=>'value2', ..., N=>'valueN') 

 (4) Array([option]=>com_mycomponent [var1]=>value1 [var2]=>value2... [varN]=>valueN) 


Номер 3
Какая SEF-ссылка будет сгенерирована из массива Array([0]=>value1 [1]=>value2 … [N-1]=>valueN)?

Ответ:

 (1) /mycomponent/value1/value2/…/valueN 

 (2) /value1/value2/…/valueN 

 (3) /value1&value2&…&valueN 

 (4) /mycomponent&value1&value2&…&valueN 


Упражнение 2:
Номер 1
Какие функции должны находиться в файле /components/com_mycomponent/router.php?

Ответ:

 (1) MyComponentBuildRoute() 

 (2) MyComponentParseRoute() 

 (3) MyComponentRoute() 

 (4) MyComponentGetRoute() 


Номер 2
В каком файле должна находиться функция генерации SEF-ссылок для анализа ссылки index.php?option=com_mycomponent&var1=value1&var2=value2?

Ответ:

 (1) /components/mycomponentrouter.php 

 (2) /components/com_mycomponent/mycomponentrouter.php 

 (3) /components/com_mycomponent/router.php 

 (4) /components/com_mycomponent/com_mycomponentrouter.php 


Номер 3
Какие функции должны находиться в файле /components/com_<имя компонента>/router.php?

Ответ:

 (1) перегруженная функция _() 

 (2) функция _() 

 (3) функция генерации SEF-ссылок 

 (4) функция декодирования SEF-ссылок 


Упражнение 3:
Номер 1
Какой шаблон SEF-ссылки неявно задается следующим кодом:
  
if (isset($query['controller']))
{
	$segments[] = $query['controller'];
	unset($query['controller']);
}

if (isset($query['task']))
{
	$segments[] = $query['task'];
	unset($query['task']);
}

if (isset($query['view']))
{
	$segments[] = $query[view'];
	unset($query['view']);
}

if (isset($query['id']))
{
	$segments[] = $query['id'];
	unset($query['id']);
}?
  
  

Ответ:

 (1) переменные записываются в следующем порядке: id, view, task, controller 

 (2) переменные записываются в следующем порядке: view, task, controller 

 (3) переменные записываются в следующем порядке: controller, task, view, id 

 (4) данный код не задает никакого шаблона 


Номер 2
Предположим, в SEF-ссылках компонента testcomponent переменные записываются в следующем порядке: controller, task, view, id. Какой массив должна вернуть функция TestComponentBuildRoute() для ссылки index.php?option=com_testcomponent&controller=c&task=t&view=v&id=i?

Ответ:

 (1) Array(0=>'c', 1=>'t', 2=>'v', 3=>'i') 

 (2) Array('controller'=>'c', 'task'=>'t', 'view'=>'v', 'id'=>'i') 

 (3) Array(0=>'i', 1=>'v', 2=>'t', 3=>'c') 

 (4) Array('id'=>'i', 'view'=>'v', 'task'=>'t', 'controller'=>'c') 


Номер 3
Предположим, в SEF-ссылках компонента testcomponent переменные записываются в следующем порядке: controller, task, view, id. Какой массив должна вернуть функция TestComponentParseRoute() для ссылки component/testcomponent/c/t/v/i?

Ответ:

 (1) Array(0=>'c', 1=>'t', 2=>'v', 3=>'i') 

 (2) Array('controller'=>'c', 'task'=>'t', 'view'=>'v', 'id'=>'i') 

 (3) Array(0=>'i', 1=>'v', 2=>'t', 3=>'c') 

 (4) Array('id'=>'i', 'view'=>'v', 'task'=>'t', 'controller'=>'c') 


Упражнение 4:
Номер 1
Как добавить в документ $document ссылку на скрипт /components/com_mycomponent/js/menu.js?

Ответ:

 (1) $document->addScript('/components/com_mycomponent/js/menu.js')

 (2) $document->addScriptDeclaration('/components/com_mycomponent/js/menu.js')

 (3) $document->addMetaData('/components/com_mycomponent/js/menu.js')

 (4) только с помощью дополнительных плагинов 


Номер 2
Как добавить в документ $document код alert('Hello World')?

Ответ:

 (1) $document->addScript('alert("Hello World")')

 (2) $document->addScriptDeclaration('alert("Hello World")')

 (3) $document->addMetaData('alert("Hello World")')

 (4) $document->addScriptText('alert("Hello World")')


Номер 3
Какие методы добавляют в секцию документа <head> тег <script>?

Ответ:

 (1) addScript() 

 (2) addScriptDeclaration() 

 (3) addMetaData() 

 (4) addScriptTag() 


Упражнение 5:
Номер 1
Какой метод добавляет в секцию документа <head> тег <link>?

Ответ:

 (1) addStyleDeclaration() 

 (2) addMetaData() 

 (3) addStyleSheet() 

 (4) addLink() 


Номер 2
Какой метод добавляет в секцию документа <head> тег <style>?

Ответ:

 (1) addStyleDeclaration() 

 (2) addMetaData() 

 (3) addStyleSheet() 

 (4) addLink() 


Номер 3
Какие методы добавляют в секцию документа <head> таблицу стилей?

Ответ:

 (1) addStyleDeclaration() 

 (2) addMetaData() 

 (3) addStyleSheet() 

 (4) addStyle() 


Упражнение 6:
Номер 1
Предположим, в SEF-ссылках компонента testcomponent переменные записываются в следующем порядке: view, task, id. Функция TestComponentBuildRoute() выглядит так:
  
function TestComponentBuildRoute($query)
{
	$segments = array();
    	if (isset($query['view']))
	{
		$segments[] = $query['view'];
		unset($query['view']);
	}
	if (isset($query['task']))
	{
		$segments[] = $query['task'];
		unset($query['task']);
	}
	if (isset($query['id']))
	{
		$segments[] = $query['id'];
		unset($query['id']);
	}
	return $segments;
}
  
  Какая SEF-ссылка будет сгенерирована из ссылки index.php?option=com_testcomponent&view=v&task=t&id=11?
  

Ответ:

 (1) /component/testcomponent/v/t/11?view=v&task=t&id=11 

 (2) /component/testcomponent/v/t/11 

 (3) /component/testcomponent/v/t?id=11 

 (4) /component/option=testcomponent&view=v&task=t&id=11 


Номер 2
Сгенерирована SEF-ссылка /component/testcomponent/v/t/11?view=v&task=t&id=11. Что привело к этой ошибке?

Ответ:

 (1) ошибки нет, ссылка построена верно 

 (2) функция генерации SEF-ссылок и функция их декодирования используют разные шаблоны ссылок 

 (3) исходная ссылка не соответствовала шаблону, использующемуся в функциях генерации и декодирования SEF-ссылок 

 (4) массив переменных запроса был передан в функцию TestComponentBuildRoute() по значению, а не по ссылке 


Номер 3
Сгенерирована SEF-ссылка /component/testcomponent/v/t/11?view=v&task=t&id=11. Как выглядит прототип функции генерации SEF-ссылок?

Ответ:

 (1) function TestComponentParseRoute($query) 

 (2) function TestComponentRoute($query) 

 (3) function TestComponentBuildRoute(&$query) 

 (4) function TestComponentBuildRoute($query) 


Упражнение 7:
Номер 1
Предположим, в SEF-ссылках компонента testcomponent переменные записываются в следующем порядке: view, task, id. Функция TestComponentBuildRoute() формирует массив так:
  
 if (isset($query['view']))
	{
		$segments[] = $query['view'];
		unset($query['view']);
	}
	if (isset($query['task']))
	{
		$segments[] = $query['task'];
		unset($query['task']);
	}
  
  Какая SEF-ссылка будет сгенерирована из ссылки index.php?option=com_testcomponent&view=v&task=t&id=11?
  

Ответ:

 (1) /component/testcomponent/v/t/11 

 (2) /component/testcomponent/view=v&task=t&id=11 

 (3) /component/testcomponent/v/t?id=11 

 (4) /component/option=testcomponent&view=v&task=t&id=11 


Номер 2
Предположим, в SEF-ссылках компонента testcomponent переменные записываются в следующем порядке: view, task, id. Была сгенерирована SEF-ссылка /component/testcomponent/v/t?id=11. Как выглядела функция TestComponentBuildRoute()?

Ответ:

 (1) function TestComponentBuildRoute(&$query) { $segments = array(); if (isset($query['view'])) { $segments[] = $query['view']; unset($query['view']); } if (isset($query['task'])) { $segments[] = $query['task']; unset($query['task']); } return $segments; }  

 (2) function TestComponentBuildRoute(&$query) { $segments = array(); if (isset($query['view'])) { $segments[] = $query['view']; unset($query['view']); } if (isset($query['task'])) { $segments[] = $query['task']; unset($query['task']); } if (isset($query['id'])) { $segments[] = $query['id']; unset($query['id']); } return $segments; }  

 (3) function TestComponentBuildRoute(&$query) { $segments = array(); if (isset($query['id'])) { $segments[] = $query['id']; unset($query['id']); } if (isset($query['task'])) { $segments[] = $query['task']; unset($query['task']); } if (isset($query['view'])) { $segments[] = $query['view']; unset($query['view']); } return $segments; }  

 (4) function TestComponentBuildRoute($query) { $segments = array(); if (isset($query['view'])) { $segments[] = $query['view']; unset($query['view']); } if (isset($query['task'])) { $segments[] = $query['task']; unset($query['task']); } return $segments; }  


Номер 3
Предположим, в SEF-ссылках компонента testcomponent переменные записываются в следующем порядке: view, task, id. Была сгенерирована SEF-ссылка /component/testcomponent/v/t?id=11. Что привело к этой ошибке?

Ответ:

 (1) функция TestComponentBuildRoute() не удалила из массива переменных запроса значение id 

 (2) функция TestComponentParseRoute() не удалила из массива переменных запроса значение id 

 (3) массив переменных запроса был передан в функцию TestComponentBuildRoute() по значению, а не по ссылке 

 (4) ошибки нет, ссылка сгенерирована верно 


Упражнение 8:
Номер 1
Отметьте неверное утверждение.

Ответ:

 (1) поле block объекта JUser равно 1, если пользователь заблокирован 

 (2) поле email объекта JUser равно 1, если пользователь согласен получать сообщения с сайта по электронной почте 

 (3) поле date объекта JUser хранит дату и время регистрации аккаунта пользователя 

 (4) поле guest объекта JUser равно 1, если пользователь не залогинен 


Номер 2
Отметьте неверное утверждение.

Ответ:

 (1) поле sendEmail объекта JUser равно 1, если пользователь согласен получать сообщения с сайта по электронной почте 

 (2) поле date объекта JUser хранит дату и время последнего входа пользователя в систему 

 (3) поле username объекта JUser хранит отображаемое имя пользователя 

 (4) поле params объекта JUser хранит настройки пользователя  


Номер 3
Отметьте поля класса JUser, которые принимают значение true или false (0 или 1).

Ответ:

 (1) sendEmail 

 (2) block 

 (3) guest 

 (4) params 




Главная / Программирование / Разработка расширений для CMS Joomla / Тест 5