По многочисленным просьбам и обвинением в несении атмты и создании бесполезных тем, я создаю тему по ошибкам, багам и битым ссылкам на сайте. Отныне, все найденное буду постить сюда. И сразу небольшой репорт: Я набрал в поиске "Doom Legacy", нажал на ссылку в поиске и увидел это
Прием, как слышно? Я в состоянии найти его руками. Тут битая ссылка в поиске. Повторяю Я в состоянии найти его руками. Тут битая ссылка в поиске. Конец связи.
Unregistered С таким рвением надо уже весь сайт к чертовой бабушке переписывать. Ну настолько натянута проблема, что я поражаюсь, откуда столько у тебя времени на то, чтобы скрупулезно искать все битые ссылки, мелочные бажки (даже не баги). Я понимаю, что это как-бы надо, но в то же самое время с администрацией можно связаться даже не через сайт, а через почту и, о б-же мой, мессенджеры.
Добавлено спустя 1 минуту 17 секунд:
Klon А теперь честно скажи когда ты последний раз пользовался поиском на сайте? Вот только честно и, ессесна, исключая этот самый случай.
Ну настолько натянута проблема, что я поражаюсь, откуда столько у тебя времени на то, чтобы скрупулезно искать все битые ссылки, мелочные бажки (даже не баги). Я понимаю, что это как-бы надо, но в то же самое время с администрацией можно связаться даже не через сайт, а через почту и, о б-же мой, мессенджеры.
Дело не в скрупулёзном поиске. Понимаешь, у нас сайт такой крутой, что достаточно просто записывать каждую хрень с которой ты сталкиваешься в процессе использования вместо того, чтобы привычно игнорировать. И получится то что получается. Я в своё время просто за пять минут внимательного юзания одной страницы форума завёл три темы подряд.
Вот что реально проблема так проблема - это код для YouTube на сайте. Насколько я заметил, модераторы постоянно упрекают тех людей, у которых не получается им пользоваться. А не получатся реально у большинства. Но если им могут пользоваться не только лишь все, а вообще мало кто, то наверное проблема не в посетителях, а в том, что данный код убог и противен. Когда этот велосипед на костыльной тяге только конструировали, я показывал практически готовый код, но никто даже не посмотрел. А дело в том, что заставлять пользователя вставлять не ссылку на видео, а его хэш, особенно когда у нас на дворе уже XXI век, как-то глупо.
Скрытый текст:
И вообще наши предки думали, что мы тут уже колонии в других звёздных системах строим, а мы ездим на костыльных велосипедах вниз головой - стыдно должно быть!
И вообще я хочу заметить, что формат шорткода на сайте менять не надо будет, и те коды видео, которые уже попали в базу, останутся такими же, как и были. Чтобы всё стало по-человечески, нужно просто изменить кусок яваскрипта. Ну да, так вот о чём это я. Допустим, что у нас есть var url = 'https://...' - наша ссылка на видеоролик, которую мы получаем как-нибудь, ну хотя бы из prompt. Дальше мы делаем проверку на вшивость корректность url (чтобы ссылка была именно ютубовская) и вытаскиваем из неё сраный долбаный хэш (который все сейчас должны вытаскивать руками). Для этого определяем нашу регулярку, через которую мы будем гнать url. Я допускаю, что вы не понимаете, как работают регулярки в JS, но всё достаточно просто - мы должны не передавать регулярку и строку в функцию, а сначала создать объект с регулярным выражением, а уже потом передать строку методу этого объекта.
var rxp = /https?:\/\/www\.youtube\.com\/watch\?.{0,}v=([-+_A-Za-z0-9]{11}).{0,}/;
Объект создали, теперь пихаем строку в метод exec.
var parse_res = rxp.exec(url);
Переменная vnum получает массив с результатами поиска по выражению. Дальше всё как в php - первым элементом этого массива будет всё выражение, а все остальные заполнятся совпадениями подвыражений, заключённых в скобки. Вот это нам и надо, то есть хэш видео и попадёт нам 1 элементом, т.к. скобки у нас только одни.
var youtube_code = '[youtube]' + parse_res[1] + '[/youtube]';
И всё, вот это мы пихаем в редактор и больше ничего не делаем. Всё просто!
Я надеюсь, администрация перестанет раздавать ни в чём не виноватым пользователям "награды" (ибо реально не за что), а сделает наконец на основе мной предложенного метода нормальную вставку ссылок. Спасибо за внимание.
P.S.: если кто-то хочет заявить, что это не работает - и вообще, как грузчик из Doom 3, грязно обругать меня, то я замечу, что данный код взят мной из работающего примера, написанного уж года 3 назад.
Насколько я заметил, модераторы постоянно упрекают тех людей, у которых не получается им пользоваться. А не получатся реально у большинства. Но если им могут пользоваться не только лишь все, а вообще мало кто, то наверное проблема не в посетителях, а в том, что данный код убог и противен.
Проблема не в коде. Проблема в том, что НИГДЕ не написано, как именно работает тэг Youtube. От слова совсем. И предпросмотра нет. И вообще на разных сайтах он работает по разному. И вот не надо втирать про велосипеды, я точно знаю что например на том же здум форуме это работает так же. И у меня на моём форуме это работало так же. И ни там, ни там никто никогда не жаловался, ибо предпросмотр был.
В общем, починить надо, но точно не под лозунгом "ну как же вы так можете вообще в 2016-то!".
з.ы. заюзал твой код для чата. Попробовал точнее. Не работает. Не учтено, что www от ютуба отпилили. Поправил. Работает. И на пшп версию прикрутил. Кому не лень, может скопипастить в форум.
Скрытый текст:
$ytid = null;
$matches = array();
if (preg_match('/https?:\\/\\/(www\\.)?youtube\\.com\\/watch\?.*v=([-+_A-Za-z0-9]{11}).*/', $b_contents, $matches))
$ytid = $matches[2];
else if (preg_match('/https?:\\/\\/youtu\\.be\\/([-+_A-Za-z0-9]{11}).*/', $b_contents, $matches))
$ytid = $matches[1];
if ($ytid == null)
$ytid = $b_contents;
var ytid = null;
var matches = null;
if (matches = /https?:\/\/(www\.)?youtube\.com\/watch\?.*v=([-+_A-Za-z0-9]{11}).*/.exec(contents))
ytid = matches[2];
else if (matches = /https?:\/\/youtu\.be\/([-+_A-Za-z0-9]{11}).*/.exec(contents))
ytid = matches[1];
if (!ytid)
ytid = contents;
точно не под лозунгом "ну как же вы так можете вообще в 2016-то!"
Это сарказм был.
ZZYZX:
Не учтено, что www от ютуба отпилили.
Хм, ну я действительно только одну регулярку привёл (второй, которая разбирает ссылки для домена youtu.be, у меня там нет). Но даже это лучше, чем вставлять код руками. У меня работает мой код, но он ни с чем не интегрирован - просто генерация iframe на основе ссылки.
ZZYZX:
И на пшп версию прикрутил
Для сайта всё же лучше сделать это на JS - и на серв нагрузка меньше (хотя это уже и не критично), и чтобы код в старых постах не перестал работать - лучше его уже не трогать. Я настоятельно прошу переписать только вставку в редактор, остальное трогать не надо.
ZZYZX:
з.з.ы. какая переменная vnum???
Я почти сразу же поправил её, но у тебя страница видимо осталась висеть в браузере - посмотри в мой предыдущий пост ещё раз, там уже всё нормально.
P.S.: спасибо за код, твой вариант лучше - заберу себе вторую регулярку.
Для сайта всё же лучше сделать это на JS - и на серв нагрузка меньше (хотя это уже и не критично), и чтобы код в старых постах не перестал работать - лучше его уже не трогать. Я настоятельно прошу переписать только вставку в редактор, остальное трогать не надо.
У меня код в старых постах не перестанет работать. Читай внимательнее. Он принимает как просто id, так и ссылку. Да и на пшп я спокойню парсю ббкоды и ничего не ломается (и ключевой момент — не лагает).
Только я тут пропустил один момент, там в конце после назначения ytid=contents ещё есть проверка по регулярке что это валидный id. Которая и обеспечивает работу id без ссылки "по старому".
Не подумайте, что я идиот(хотя можете думать), но в отмазках дважды записана фраза "Doom - мы верим, этот мир реален", т.е. вероятность появления этой фразы выше, чем остальных, а это неправильно.
Кстати говоря, вопрос печеньки немного некорректен. Не использовать поиск по сайту!=искать по сайту в гугле. Может просто на сайте сейчас ничего не нужно(человеку, а не #ненужно(во избежание))