Исправляем ошибки в плагине "Подсказка о пользователе".

+25
1.93K
Установил плагин "Подсказки о пользователе". Потестировал в версии Инстанта 1.8. Всё работает на "Ура!". Но остались ошибки, которые были и раньше.А именно, всплывающая подсказка не появляется у юзеров, логины которых начинаются с цифры. И вторая ошибка, подсказка появляется во многих местах, где её быть не должно. В частности, на странице просмотра компонента "профили пользователей" (меню "пользователи") на нумерации страниц и на ссылках сортировки наверху "новые", "позитивные", "рейтинг", и в модуле "Статистика пользователей" при наведении в названия городов. Поиск результатов не дал, хотя проблема поднималась.Пришлось покопаться в коде. Решение оказалось простым. Прошу строго не судить. PHP со словарем, а JS тем более.
Итак, открываем файл p_usertip.js, который находится в папке: корень_сайта/plugins/p_usertip. Для исправления первой ошибки удаляем строки 7-9
  1. 7 var rlink = link.replace(/\/[0-9]/, "");
  2. 8
  3. 9 if (rlink != link){ return; }
Честно говоря, я так и не понял, зачем автор пытался заменить цифры в урл на пустую строку. Но из-за этого не появляется подсказка на пользователях, логины, которых начинаются с цифры. Возможно в целях безопасности были данные строки, если что подправьте.
Для исправления второй ошибки после строки 19
  1. 19 this.rel = "/plugins/p_usertip/loader.php?login="+user_login;
вставляем следующий код
  1. // убираем подсказку с нумерации страниц компонента "профили пользователей"
  2. if (user_login.indexOf('.html') >= 0 || user_login == ""){
  3. this.rel = "";
  4. }
  5. //убираем подсказку с модуля "статистика пользователей" и с кнопки голосования за карму и ещё кое-где
  6. if (user_login.indexOf('city\/') >= 0 || user_login.indexOf('karma') >= 0 || user_login.indexOf('obby\/') >= 0 || user_login.indexOf('hotos\/') >= 0 ){
  7. this.rel = "";
  8. }
  9.  
Ну вот и всё. Подсказки только в нужных местах.
+1
Марат Марат 12 лет назад #
прошу прощения, подправил последний код... скопировалось не полностью.
+2
qwest qwest 12 лет назад #
А уже исправленный выложить нельзя?
+1
Марат Марат 12 лет назад #
добавил всего лишь "||" в условии if... копировал частями, забыл видимо выделить. время позднее было, усталость...
+1
Pampa Pampa 12 лет назад #
Спасибо!
Конечно, хотелось бы еще услышать комментарий автора smile
0
AndroS AndroS 12 лет назад #
а у меня при обновлении на 1.8 перестали подсказки на главной всплывать... Что делать?
0
googlebot googlebot 12 лет назад #
Тут читали?
0
Ruslan Ruslan 12 лет назад #
Я себе полностью переделал подсказки, оригинально получилось :)
0
Pampa Pampa 12 лет назад #
А посмотреть? smile
0
Ruslan Ruslan 12 лет назад #
http://uzhgorod.uz.ua/ здесь
0
googlebot googlebot 12 лет назад #
Руслан, что-то там у тебя криво переделано, в лисе все едет, а в ИЕ вообще "sorry, the contents could not be loaded"
0
Pampa Pampa 12 лет назад #
Славненько smile
"Прейти в профиль" исправьте smile
0
nikitka nikitka 12 лет назад #
Выявил еще одну ошибку!Пользователь у меня с ником DD Bigcalif подсказка на него вообще не работает!Может кто подскажет как испаравить?
0
Марат Марат 12 лет назад #
важен не ник, а логин пользователя. ссылка на пользователя выглядит примерно так http://ваш сайт/users/natasha . natasha это логин пользователя. плагин ищет ссылки, которые содержат /users/ , выбирает логин из ссылки, идентифицирует пользователя и выводит подсказку. дайте ссылку на профиль пользователя, попробую разобраться
+1
• Mike • • Mike • 12 лет назад #
Исправил…
0
12 лет назад #
дилер дамагер ДД?)
0
Марат Марат 12 лет назад #
заметил, окно выскакивает ещё при наведении на кнопку голосования за карму, причем в окне ошибки...
исправил код...
0
Марат Марат 12 лет назад #
добавил условие: user_login.indexOf('karma') >= 0
0
ph3no ph3no 12 лет назад #
Марат, а не скажете что нужно добавить, сделать, чтобы высвечивалось вот так?
.

в templates\_default_\plugins\p_usertip.tpl тут прописать что-то?
0
ph3no ph3no 12 лет назад #
Т.е я имел ввиду, чтобы высвечивались инфа не только кармы и рейтинга, а например статус, комментарии и т.п.
+1
Марат Марат 12 лет назад #
ph3no, я копался в других файлах, связанных с выводом окна подсказки... а за содержимое вывода отвечает файл p_usertip.tpl из папки p_usertip\templates\_default_\plugins . А что и как добавлять туда лучше знает Руслан. Смотрите комментарии выше.
0
Марат Марат 12 лет назад #
не кончается, не кончается... обнаружил еще подсказки в ненужных местах. в код в блоге добавил условие || user_login.indexOf('obby\/') >= 0 || user_login.indexOf('hotos\/') >= 0 . выскакивали в интересах пользователя и в ссылке при добавлении фото через флэш-загрузчик.
не спрашивайте, почему 'obby\/' не hobby, и 'hotos\/' не photos . так надо ) иначе ничего не получится ))
0
Марат Марат 12 лет назад #
Mike придумал лучше (профи есть профи)
в данном посте
просто заменяем код файла p_usertip.js на следующий
Код PHP:
$(function(){
    $('a[href*="/users/"]').each(function (i) {
        var link = this.href;       
        var user_login = "";
        user_login = link.replace(/http:\/\//, "");
        user_login = user_login.replace(window.location.host, "");
        user_login = user_login.replace(/www./, "");
        user_login = user_login.replace(/\/users\//, "");
        var pos = user_login.indexOf("/");
        var pos1 = user_login.indexOf(".");
        if (pos == -1 && pos1 == -1) {
        	this.rel = "/plugins/p_usertip/loader.php?login="+user_login;
        	var cls = this.getAttribute('class');
        	this.setAttribute("class", cls+" utip");
        	if (this.innerHTML.indexOf('img') <= 0){
        		this.setAttribute("title", this.innerHTML);
        	}
        }
    });

    $('a[class*="utip"]').cluetip({sticky: false, closePosition: 'title', closeText:'X'});
});
0
GarikKR GarikKR 12 лет назад #
Подскажите пожалуйста как настроить чтобы не конфликтовал с плагином (Испытать удачу)?

Еще от автора

Фильтр "Вставка модуля" v 1.0.0
Приветик! Давненько что-то я ничего не писал ) Не знаю было это или не было, вчера увидел темку, решил сделать немного по-другому. Вещь то нужная.
PHP классы для работы с VK API и с API Яндекс Метрики
Доброго времени суток, коллеги! Выкладываю два класса: -для работы с API Вконтакте; -для работы с API Яндекс Метрики.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.