Замена кнопок форума
11.06.2015
MSerega9680
Пользователи
Сообщений 60
Ребят как заставить работать этот скрипт? Он почему то не работает у меня на форуме. Суть скрипта он заменяет картинки "Новая тема, Ответить и т.д" на ссылки. Код
<script type="text/javascript"> if (page_id=='threadpage' || page_id=='forum') {var fid = location.href.substr(strpos(location.href,'forum/')+6,strpos(location.href.substr(strpos(location.href,'forum/')+6),'-')); if (!strpos(location.href.substr(strpos(location.href,'forum/')+6),'-')) {fid = location.href.substr(strpos(location.href,'forum/')+6);} $('a[href*="/forum/'+fid+'-0-0-1-1"]').addClass('postbtn3').html('<span></span> Новая тема'); $('a[href*="/forum/'+fid+'-0-0-1-2"]').addClass('postbtn4').html('<span></span> Новый опрос'); if (page_id=='threadpage') $('a[href="#post"]').addClass('postbtn5').html('<span></span> Ответить'); if (page_id=='threadpage') $('img[src*="t_closed"]').wrap('<span></span>');$('img[src*="t_closed"]').parents('span').addClass('postbtn6').html('<span></span> Закрыто'); $('#frmButns83 a[onclick*="_uWnd"]').remove(); } </script>
11.06.2015
WooFi
Друзья
Сообщений 1052
Вывод консоли бы. Либо сам форум. Что за переменная page_id, как она появилась? Если переменная page_id существует... и еще пары нюансов, то твой код должен работать, наверное... Вот переписанный вариант. "Закрыто" заменяется обычным текстом. Код
if (page_id == 'threadpage' || page_id == 'forum') { document.querySelector('a[href$="-0-0-1-1"]').innerHTML = 'Новая тема'; document.querySelector('a[href$="-0-0-1-2"]').innerHTML = 'Новый опрос'; if (page_id == 'threadpage') { document.querySelector('a[href="#post"]').innerHTML = 'Ответить'; var t = document.querySelector('img[src*="t_closed"]'); var e = document.createElement('span'); e.innerHTML = 'Закрыто'; t.parentNode.insertBefore(e, t); t.remove(); } var t = document.getElementById('frmButns83').querySelector('a[onclick*="_uWnd"]'); if (t) t.remove(); }
подпись: Я слежу за вами! И я здесь бываю! Просто не всегда залогинен)))
12.06.2015
MSerega9680
Пользователи
Сообщений 60
Ну я не знаю что это за переменная. Можно ее как то заменить. Я так понял что она должна быть как в $PAGE_ID$ от юкоза.
12.06.2015
12.06.2015
MSerega9680
Пользователи
Сообщений 60
Код
<script type="text/javascript"> if ($PAGE_ID$=='threadpage' || $PAGE_ID$=='forum') {var fid = location.href.substr(strpos(location.href,'forum/')+6,strpos(location.href.substr(strpos(location.href,'forum/')+6),'-')); if (!strpos(location.href.substr(strpos(location.href,'forum/')+6),'-')) {fid = location.href.substr(strpos(location.href,'forum/')+6);} $('a[href*="/forum/'+fid+'-0-0-1-1"]').addClass('postbtn3').html('<span></span> Новая тема'); $('a[href*="/forum/'+fid+'-0-0-1-2"]').addClass('postbtn4').html('<span></span> Новый опрос'); if (page_id=='threadpage') $('a[href="#post"]').addClass('postbtn5').html('<span></span> Ответить'); if (page_id=='threadpage') $('img[src*="t_closed"]').wrap('<span></span>');$('img[src*="t_closed"]').parents('span').addClass('postbtn6').html('<span></span> Закрыто'); $('#frmButns83 a[onclick*="_uWnd"]').remove(); } </script>
Не работает
12.06.2015
WooFi
Друзья
Сообщений 1052
Не удивительно. Там куча ошибок. Код
<script> (function() { function checkQS(obj, callback) { if (obj) callback(obj); return; } if ($PAGE_ID$ == 'threadpage' || $PAGE_ID$ == 'forum') { checkQS(document.querySelector('a[href$="-0-0-1-1"]'), function(obj) { obj.innerHTML = 'Новая тема'; }); checkQS(document.querySelector('a[href$="-0-0-1-2"]'), function(obj) { obj.innerHTML = 'Новый опрос'; }); if ($PAGE_ID$ == 'threadpage') { checkQS(document.querySelector('a[href="#post"]'), function(obj) { obj.innerHTML = 'Ответить'; }); checkQS(document.querySelector('img[src*="t_closed"]'), function(obj) { var e = document.createElement('span'); e.innerHTML = 'Закрыто'; obj.parentNode.insertBefore(e, obj); obj.remove(); }); } checkQS(document.getElementById('frmButns83').querySelector('a[onclick*="_uWnd"]'), function(obj) { obj.remove(); }); } })(); </script>
подпись: Я слежу за вами! И я здесь бываю! Просто не всегда залогинен)))
12.06.2015
MSerega9680
Пользователи
Сообщений 60
WooFi , а почему вы убрали этот код? Код
{var fid = location.href.substr(strpos(location.href,'forum/')+6,strpos(location.href.substr(strpos(location.href,'forum/')+6),'-')); if (!strpos(location.href.substr(strpos(location.href,'forum/')+6),'-')) {fid = location.href.substr(strpos(location.href,'forum/')+6);}
Добавлено (12.06.2015, 17:17) --------------------------------------------- Ничего не изменилось
12.06.2015
WooFi
Друзья
Сообщений 1052
Нашел, на чем проверить код... Поправил. Догнал, зачем там теги "span".
Код
<script> (function() { function checkQS(obj, callback) { if (obj) callback(obj); return; } if ($PAGE_ID$ == 'threadpage' || $PAGE_ID$ == 'forum') { checkQS(document.querySelector('a[href$="-0-0-1-1"]'), function(obj) { obj.classList.add('postbtn3'); obj.innerHTML = '<span></span> Новая тема'; }); checkQS(document.querySelector('a[href$="-0-0-1-2"]'), function(obj) { obj.classList.add('postbtn4'); obj.innerHTML = '<span></span> Новый опрос'; }); if ($PAGE_ID$ == 'threadpage') { checkQS(document.querySelector('a[href="#post"]'), function(obj) { obj.classList.add('postbtn5'); obj.innerHTML = '<span></span> Ответить'; }); checkQS(document.querySelector('img[src*="t_closed"]'), function(obj) { var e = document.createElement('span'); e.classList.add('postbtn6'); e.innerHTML = '<span></span> Закрыто'; obj.parentNode.insertBefore(e, obj); obj.remove(); }); } checkQS(document.getElementById('frmButns83').querySelectorAll('a[onclick*="_uWnd"]'), function(objs) { for (var i = objs.length; i-- > 0;) objs[i].remove(); }); } })(); </script>
Цитата
WooFi, а почему вы убрали этот код?
Он не нужен абсолютно. Лишние действия, еще и не оптимизированы.
подпись: Я слежу за вами! И я здесь бываю! Просто не всегда залогинен)))
12.06.2015
WooFi
Друзья
Сообщений 1052
Цитата MSerega9680
Ничего не изменилось
Цитата WooFi
Вывод консоли бы. Либо сам форум.
подпись: Я слежу за вами! И я здесь бываю! Просто не всегда залогинен)))
12.06.2015
12.06.2015
12.06.2015
MSerega9680
Пользователи
Сообщений 60
WooFi , Работает. Но вот открыл закрытую тему и помоему не работает эта часть Код
checkQS(document.querySelector('img[src*="t_closed"]'), function(obj) { var e = document.createElement('span'); e.classList.add('postbtn6'); e.innerHTML = '<span></span> Закрыто'; obj.parentNode.insertBefore(e, obj); obj.remove(); }); }
Добавлено (12.06.2015, 18:10) --------------------------------------------- Получаеться если попадаешь в закрытую тему то вместо 3х кнопок "Новая тема", "Ответить", "Опрос" должно быть
12.06.2015
WooFi
Друзья
Сообщений 1052
Он работает. Просто у вас нет стилей для этой кнопки. Добавьте это в таблицу стилей. Код
span.postbtn6 { width: auto; height: 16px; padding: 5px 14px; color:#595959; background: #ececec; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f8f8f8', endColorstr='#e0e0e0'); background: -webkit-linear-gradient(top, #f8f8f8, #e0e0e0); background: -moz-linear-gradient(top, #f8f8f8, #e0e0e0); background: -o-linear-gradient(top, #f8f8f8, #e0e0e0); background: -ms-linear-gradient(top, #f8f8f8, #e0e0e0); border: 1px solid #c4c4c4; border-radius: 5px; } span.postbtn6 span { background: url('/images/forum/view_message/act-bar-buttons.png') -52px no-repeat; width: 11px; height: 14px; display: inline-block; vertical-align: -3px; margin-right: 2px; }
подпись: Я слежу за вами! И я здесь бываю! Просто не всегда залогинен)))
12.06.2015
MSerega9680
Пользователи
Сообщений 60
WooFi , Я поначалу заметил что их нет. Добавил. Но опять же таки что то нету ничего. Убрал скрипт. А такой картинки даже что то нету что тема закрыта? )))Добавлено (12.06.2015, 18:19) --------------------------------------------- Ааа понял. Это видно только гостям
12.06.2015
WooFi
Друзья
Сообщений 1052
Немного криво стили скопировали. Кнопка "Закрыто" белая получилась. Цитата
Но опять же таки что то нету ничего. Убрал скрипт. А такой картинки даже что то нету что тема закрыта? )))
Эмм. Я чего-то не понял вообще эти предложения )
подпись: Я слежу за вами! И я здесь бываю! Просто не всегда залогинен)))