Вместо стандартных HTML шаблонов для элементов типов (изображение, текст, галерея, список и т.д.) можно в своем приложении задать свои собственные.
Но это не так прозрачно, как хотелось бы (по крайней мере пока).
Стандартно, все элементы размещаются в папке
{сайт}/administrators/components/com_zoo/elements/{тип}/tmpl/{шаблон}Можно просто сделать копию элемента, переместив его в папку приложения
{сайт}/media/zoo/applications/{приложение}/elements/*.*
Тут можно было бы радоваться, ибо {тип}.php таки подменяет оригинальный php-файл, но... оказывается, что шаблон берется все-таки старый...
это не совсем есть гут, поэтому, открываем наш файл элемента (например .../elements/image/image.php) и дописываем ему следующую функцию
class ElementImage extends Element implements iSubmittable, iSubmissionUpload
{
// ...................
public function getLayout($layout = null) {
// init vars
$type = $this->getElementType();
$path = dirname(__FILE__).DS.'tmpl'; // <------ changes are here
// set default
if($layout == null) {
$layout = $type.'.php';
}
// find layout
if(JPath::find($path, $layout)) {
return $path."/".$layout;
}
return null;
}
в принципе, функция с таким именем уже есть в родительском классе, но она работает не совсем так, как нам надо, поэтому приходится делать переопределение
собственно, на этом все.
зы. в общем-то есть и второй вариант, но мне кажется этот чуть-чуть проще