Комментарии

Файл исходной компоновки
( 0 Голосов )

В листинге ниже приведен код исходной компоновки из файла default.php. Этот простой пример компоновки еще раз наглядно демонстрирует возможности сочетания кода РНР и HTML в одном файле.

*/

// прямой доступ отсутствует defined ('__JEXEC) or die; ?>
  • username; ?>

После оператора defined () компоновка начинается с условного оператора if. Обратите внимание на применение альтернативного синтаксиса языка РНР в условном операторе if. Именно такой синтаксис рекомендуется всегда использовать в файлах компоновки, где сочетаются элементы разметки РНР и HTML. В условном операторе if проверяется, не является ли пустым массив $names. Это делается для того, чтобы исключить возможность отображения пустого элемента ul.

А откуда берется переменная $names? Напомним, что файл текущей компоновки выполняется с помощью команды require из файла moduserslatest .php. Как пояснялось ранее, сценарий из этого файла включается, а не вызывается как метод из класса, и поэтому все переменные, оказавшиеся в области действия при включении файла этого сценария, по-прежнему остаются в области действия при его выполнении. Это все равно, что вставить файл текущей компоновки в другой файл (в данном случае mod_users_latest.php) там, где он был включен. Следовательно, переменная $names берется из следующей строки кода в файле mod_users_latest.php:

$names  = moduserslatestHelper:igetUsers($params);

В следующей строке кода из файла исходной компоновки создается элемент ul разметки HTML. В него вставляется переменная $moduleclass_sf х в качестве атрибута класса данного элемента. В рассматриваемой здесь строке кода демонстрируется очень важное положение относительно употребления пробелов в исходных файлах РНР. Как правило, пробелы в исходных файлах РНР особого значения не имеют. Так, приведенные ниже выражения совершенно равнозначны. $х = $у + $z; 

Команда echo используется для вставки переменной в атрибут элемента разметки ul. В этом случае пробелы имеют такое же значение, как и при наборе буквального текста. Между словом latestusers и значением, возвращаемым командой echo, пробелы отсутствуют, и поэтому данное значение присоединяется к слову latestusers без пробелов. Так, если бы переменная $moduleclass_sf х имела значение "my_suf f ix", то выполнение команды echo дало бы следующий результат.

А если бы потребовался суффикс класса данного модуля для создания еще одного класса CSS, что зачастую и делается, нам пришлось бы ввести этот суффикс в форму с начальным пробелом. Благодаря этому начальный пробел отделяет имя стандартного класса от его суффикса. Так, если бы ввести my_suffix в качестве суффикса класса, то элемент разметки ul, был бы воспроизведен следующим образом:

 
Похожие новости