ExBB Community » Файловый ExBB » Решение проблем » QR-коды в аттаче

Страниц (1): [1]
 

1. Guyver - 10 ноября 2015 — 15:02 - перейти к сообщению
В общем, решил я прилинковать к аттачам QR-коды. Используя сервис Chart Google API.

Открыл файл topic.php

Нашёл

CODE:
LANG['DownloadAttach'].'<a href="printfile.php?action=attach&f='.

$forum_id.'&t='.$topic_id.'&id='.$attach_ID.'" target="_blank">'.

$attach_name.'</a>


И после этой конструкции вставил:

CODE:
<br>
<a href="http://chart.apis.google.com/chart?cht=qr&chs=300x300&chl=http://мой сайт/forum/printfile.php?action=attach&f='.$forum_id.'&t='.$topic_id.'&id='.$attach_ID.'" target="_blank" title="QR-код">
<img src="http://chart.apis.google.com/chart?cht=qr&chs=35x35&chl=http://мой сайт=H|1" alt="QR-код">


И появилась у меня в аттаче маленькая картиночка QR-кода. При нажатии на неё открывается в новом окне картинка с большим кодом. Обрадовался, думаю, сейчас всё заработает. Ага, как бы не так ;о)


Всё дело в том, что если взять любой аттач с форума, например

CODE:
http://мой сайт/forum/printfile.php?action=attach&f=22&t=18&id=1


И в браузере написать

CODE:
http://chart.apis.google.com/chart?cht=qr&chs=300x300&chl=http://мой сайт/forum/printfile.php?action=attach&f=22&t=18&id=1


То появится тут же картинка кода, вроде бы хорошо, но когда с телефона я сканирую картинку и захожу по ссылке на сформированную ссылку, то аттач обрезается до слова attach, т.е. в телефоне ссылка принимает вид:

CODE:
http://мой сайт/forum/printfile.php?action=attach


Почему обрезается &f=22&t=18&id=1 ??? Что делать? Как ввести в QR-код полную ссылку?

П.С. Похоже, гугловскому сервису не нравится амперсанд & - если его убрать - ничего не обрезается. Только он встречается в ссылке - всё. Капец... Т.е. гугловский сервис воспринимает амперсанд как свою команду и стопорится на этом... Эх, жалко-то как...
2. Guyver - 10 ноября 2015 — 15:56 - перейти к сообщению
Такс. Удалось решить проблему. Заменил три амперсанда в коде &f='.$forum_id.'&t='.$topic_id.'&id='.$attach_ID.' на %26

Теперь всё работает!

Помогите мне доделать код. У меня в коде сделано как маленькая картинка, и на неё кликаешь мышкой - открывается в новом окне большая картинка.

Как сделать так, чтобы маленькая картинка превращалась в большую на той же странице. Или как-то сделать, чтобы при клике на маленькую картинку открывался спойлер с большой... (Только не спойлер из BB-кода форума ;о)

На данный момент работает так:
3. Guyver - 15 ноября 2015 — 10:30 - перейти к сообщению
Доделал QR-код! Теперь он ничего не открывает на новой странице, а всё показывает тут же. Добавил описание при наведении на картинку.

Двойной клик - открывает QR-код в полном размере (300 на 300).
Одинарный клик - сворачивает QR-код (35 на 35).

Протестировал на телефоне - у меня всё работает. Вставлял конструкцию туда же, как описано в 1 сообщении темы. В файл topic.php

CODE:
<img width="35" height="35" src="http://chart.apis.google.com/chart?cht=qr&chs=300x300&chl=http://ваш_сайт/forum/printfile.php?action=attach%26f='.$forum_id.'%26t='.$topic_id.'%26id='.$attach_ID.'" title="Двойной клик откроет QR-код в полном размере, одинарный свернёт его!" ondblclick="this.width=300;this.height=300" onclick="this.width=35;this.height=35">


В адресе вместо "ваш_сайт/forum" пишем путь к вашему форуму. Код пишем в 1 строчку, не натыкаемся на грабли как я ;о)
4. Guyver - 15 ноября 2015 — 12:35 - перейти к сообщению
В предыдущем посте я справился с задачей, но маленькая картинка была несколько расплывчатой. Потому что она на самом деле была 300 на 300, а я её принудительно уменьшал до 35 на 35. Эту неприятность я тоже исправил, загружая для разных размеров картинки разные изображения по клику. Теперь код такой:

CODE:
<img width="41" height="41" src="http://chart.apis.google.com/chart?cht=qr&chs=41x41&chl=http://ваш_сайт/forum/printfile.php?action=attach%26f='.$forum_id.'%26t='.$topic_id.'%26id='.$attach_ID.'" title="Двойной клик откроет QR-код в полном размере, одинарный свернёт его!" ondblclick="this.src=\'http://chart.apis.google.com/chart?cht=qr&chs=300x300&chl=http://ваш_сайт/forum/printfile.php?action=attach%26f='.$forum_id.'%26t='.$topic_id.'%26id='.$attach_ID.'\';this.width=300;this.height=300" onclick="this.src=\'http://chart.apis.google.com/chart?cht=qr&chs=41x41&chl=http://ваш_сайт/forum/printfile.php?action=attach%26f='.$forum_id.'%26t='.$topic_id.'%26id='.$attach_ID.'\';this.width=41;this.height=41">


Пояснения:

Почему здесь у меня маленькая картинка уже не 35 пикселей как постом выше, а 41 пиксель? Потому что в зависимости от длины ссылки нужно увеличивать это значение. Минимально оно может быть 21, но это если ссылка очень короткая и у кода вашего не будет полей. А если она длиннее, а вы поставите меньшее значение, то вместо картинки будет пустота. Для своего форума я подобрал минимальное значение, это 41. При 40 уже ничего не работает.

Это при ширине белых полей картинки в 4 (по-умолчанию). Этого требует большинство ридеров QR-кодов. Если же ширину убрать до 0, то мои QR-коды будут видны уже при 33 пикселях. Но без полей работоспособность кода не гарантируется на некоторых читалках.

Поэтому если картинка-превью для вас слишком крупная, можно превьюшку делать просто на ваш сайт, ссылка будет короткой и уместится в 33 пикселя. А уже полную ссылку делать на полноценный аттач.

Превьюшка:
CODE:
this.src=\'http://chart.apis.google.com/chart?cht=qr&chs=33x33&chl=http://ваш_сайт\'


Большая картинка:
CODE:
this.src=\'http://chart.apis.google.com/chart?cht=qr&chs=300x300&chl=http://ваш_сайт/forum/printfile.php?action=attach%26f='.$forum_id.'%26t='.$topic_id.'%26id='.$attach_ID.'\'



Яндекс.Метрика   

Powered by ExBB
[Script Execution time: 0.044]     [ ]