Александр К.
1 сообщение
#11 лет назад
Здравствуйте. Есть много страниц со статьями. К статьям есть картинки с соответствующей тематики и загаловку. В картинках нету тега "alt". Хотелось бы чтоб в катниках он был а сам текст - это была копия загаловка статьи. Ну, например, при создании статьи с заголовком "Как делать ремонт" автоматически в катинке с тегом .....alt="Как делать ремонт".
Возможно ли такое сделать? Ну или какой нибудь альтернативный способ.
CMS MODX Revolution 2.1.1-pl (traditional)

Спасибо за овтеты!
Артем Г.
175 сообщений
#11 лет назад
Возможно конечно, только надо знать немного php. Самый простой способ это в шаблоне статьи ставите в Alt, переменную вывода заголовка статьи.. Эт самый простой способ.
По любому если у вас есть функция публикации статьи, значить и есть переменные которые выводят информацию о статье!

Или в шаблоне публикации atachment или что там у вас используется для шаблона вывод изображения
Александр Т.
34 сообщения
#11 лет назад
Как вариант можно использовать jQuery: выбираем текст заголовка и вставляем его в тег alt
Андрей А.
798 сообщений
#11 лет назад
winstonby, на Jquey смысла нету, ибо альт я так понимаю нужен для поисковой оптимизации.
po4emu, Если у Вас картинки заданы через доп поля, то это дело на 10 минут, а если же в контенте вставлены то нужно обойти весь контент, и через регулярные выражения заменить.
как-то примерно так:

$criteria = $modx->newQuery('modResource');
$criteria->select('id,pagetitle,content');
$criteria->where(array('template' => 5 )); // уазываем шаблон новостей
$criteria->where(array('parent' => 5)); // если в одной папке все стати то можно указать родителя

$objs = $modx->getCollection('modResource', $criteria); // получаем все документы с заданым параметрами
foreach ($objs as $obj){ // пеебирраем
$pagetitle = $obj->get('pagetitle'); // получаем заголовок страницы
$content = $obj->get('content'); // получаем контент
...
производим манипуляциии с контеном, через регулярки заменяем <img src="..." /> на <img src="" alt="$pagetitle"/>
к сожалению так с ходу замену не напишу.
...
$obj->set('content',$content); // изменяем контент на новый
$obj->save(); // сохраняем

}


код не проверял, но мримерно как-то там это можно сделать, я бы Вам помог, но к сожалению сейчас занят очень.
Елена Б.
6863 сообщения
#11 лет назад
Цитата ("winstonby"):
Как вариант можно использовать jQuery: выбираем текст заголовка и вставляем его в тег alt

Развеселили ))) Почему? Выше уже написали.