У плагина NoFollow, который я ранее добавил к Визуальному редактору, есть два недостатка:
- он позволяет добавить атрибут
rel="nofollow"
, но не удалить при повторном нажатии;
- кнопку нужно постоянно нажимать мышью.
Для меня это неудобство, которое я решил по-быстрому исправить.
Все изменения вносятся в следующий файл (на хостинге):
/wp-content/plugins/nofollow-link/mce/nofollow/editor_plugin.js
Удаление rel=nofollow
Заменяю следующий код:
if(ed.selection.getNode().nodeName=="A"){
ed.selection.getNode().setAttribute("rel", "nofollow");
}
на:
if(ed.selection.getNode().nodeName=="A"){
/* cay 1 */
if (ed.selection.getNode().getAttribute("rel") == null) {
// cay: was only this line
ed.selection.getNode().setAttribute("rel", "nofollow");
} else {
ed.selection.getNode().removeAttribute("rel");
}
/* cay 1 # */
}
Комментарий с добавлением "cay" определяет в каком месте я вносил изменения. Потом можно будет с помощью поиска и использования команды Терминала "grep" отследить мои поправки в исходных кодах. Также справа от своей метки я добавляю номер изменения (не всегда).
Теперь, если атрибут rel
установлен в nofollow
, то при повторном нажатии атрибут будет удален.
Добавление горячих клавиш
В качестве горячих клавиш я решил использовать следующую комбинацию:
ctrl+shift+X
После следующего кода:
// Register buttons
ed.addButton('nofollow', {
title : 'No Follow',
cmd : 'mceNoFollow',
image: url + '/nofollow-tag.png'
});
добавляем:
// cay 2
ed.addShortcut ('ctrl+shift+X', 'Add NoFollow', 'mceNoFollow');
Чтобы не забыть комбинацию клавиш, добавим всплывающую подсказку. Вносим поправку в следующую строку:
title : 'No Follow',
Заменяем на:
title : 'No Follow (ctrl+shift+X)',
Сохраняем файл.
Заключение
Стоит отметить, что при использовании функции ed.addShortcut
и комбинации, включающей кнопку Shift
, символ клавиши должна писаться с большой буквы, иначе ничего не будет работать.
В функции ed.addShortcut
последним параметром передается зарегистрированная под кнопку команда mceNoFollow
. Ее название можно найти чуть выше по коду:
ed.addCommand('mceNoFollow', function() {
Если в Визуальном редакторе комбинация горячих клавиш не работает, то необходимо очистить кэш браузера.