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

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

Упражнение 1:
Номер 1
Если компонент называется testcomponent, то в каком файле описан класс представления all?

Ответ:

 (1) /components/com_testcomponent/views/all.html.php 

 (2) /components/com_testcomponent/views/view/all.html.php 

 (3) /components/com_testcomponent/views/all/all.html.php 

 (4) /components/com_testcomponent/views/all/view.html.php 


Номер 2
Если компонент называется testcomponent, то в каком файле описан класс представления item?

Ответ:

 (1) /components/com_testcomponent/views/item.html.php 

 (2) /components/com_testcomponent/views/view/item.html.php 

 (3) /components/com_testcomponent/views/item/item.html.php 

 (4) /components/com_testcomponent/views/item/view.html.php 


Номер 3
Какой класс должен быть описан в файле /components/com_testcomponent/views/all/view.html.php

Ответ:

 (1) класс представления, которое называется all 

 (2) все классы представлений, разработанные для данного компонента 

 (3) классы представлений, моделей и контроллеров, разработанные для данного компонента 

 (4) создавать такой файл в MVC-компоненте не требуется 


Упражнение 2:
Номер 1
Нужно ли задавать собственный SQL-запрос в методах класса, производного от JModel, для получения каких-либо данных?

Ответ:

 (1) не нужно, т.к. существуют стандартные методы JModel::_getList() и JModel::_getListCount(), которые берут на себя всю работу по получению информации из базы данных 

 (2) нужно. Методы JModel::_getList() и JModel::_getListCount() не подходят, т.к. являются закрытыми и недоступны извне 

 (3) нужно, т.к. один из аргументов методов JModel::_getList() и JModel::_getListCount() - это SQL-запрос. Кроме того, эти методы годятся не для всех задач 

 (4) не нужно, т.к. соответствующий SQL-запрос генерируется автоматически 


Номер 2
Какие методы класса JModel принимают в качестве аргумента SQL-запрос?

Ответ:

 (1) _getList() 

 (2) getList() 

 (3) _getListCount() 

 (4) getListCount() 


Номер 3
Какие методы класса JModel принимают в качестве аргументов порядковый номер записи, с которой нужно начать выборку, и количество записей?

Ответ:

 (1) _getList() 

 (2) getList() 

 (3) _getListCount() 

 (4) getListCount() 


Упражнение 3:
Номер 1
Предположим, что в модели, заданной для текущего представления по умолчанию, есть метод getItem(). Как получить в классе представления возвращаемое им значение?

Ответ:

 (1) $temp = &$this->getItem(); 

 (2) $temp = &$this->get('item'); 

 (3) $temp = &$this->get('getItem','item'); 

 (4) $temp = $this->get('getItem','item'); 


Номер 2
Предположим, что в модели, заданной для текущего представления по умолчанию, есть метод getSubject(). Как получить в классе представления возвращаемое им значение?

Ответ:

 (1) $temp = &$this->getSubject(); 

 (2) $temp = &$this->get('subject'); 

 (3) $temp = &$this->get('getSubject','subject'); 

 (4) $temp = $this->get('getSubject','subject'); 


Номер 3
Какое значение может принять переменная $temp после выполнения кода $temp = &$this->get('subject'); в классе представления?

Ответ:

 (1) значение, которое вернет метод getSubject() модели, заданной для текущего представления по умолчанию 

 (2) значение, которое вернет метод getsubject() модели, заданной для текущего представления по умолчанию 

 (3) значение поля subject представления 

 (4) класс JView не содержит метода get() 


Упражнение 4:
Номер 1
К чему приведет выполнение кода $view->loadTemplate('somevalue');?

Ответ:

 (1) будет выведен на экран результат выполнения скрипта /components/com_<имя компонента>/views/<имя представления>/tmpl/default_somevalue.php 

 (2) будет выведен на экран результат выполнения скрипта /components/com_<имя компонента>/views/<имя представления>/tmpl_somevalue.php 

 (3) будет выведен на экран результат выполнения скрипта /components/com_<имя компонента>/views/<имя представления>/somevalue/default_tmpl.php 

 (4) ничего не произойдет 


Номер 2
К чему приведет выполнение кода echo $view->loadTemplate('somevalue');?

Ответ:

 (1) будет выведен на экран результат выполнения скрипта /components/com_<имя компонента>/views/<имя представления>/tmpl/default_somevalue.php 

 (2) будет выведен на экран результат выполнения скрипта /components/com_<имя компонента>/views/<имя представления>/tmpl_somevalue.php 

 (3) будет выведен на экран результат выполнения скрипта /components/com_<имя компонента>/views/<имя представления>/somevalue/default_tmpl.php 

 (4) ничего не произойдет 


Номер 3
К чему приведет выполнение кода $view->display('somevalue');?

Ответ:

 (1) будет выведен на экран результат выполнения скрипта /components/com_<имя компонента>/views/<имя представления>/tmpl/default_somevalue.php 

 (2) будет выведен на экран результат выполнения скрипта /components/com_<имя компонента>/views/<имя представления>/tmpl_somevalue.php 

 (3) будет выведен на экран результат выполнения скрипта /components/com_<имя компонента>/views/<имя представления>/somevalue/default_tmpl.php 

 (4) ничего не произойдет 


Упражнение 5:
Номер 1
Что вернет код $controller->execute('addValue');?

Ответ:

 (1) результат выполнения метода addValue() представления, имя которого совпадает с именем контроллера $controller 

 (2) результат выполнения метода addValue() модели, имя которой совпадает с именем контроллера $controller 

 (3) результат выполнения метода контроллера addValue() 

 (4) ничего не вернет 


Номер 2
Что вернет код $controller->execute();?

Ответ:

 (1) результат выполнения метода display() представления, имя которого совпадает с именем контроллера $controller 

 (2) результат выполнения метода контроллера display() 

 (3) результат выполнения метода display() модели, имя которой совпадает с именем контроллера $controller 

 (4) ничего не вернет 


Номер 3
Какой метод вызовет метод контроллера execute($task);?

Ответ:

 (1) метод $task() представления, имя которого совпадает с именем контроллера 

 (2) метод контроллера $task() 

 (3) метод контроллера display() 

 (4) метод display() модели, имя которой совпадает с именем контроллера 


Упражнение 6:
Номер 1
Предположим, компонент должен выполнять задачи display, add, edit и remove. Как это отразится на коде компонента?

Ответ:

 (1) необходимо создать методы display(), add(), edit() и remove() в классе соответствующей модели 

 (2) необходимо создать методы display(), add(), edit() и remove() в классе соответствующего представления 

 (3) необходимо создать методы display(), add(), edit() и remove() в классе соответствующего контроллера 

 (4) среди ответов 1 - 3 нет правильного 


Номер 2
Предположим, компонент выполняет единственную задачу display. Что можно сказать про код компонента?

Ответ:

 (1) в классе соответствующего контроллера обязательно есть метод display() 

 (2) в классе соответствующего контроллера, возможно, есть метод display() 

 (3) в классе соответствующего контроллера может не быть метода display() 

 (4) в классе соответствующего контроллера обязательно есть метод default() 


Номер 3
Предположим, функции компонента заключаются в выводе одной страницы и поэтому для него не задается явно ни одной задачи. Что можно сказать про код этого компонента?

Ответ:

 (1) в классе соответствующего контроллера обязательно есть метод default() 

 (2) в классе соответствующего контроллера, возможно, есть метод display() 

 (3) в классе соответствующего контроллера может не быть метода display() 

 (4) в классе соответствующего контроллера обязательно есть метод default() 


Упражнение 7:
Номер 1
Что увидит пользователь в результате выполнения в одном из методов класса контроллера следующего кода:
  
$this->setRedirect('index.php?option=com_testcomponent', 'Текст сообщения');
$this->redirect();
  
  

Ответ:

 (1) браузер будет перенаправлен к URL index.php?option=com_testcomponent и будет выведено сообщение "Текст сообщения" 

 (2) браузер будет перенаправлен к URL index.php?option=com_testcomponent, а сообщение "Текст сообщения" будет добавлено в очередь сообщений, но выводиться не будет 

 (3) браузер не будет перенаправлен к URL, но сообщение "Текст сообщения" будет выведено на экран 

 (4) этот код не даст никакого видимого результата 


Номер 2
Что увидит пользователь в результате выполнения в одном из методов класса контроллера следующего кода:
  
$this->setRedirect('index.php?option=com_testcomponent', 'Текст сообщения');
  
  

Ответ:

 (1) браузер будет перенаправлен к URL index.php?option=com_testcomponent и будет выведено сообщение "Текст сообщения" 

 (2) браузер будет перенаправлен к URL index.php?option=com_testcomponent, а сообщение "Текст сообщения" будет добавлено в очередь сообщений, но выводиться не будет 

 (3) браузер не будет перенаправлен к URL, но сообщение "Текст сообщения" будет выведено на экран 

 (4) этот код не даст никакого видимого результата 


Номер 3
Что увидит пользователь в результате выполнения в одном из методов класса контроллера следующего кода:
  
$this->redirect();
  
  

Ответ:

 (1) это зависит от того, был ли задан ранее URL для перенаправления 

 (2) браузер будет перенаправлен к главной странице компонента 

 (3) будет выведено сообщение "Текст сообщения" 

 (4) этот код не даст никакого видимого результата 


Упражнение 8:
Номер 1
До перехода на архитектуру MVC файл testcomponent.php содержал в числе прочего следующий код:
  
switch($task)
{
 	case 'edit':
 	 		editItem($option);
 	 		break;
 	default:
 	 		break;
}
  
  Каким образом зарегистрировать задачу edit в конструкторе класса контроллера?
  

Ответ:

 (1) $this->registerTask('edit', 'editItem'); 

 (2) $this->registerTask('edit'); 

 (3) $this->registerTask( 'editItem'); 

 (4) $this->registerTask(); 


Номер 2
До перехода на архитектуру MVC файл testcomponent.php содержал в числе прочего следующий код:
  
switch($task)
{
 	case 'edit':
 	 		editItem($option);
 	 		break;
 	default:
 	 		break;
}
  
  Как должен выглядеть метод editItem() класса контроллера, если в него не добавлялись новые поля?
  

Ответ:

 (1) function editItem() { $option = JRequest::getVar('option'); ... }  

 (2) function editItem($option) { ... }  

 (3) данный метод должен быть перенесен в другой класс 

 (4) метод должен быть перенесен в класс контроллера без изменений 


Номер 3
До перехода на архитектуру MVC файл testcomponent.php содержал в числе прочего следующий код:
  
switch($task)
{
 	case 'edit':
 	 		editItem($option);
 	 		break;
 	default:
 	 		break;
}
  
  Что произойдет при переходе на MVC?
  

Ответ:

 (1) функция editItem() будет перенесена в класс контроллера без изменений 

 (2) функция editItem() будет перенесена в класс контроллера без аргумента 

 (3) в функции editItem() класса контроллера будет получено имя компонента из переменных HTTP-запроса или из поля того же класса, которое будет создано для хранения этого значения 

 (4) функция editItem() будет перенесена в класс контроллера под именем edit() 




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