0 Пользователей и 1 Гость просматривают эту тему.
  • 8 Ответов
  • 861 Просмотров
*

phvsfpgs

  • Захожу иногда
  • 198
  • 1 / 0
Кнопка для скачивания
« : 19.08.2018, 20:24:53 »
Тема наверно глобальная, подскажите пожалуйста, существует ли плагин для создания кнопки в которой можно установить таймер и изображение кнопки? Чтоб в панели инструментов появилась функция установить кнопку с ссылкой. (Для разработчиков неплохая идея).

И как это можно реализовать в материале?

Пример:



Пример:

*

NewUsers

  • Живу я здесь
  • 2307
  • 215 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Кнопка для скачивания
« Ответ #1 : 19.08.2018, 20:40:34 »
Так что бы в панель управления была кнопка, на прямую не так просто вывести (только костылями), но если надо в содержимом материала, то это уже куда легче...
Хотя на странице подробностей материала есть также события перед и после основного содержимого материала, туда то и можно выводить.
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

phvsfpgs

  • Захожу иногда
  • 198
  • 1 / 0
Re: Кнопка для скачивания
« Ответ #2 : 19.08.2018, 21:12:18 »
Проблема в том, что нужно задержать гостей на 30-60 сек, прежде чем они начнут скачивать. А зарегистрированным будет прямая ссылка без времени.
*

phvsfpgs

  • Захожу иногда
  • 198
  • 1 / 0
Re: Кнопка для скачивания
« Ответ #3 : 20.08.2018, 04:49:05 »
Это сделано, каким то скриптом который вставляется в материал, при нажатии на кнопку идёт время и появляется ссылка, как можно это осуществить, чтоб не вставлять постоянно этот код, ну и опять же разделить гость и зарегистрированый? Ну или приблизить косметически как выше на скриншоте.

Код
<html>
 
<head></head>
 
<body>
    <div>
        <span style="color: #000; font-size: 100%; font-weight: bold;"></span>
        <input id="btn1" class='btn' type="button" value="Click" onclick="startTimer()" seconds="10" />
    </div>
    <div>
        <span style="color: #000; font-size: 100%; font-weight: bold;"></span>
        <input id="btn2" class='btn' type="button" value="Click" onclick="startTimer()" seconds="12" />
    </div>
    <script>
 
 
    Date.prototype.addSeconds = function(h) {
        this.setTime(this.getTime() + (h * 1000));
        return this;
    };
 
 
    Number.prototype.zpad = function() {
        return this.toString().length == 1 ? '0' + this : this.toString();
    };
 
 
    function calc_timer(secs) {
        var timer_obj = new Date().addSeconds(secs);
        var sec_diff = (timer_obj - new Date()) / 1000;
        var h = Math.floor(sec_diff / 3600);
        var m = Math.floor((sec_diff - h * 3600) / 60);
        var s = Math.round(sec_diff - h * 3600 - m * 60);
 
        return [h, m, s];
    }
 
 
    function set_text(e, h, m, s) {
        e.innerHTML = h.zpad() + ":" + m.zpad() + ":" + s.zpad();
    }
 
 
    for (var e of document.getElementsByClassName('btn')) {
        var [hours, minutes, seconds] = calc_timer(Number(e.getAttribute("seconds")));
        set_text(e.previousElementSibling, hours, minutes, seconds);
 
        e.onclick = function() {
            startTimer(this.previousElementSibling, hours, minutes, seconds);
        }
    }
 
 
    function startTimer(e, h = hours, m = minutes, s = seconds) {
 
        if (s == 0) {
            if (m == 0) {
                if (h == 0) {
                    e.nextElementSibling.style.display = "none";
                    e.innerHTML = '<a href="http://programm.ho.ua/feedback.php">link</a>';
                    return;
                }
                h--;
                m = 1;
            }
            m--;
            s = 59;
        } else s--;
 
        set_text(e, h, m, s);
        setTimeout(function() {
            startTimer(e, h, m, s);
        }, 1000);
    }
    </script>
</body>
 
</html>
*

rkron

  • Захожу иногда
  • 316
  • 7 / 0
Re: Кнопка для скачивания
« Ответ #4 : 20.08.2018, 07:04:17 »
Это сделано, каким то скриптом который вставляется в материал, при нажатии на кнопку идёт время и появляется ссылка, как можно это осуществить, чтоб не вставлять постоянно этот код, ну и опять же разделить гость и зарегистрированый? Ну или приблизить косметически как выше на скриншоте.

Код
<html>
 
<head></head>
 
<body>
    <div>
        <span style="color: #000; font-size: 100%; font-weight: bold;"></span>
        <input id="btn1" class='btn' type="button" value="Click" onclick="startTimer()" seconds="10" />
    </div>
    <div>
        <span style="color: #000; font-size: 100%; font-weight: bold;"></span>
        <input id="btn2" class='btn' type="button" value="Click" onclick="startTimer()" seconds="12" />
    </div>
    <script>
 
 
    Date.prototype.addSeconds = function(h) {
        this.setTime(this.getTime() + (h * 1000));
        return this;
    };
 
 
    Number.prototype.zpad = function() {
        return this.toString().length == 1 ? '0' + this : this.toString();
    };
 
 
    function calc_timer(secs) {
        var timer_obj = new Date().addSeconds(secs);
        var sec_diff = (timer_obj - new Date()) / 1000;
        var h = Math.floor(sec_diff / 3600);
        var m = Math.floor((sec_diff - h * 3600) / 60);
        var s = Math.round(sec_diff - h * 3600 - m * 60);
 
        return [h, m, s];
    }
 
 
    function set_text(e, h, m, s) {
        e.innerHTML = h.zpad() + ":" + m.zpad() + ":" + s.zpad();
    }
 
 
    for (var e of document.getElementsByClassName('btn')) {
        var [hours, minutes, seconds] = calc_timer(Number(e.getAttribute("seconds")));
        set_text(e.previousElementSibling, hours, minutes, seconds);
 
        e.onclick = function() {
            startTimer(this.previousElementSibling, hours, minutes, seconds);
        }
    }
 
 
    function startTimer(e, h = hours, m = minutes, s = seconds) {
 
        if (s == 0) {
            if (m == 0) {
                if (h == 0) {
                    e.nextElementSibling.style.display = "none";
                    e.innerHTML = '<a href="http://programm.ho.ua/feedback.php">link</a>';
                    return;
                }
                h--;
                m = 1;
            }
            m--;
            s = 59;
        } else s--;
 
        set_text(e, h, m, s);
        setTimeout(function() {
            startTimer(e, h, m, s);
        }, 1000);
    }
    </script>
</body>
 
</html>

Это делается плагином
*

phvsfpgs

  • Захожу иногда
  • 198
  • 1 / 0
Re: Кнопка для скачивания
« Ответ #5 : 20.08.2018, 07:55:54 »
Найти бы этот плагин
*

rkron

  • Захожу иногда
  • 316
  • 7 / 0
Re: Кнопка для скачивания
« Ответ #6 : 20.08.2018, 10:40:57 »
Найти бы этот плагин
Можно написать
*

phvsfpgs

  • Захожу иногда
  • 198
  • 1 / 0
Re: Кнопка для скачивания
« Ответ #7 : 20.08.2018, 18:32:48 »
Можно написать

Он уже написан добрым человеком beliyadm, вот только как его сделать в плагин или модуль, я не знаю. Вот его работа: Кнопка для скачивания

Как эту систему вставлять в материал, с разными ссылками? И разделить гостей от зарегистрированых.
*

rkron

  • Захожу иногда
  • 316
  • 7 / 0
Re: Кнопка для скачивания
« Ответ #8 : 20.08.2018, 18:49:59 »
Он уже написан добрым человеком beliyadm, вот только как его сделать в плагин или модуль, я не знаю. Вот его работа: Кнопка для скачивания

Как эту систему вставлять в материал, с разными ссылками? И разделить гостей от зарегистрированых.
Этого мало. Нужна кнопка вставки ссылки в редактор и сам плагин с проверкой пользователей и выводом ссылки. Кнопку я уже наваял, плагин я думаю, завтра допишу 
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Менеджер шаблонов: не работают кнопка "Сохранить" "Закрыть" и тд

Автор darkghost

Ответов: 2
Просмотров: 500
Последний ответ 22.11.2021, 21:14:11
от darkghost
Кнопка читать далее + свой текст

Автор robotwerder

Ответов: 4
Просмотров: 483
Последний ответ 16.02.2021, 13:21:08
от robotwerder
Как добавить документ pdf c возможностью скачивания на главную страницу сайта?

Автор Yulya_ivanova

Ответов: 1
Просмотров: 372
Последний ответ 28.12.2020, 11:11:05
от Yulya_ivanova
Исчезает кнопка с dropdown в Uikit

Автор pvi1

Ответов: 13
Просмотров: 1918
Последний ответ 19.11.2020, 11:10:28
от kremisa
Кнопка заказать

Автор Haren

Ответов: 2
Просмотров: 583
Последний ответ 18.02.2019, 10:57:01
от wishlight