В данном разделе Вы сможете задать любой вопрос который касается uCoz. Если Вы ищите скрипт, то напишите в эту тему, также можете посетить наш раздел веб-мастеров.
Если у пользователя мало гарантий, то советуем провести сделку через гаранта.
Не работает скрипт листалки файлов. Вообщем должно быть [ Предыдущий материал | Следующий материал ], а у меня остается лишь [ ]. Почему так? ЧПУ стоит. При загрузке страницы появляется надпись Предыдущий материал | Следующий материал и сразу же исчезает.
При загрузке страницы появляется надпись Предыдущий материал | Следующий материал и сразу же исчезает.
Дело в том, что это вполне привычное дело, а именно скрипт так ведет себя, когда соседних материалов попросту нет, куда бы перейти. Вот первоисточник скрипта - проверь такой ли код, как там, да и для какого модуля ты ставишь его?
А еще, возможно, кто-то не знает, но этот скрипт ущербный в плане кода, а именно конфликт с bb-кодом Bold:
Цитата
id="b"
Тоесть, при загрузке страницы материала и комментариев, срабатывании скрипта этого - пропадает кнопка bb-кода Bold из панельки добавления комментария, можете проверить сами.
Я был переписал его, поменяв там id, чтобы не было такого конфликта более, а также сделал эти ссылки кнопками, вот, возможно, кому-то пригодиться:
Код
<!-- Следующий/Предыдущий материал --> <script type="text/javascript" language="javascript"> document.write('<div id="pages" align="center"></div>'); includeJSfile('http://diz-cs.ru/js/circleGo.js'); //Скрипт или код для круговой перелинковки </script> <!-- /Следующий/Предыдущий материал -->
А еще, возможно, кто-то не знает, но этот скрипт ущербный в плане кода, а именно конфликт с bb-кодом Bold
-SAM-, молодец. Я заходил в эту тему и исследовал проблему данную. Но -SAM- обнаружил новую, которая вполне имеет место. Переписал скрипт и предлагаю свой вариант. Раз уж конфликтует по id - я вовсе отказываюсь от него. У нас есть четко заданный div:
Код
<div id="pages"></div>
Его id ведь и без того используется. И в нем всегда три элемента - ссылка на предыдущий материал, разделитель, ссылка на следующий материал. Значит, обращаемся к этим элементам не по id, а как к дочерним этого div. Все дочерние элементы берем функцией $('#pages').children() и из них выбираем первый, второй или третий по номеру (а правильнее - нулевой, первый и второй) по необходимости. А id блока в скрипте сделал через переменную "blockid" - чтобы было легче править в виду выявления новых конфликтов, опять же. Теперь, о том, что я выяснил. Скрипт не работает не только когда соседи по id удалены, но и когда они в других категориях. Пример - https://diz-cs.ru/load....0-42389 . Ссылка https://diz-cs.ru/load/23-1-0-42389 вполне работает. Т.е. от ЧПУ беды тут нет (если бы была - скриптом вырезали бы "soft_i_programmy/multimedija/google_chrome_42_0_2311_15_dev_samaja_aktualnaja_versija" и все). Беда в том, что сменив id категории, т.е. 23, на другую - получаем нерабочую ссылку (не буду приводить измененную ссылку - такие ссылки в индексе не полезны сайту). Т.е. нам нужно получить ссылку без id категории. Обнаружить такую мне удалось. На странице комментариев пользователя. Ссылка - https://diz-cs.ru/index/86-42389-5-5 - ведет на тот же материал и не содержит id категории. Единственная проблема, полученный скрипт подходит лишь для каталога файлов, так как последняя цифра в ссылке означает модуль с материалом. Ссылка на новость сайта выглядит так - https://diz-cs.ru/index/86-14687-5-2 . Т.е. цифра два уже (зато убралась дата и категория, и это позволяет допилить скрипт и под "Новости сайта", что невозможно было раньше). Минус такой ссылки в том, что она никогда не возвращает 404 ошибку. Там есть системная страница, которая оповещает, что нет такого материала. Но она не является страничкой 404. Это вызывает необходимость менять функцию, убирающую кнопку. Зато это и плюс - не будет битых ссылок на страницы (ибо тот же Google лезет искать ссылки еще и в скриптах).
Код
<div id="pages"></div> <script> var blockid = '#pages'; //здесь храним id блока, в котором будут кнопки a=location.href; b=a.split('-'); c=b.length; d=eval(c-1); e=b[d]; f=a.split('-'+e)[0]; $(blockid).html('[ <a href="/index/86-'+eval(e-1)+'-5-5">Предыдущий материал</a><span> | </span><a href="/index/86-'+eval(e*1+1)+'-5-5">Следующий материал</a> ]'); $.get('/index/86-' + eval(e*1+1) + '-5-5', function(data){ if ($(data).text().substring(0, 5) == 'Error') { $(blockid).children().eq(1).hide(); $(blockid).children().eq(2).hide(); } }); $.get('/index/86-' + eval(e-1) + '-5-5', function(data){ if ($(data).text().substring(0, 5) == 'Error') { $(blockid).children().eq(1).hide(); $(blockid).children().eq(0).hide(); } }); </script>
Послежу за темой и за решением проблемы дальше. Возможно, выявятся еще какие баги и идеи. Надо же допилить этот скрипт наконец.
Сообщение отредактировал Tiny - Пт, 01.05.2015, 23:59:18