0 Пользователей и 1 Гость просматривают эту тему.
  • 0 Ответов
  • 1632 Просмотров
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
Вопрос в следующем. Стандартно каталог выводит альт для изображений так:
для изображений teaserimage - это имя объекта
для изображений gallery - имя файла-картинки ( вообще непонятно зачем так сделано)

Вывод переменной для teaserimage находится по адресу components/com_zoo/views/element/tmpl/image.php
в строке
Код
<img src="<?php echo JRoute::_($link); ?>" title="<?php echo $title; ?>" alt="<?php echo $title; ?>" width="<?php echo $width; ?>" height="<?php echo $height; ?>" />

Переменная $title объявляется по адресу components/com_zoo/views/item/view.html.php

в коде
Код
$title = $item->name;

$menus = &JSite::getMenu();

$menu  = $menus->getActive();

if ($menu) {

$menu_params = new JParameter($menu->params);

if ($menu_params->get('page_title')) {

$title = $menu_params->get('page_title');

}

}

и дальше есть еще кусок кода, но там я думаю она просто фигурирует
Код
// set metadata

$document->setTitle($title);

if ($item->metadesc) $document->setDescription($item->metadesc);

if ($item->metakey) $document->setMetadata('keywords', $item->metakey);

if ($mainframe->getCfg('MetaTitle')) $document->setMetadata('title', $item->name);

if ($mainframe->getCfg('MetaAuthor')) $document->setMetadata('author', $item->author);

$metadata = new JParameter($item->metadata);

foreach ($metadata->toArray() as $tag => $value) {

if ($value) $document->setMetadata($tag, $value);

}

Но, если временно удалить эти куски кода, то alt для изображений не меняется и не пропадает - выводится как и раньше.

Кто знает, где определяется переменная для вывода альта для изображений? Собственно, это нужно для того чтобы в альт запихивать metadesc объекта. ( для яндекс-картинок)
Заранее спасибо!

Итак, решение нашел самостоятельно и делюсь им
components/com_zoo/views/element/tmpl/image.php
в строке
Код
<img src="<?php echo JRoute::_($link); ?>" title="<?php echo $title; ?>" alt="<?php echo $title; ?>" width="<?php echo $width; ?>" height="<?php echo $height; ?>" />
там где alt="<?php echo $title; ?>" меняем $title например на $altimage
Далее в файле administrator/components/com_zoo/elements/image/image.php
там добавляем то что выделено красным цветом
// init vars

      $params =& $this->getParams();

      $title  = $params->get('title', $this->_item->name);
      
      $altimage  = $params->get('altimage', $this->_item->metadesc);

      $width  = $params->get('width', 0);      

      $height = $params->get('height', 0);      

      $link   = trim($this->directory, '/').'/'.$this->file;



      // render layout

      if ($layout = $this->getLayout()) {

         return Element::renderLayout($layout, array('file' => $this->file, 'title' => $title, 'altimage' => $altimage, 'link' => $link, 'width' => $width, 'height' => $height));
вместо metadesc делаете выборку оттуда, откуда вам нужно чтобы был текст для alt изображения.
Пока я сделал это для teaserimage, для галери ищу решение.
« Последнее редактирование: 01.06.2010, 16:09:22 от Шмайсер »
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Элемент изображений eg_Image 1.1 (ajax upload)

Автор snowindy

Ответов: 43
Просмотров: 17517
Последний ответ 12.11.2010, 08:59:34
от sergeeva
[решение] Вывода каталога с названиями категорий с item'ами этих категорий - ZOO 1.1.6

Автор Шмайсер

Ответов: 5
Просмотров: 4735
Последний ответ 28.06.2010, 17:35:22
от Шмайсер
Ресайз изображений в YooTheme Zoo! Миф или реальность?

Автор 7Rei

Ответов: 1
Просмотров: 1796
Последний ответ 24.11.2009, 12:30:57
от Gadzila