Плагин для автоматизации заполнения alt="" в теге img

SEO-специалисты рекомендуют заполнять атрибут alt тега img.
Думаю, большинству редакторов сайтов это фиолетово — они просто вставляют картинки. Попытался сделать свою работу хорошо даже при таком раскладе.
Решение предназначено для картинок, которые вставляются в поле content. Логика простая: если alt заполнен, то оставляем как есть; если нет, то в теге img заполняем или добавляем заполненный alt.
Конструкция для заполнения по умолчанию alt="[*pagetitle*]", но можете поменять на свою.
Плагин работает при сохранении уже созданной странички. Событие OnDocFormSave. На сайте предполагается использование визуального редактора TyniMCE4.
Применяется MODxAPI.
Рефакторинг приветствуется.
Код плагина.

16 комментариев

avatar
я думаю не стоит «На сайте предполагается использование визуального редактора TyniMCE4.», на сайтах порой стоит 3 версия и с неё мало кто хочет слазить.

почему не 4 версия, как минимум потому что при редактировании картинки редактор её кодирует в base64 и вставляет кусок прямо в html
Комментарий отредактирован 2017-03-17 21:19:11 пользователем Fr3ddy
avatar
почему не 4 версия, как минимум потому что при редактировании картинки редактор её кодирует в base64 и вставляет кусок прямо в html

Это не редактор кодирует, а плагин Image Tools.
avatar
так его можно выключить ?)
avatar
Да, элементарно выключается.
Инструменты — Конфигурация — Интерфейс и представление — и в настройках TinyMCE44 в поле «Индивидуальные плагины» ищем слово «imagetools» — и просто убираем его.

И после этого пользуемся TinyMCE4, который прекрасно в отличие от предшественника обрабатывает копипаст замусоренного лишними стилями кода из ворда или других сайтов. Настраивается тоже легко, через свойства самого плагина.
Я уже на всех сайтах на него переключился, и сам радуюсь, что заказчики не внедряют в контент кучу мусора, и они довольны тем, как он специально под их хотелки настроен. Словом, одни плюсы.
Единственное, что я пока не смог с ним сделать (так как просто не знаю, как называется эта функциональность) — это сделать так, чтобы у него внизу как в третьем при клике на какие-то вложенные теги подсвечивалась их последовательность и классы, а не только сами теги. (Вот тут спрашивал — но похоже, что никто тоже не знает, как это называется и где искать: modx.im/blog/questions/4966.html) Но даже несмотря на это, ощущения от работы с нм только приятные.
avatar
на офф сайте вроде убрали эту херню ) в демке проверил
avatar
По поводу 3-й версии: это решение для конкретного сайта. Да, оно не универсально, но можно над этим поработать.
avatar
SEO-специалисты НЕ рекомендуют заполнять атрибут alt тега img ОДИНАКОВЫМИ значениями, а судя по логике плагина — если на странице несколько изображений без alt — то это получается менять шило на мыло.
avatar
Годи) Уже дописываю плагин, который еще и title для ссылок будет делать и многое чего другого)
avatar
На сайте, который я ковырял, просили разобраться с атрибутом alt. Я им про title говорил — отказались. А решается этот вопрос по аналогии.
avatar
я выложил пост, в котором собрал все что можно)
И у картинок — альт, у ссылок титле. Так что не совсем там по-аналогии получается
avatar
Увидел ваш пост. Да, подход разный. Вы кроме штатного парсера используете ещё и simple_html_dom при каждой генерации страницы. Кого это не остановит, получит действительно мощный инструмент.
avatar
кто здесь?) конечно нельзя давать одинаковые названия, лучше по шаблону задавать)
, с вырезкой коротких слов + индивидуальный шаблон под семантику страницы.
Комментарий отредактирован 2017-03-18 07:25:05 пользователем Fr3ddy
avatar
как минимум тогда надо делать формулу подстановки чтобы значения различались
avatar
Как вариант, можно добавить в alt кроме [*pagetitle*] ещё порядковый номер картинки не странице.
avatar
айди фотки, я так делал в Евогаллери. Когда больше 4000 фоток, то руками забивать им альты… не вариант)
Комментарий отредактирован 2017-03-18 07:24:19 пользователем Fr3ddy
avatar
Теперь в alt можно добавить нумерацию картинок.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.