Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по вёрстке Оформить QR-код в всплывающее окно

Оформить QR-код в всплывающее окно


     29.10.2012    Общие вопросы по вёрстке, jQuery, Ламерские вопросы    3585

вопрос
Добрый день!
Пытаюсь скрестить два модуля: Модуль QR-код 3.0 [DLE] && Хак Parts [REZER]
Удалось добиться генерации QR - кода к каждой ссылки. Пример:
<img src=http://qr.kaywa.com/img.php?s=6&d=https://play.google.com/store/apps/details?id=org.lucasr.pattrn  />

Вот так выглядит код ссылки в новости после парсера (редактирование новости.)
[quote][leech=https://play.google.com/store/apps/details?id=org.lucasr.pattrn]Скачать с [b]Play.google.com[/b][/leech] [<img src=http://qr.kaywa.com/img.php?s=6&d=https://play.google.com/store/apps/details?id=org.lucasr.pattrn  />][/quote]

На сайте:
Оформить QR-код в всплывающее окно


Подскажите пожалуйста как можно завернуть ссылку в javascript или что то подобное, как это делается в самом модуле QR-код 3.0 [DLE][ или ему всех подобных.
Пример:
http://allnokia.ru/symbsoft/moreinfo-7033.htm
http://www.androidik.com/3743-dead-trigger.html

Ответил: ПафНутиЙ


Для того, чтобы избежать парсера вам нужно использовать дополнительные поля.
Заводите допполе к примеру с названием qrcode
а в шаблон новости вставляете
[xfgiven_qrcode]<img src=http://qr.kaywa.com/img.php?s=6&d=[xfvalue_qrcode]  />[/xfgiven_qrcode]

ну и в допполе вставляете ссылку на гуглплей.

Комментарии пользователей (7)

koftan
9 | 9

koftan - 30 октября 2012 10:02 - Юзер

Спасибо ПафНутиЙ. Но вопрос не в этом, нужно использовать именно этот парсер (Хак Parts [REZER]). Все уже работает, осталось только понять как можно завернуть полученную ссылку на QR код при помощи яваскрипт.
ссылка на QR-код:
<img src=http://qr.kaywa.com/img.php?s=6&d=https://play.google.com/store/apps/details?id=org.lucasr.pattrn  />

koftan
9 | 9

koftan - 30 октября 2012 10:04 - Юзер

Как то так:
<a onclick="showQR(this);" href="javascript:;">[QR]</a>

П.С. Ссылок в новости может быть больше чем одна....

ПафНутиЙ
1064

3393 | 2433

ПафНутиЙ - 30 октября 2012 10:19 - Админ

Вот так:
function onclick(event) {
  sqr(this, 7033)
}

показывается ссылка на allnokia
на втором сайте не нашёл qr-код/
На самом деле чтобы разобраться как работает парсер нужно видеть сайт изнутри.
Думаю вам нужно в стол заказов.
Цитата: koftan
П.С. Ссылок в новости может быть больше чем одна....

тогда приведённая конструкция будет обрабатывать только первую.
Вообще не понимаю в чём сложность использовать допполе? Это правильнее и проще чем городить какие то парсеры и хаки. Вполне достаточно одного модуля qr кодов.

Каков вопрос - таков и ответ. Просто помните об этом.

koftan
9 | 9

koftan - 30 октября 2012 12:21 - Юзер


Код парсера, файл /engine/classes/parse.class.php (DLE 9.6):
// "начало" парсер 

    function build_links($source = "") {
        if (!$source) {
            return false;
        } elseif (preg_match_all("#\[LINKS(\sPARTS)*\](.+?)\[\/LINKS\]#si", $source, $old_links)) {
            $parts = $old_links[1];// print_r($parts);
            $old_links = $old_links[0];
            for ($l = 0; $l < count($old_links); $l++) {
                if (preg_match_all("/(http:\/\/|edk2:\/\/|ftp:\/\/|https:\/\/|news:\/\/)+([^\s\n><\'\"\*\[\]]+)/si", $old_links[$l], $new_links)) {
                    $parts[$l] = ((strtoupper(trim($parts[$l])) == 'PARTS') ? true : false);
                    $new_links = $new_links[0];
                    $new_link = "";
                    if (count($new_links) > 1) {
                        for ($c = 0; $c < count($new_links); $c++) {
                            $qrimg_leech = "<img src=http://qr.kaywa.com/img.php?s=$qrconf[size]&d=$new_links[$c]  />";// - генерируется QR-code если ссылок несколько
                            if ($parts[$l]) {
                                $new_link .= "[leech=".$new_links[$c]."]Скачать с [b]".ucfirst(strtolower(trim(clean_url($new_links[$c]))))."[/b] part#".($c+1)."[/leech] [{$qrimg_leech}]\r\n";
                            } else {
                                $new_link .= "[leech=".$new_links[$c]."]Скачать с [b]".ucfirst(strtolower(trim(clean_url($new_links[$c]))))."[/b][/leech] [{$qrimg_leech}]\r\n";
                            }
                        }
                    } else {
                        $qrimg_leech = "<img src=http://qr.kaywa.com/img.php?s=$qrconf[size]&d=$new_links[0]  />";// - генерируется QR-code одной ссылки
                        $new_link .= "[leech=".$new_links[0]."]Скачать с [b]".ucfirst(strtolower(trim(clean_url($new_links[0]))))."[/b][/leech] [{$qrimg_leech}]\r\n";
                    } // А приписывать к одной ссылке 1 - парт не прилично=)
                    $source = str_replace($old_links[$l], trim($new_link), $source);
                }
            }
        }
        return $source;
    }
    // "конец" Парсер


П.С. Приведенный блок ссылками и технической информацией о файле (язык, версия, разработчик и т.д.) и так находиться в доп. поле - не хотелось бы его разбивать ещё на поля для ссылок...

П.С. На скриншоте приведен пример qr кода на сайте №2

koftan
9 | 9

koftan - 3 ноября 2012 11:43 - Юзер

Нашел решение, Popup - всплывающее окно (см. второй комментарий)
П.С. На случай если кому нибудь понадобиться.

ПафНутиЙ
1064

3393 | 2433

ПафНутиЙ - 3 ноября 2012 13:57 - Админ

из-за одного окошка я бы не советовал подключать целую библиотеку mootools.

Каков вопрос - таков и ответ. Просто помните об этом.

koftan
9 | 9

koftan - 5 ноября 2012 10:49 - Юзер

В приведенном примере используется библиотека jQuery
Поэтому подключать не чего не нужно, т.к. в DLE и так подключена эта библиотека
В итоги подключается только скрипт:
    <script type="text/javascript" src="{THEME}/js/popup.js"></script>

    <script type="text/javascript">
        $(document).ready(function(){
            PopUp($('#obj'), $('.trigg'));
        });
    </script>

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы