Доработка плагина NoFollow: удаление rel и горячие клавиши

Май 29, 2012

У плагина NoFollow, который я ранее добавил к Визуальному редактору, есть два недостатка:

  1. он позволяет добавить атрибут rel="nofollow", но не удалить при повторном нажатии;
  2. кнопку нужно постоянно нажимать мышью.

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

Все изменения вносятся в следующий файл (на хостинге):
/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() {

Если в Визуальном редакторе комбинация горячих клавиш не работает, то необходимо очистить кэш браузера.

Tags: , , , , , ,

Запись опубликована Вторник, Май 29, 2012 в 06:55 и находится в JavaScript, WordPress, Программирование . Вы можете следить за ответами к этой записи через RSS 2.0 ленту. Вы можете оставить комментарий, или обратиться к записи со своего сайта.

Оставить Комментарий

*