Обсуждение MediaWiki:Gadget-yashare.js

Материал из Абсурдопедии
Перейти к навигацииПерейти к поиску

Починка виджета ВКонтакте[править]

Регексп[править]

window.location.href.match('%[0-9a-fA-F]{2,2}')

Показ «Это интересно» только в этом случае — неправилен. Во-первых, статьи с англоязычными названиями не будут иметь виджета. Во-вторых, [1]

page_id — Идентификатор страницы на Вашем сайте. Целое 32хразрядное число. Используется в том случае, если у одной и той же статьи может быть несколько адресов, а также на динамических сайтах, у которых меняется только хеш. Значение по умолчанию — контрольная сумма от location.href.

--ShareDVI
О, спасибо! По-моему, когда я впервые прикручивал виджет, page_id там не было вообще. Теперь всё будет гораздо лучше; сейчас переделаю нормально. Edward Chernenko? 12:05, 21 апреля 2011 (UTC)
Не за что. Как только этот идентификатор сделать, чтоб он и от незакодированной строки, и от закодированной был равен? В JS есть разве встроенная функция перекодировки?? --ShareDVI 12:25, 21 апреля 2011 (UTC)
У каждой вики-страницы есть свой численный идентификатор. Он на JS прописан в начале HTML-страницы в переменной wgArticleId. Edward Chernenko? 12:27, 21 апреля 2011 (UTC)
Вот только если сделать так просто, то потеряются прежние значения счётчиков. Ищу обходной способ. Edward Chernenko? 12:49, 21 апреля 2011 (UTC)

Re: чем считается хэш[править]

Нет, там md5. Я перехватил пакет — в нём был хеш (параметр page) и адрес. md5 хеш адреса совпал с page. Надо думать — мб надо брать не location. href (там некоторые браузеры кодируют, другие не кодируют).--ShareDVI 13:22, 21 апреля 2011 (UTC)

Было бы дело в кодировании… Не работает для адреса с только английскими буквами. javascript:VK.Widgets.Like('starbox', {type:"button",verb:0}, VK.MD5('http://absurdopedia.net/wiki/13')); в строку адреса — покажет пустой счётчик. Для статьи 13 же там 2 голоса есть. Edward Chernenko? 13:50, 21 апреля 2011 (UTC)

Нашёл решение. Вот это даёт правильный результат: javascript:VK.Widgets.Like('starbox', {type:"button",verb:0, page: VK.MD5(window.location)});. Ошибка была в документации ВКонтакте. Edward Chernenko? 20:43, 5 июня 2011 (UTC)

Не работает :(Edward Chernenko? 12:51, 11 июня 2011 (UTC)

Итог[править]

Всё поправилось при расширении API со стороны ВКонтакте (с прикручиванием появившегося там параметра pageUrl всё сразу заработало). Edward Chernenko? 12:58, 25 июня 2011 (UTC)