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

phvsfpgs

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

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

Пример:



Пример:

*

NewUsers

  • Завсегдатай
  • 1611
  • 137 / 0
Re: Кнопка для скачивания
« Ответ #1 : 19.08.2018, 20:40:34 »
Так что бы в панель управления была кнопка, на прямую не так просто вывести (только костылями), но если надо в содержимом материала, то это уже куда легче...
Хотя на странице подробностей материала есть также события перед и после основного содержимого материала, туда то и можно выводить.
Занимаюсь создание расширений только для Joomla 3.x.x | Доработка и настройка сайтов. Работаю по факту (без всяких предоплат). Оплата только на Яндекс.Деньги. Помогу с переездом на PHP 7.x и исправлю ошибки PHP
*

phvsfpgs

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

phvsfpgs

  • Захожу иногда
  • 106
  • 0 / 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

  • Захожу иногда
  • 310
  • 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

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

rkron

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

phvsfpgs

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

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

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

rkron

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

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

Кнопка заказать

Автор Haren

Ответов: 2
Просмотров: 116
Последний ответ 18.02.2019, 10:57:01
от wishlight
Кнопка форма загрузки файлов на сайт(пользователями)

Автор Mehtiy

Ответов: 2
Просмотров: 108
Последний ответ 01.02.2019, 19:58:57
от Mehtiy
Меню как кнопка

Автор Leo1986

Ответов: 2
Просмотров: 230
Последний ответ 01.12.2018, 18:55:29
от Leo1986
Организация на сайте возможности загрузки и скачивания файлов

Автор ruslan917

Ответов: 0
Просмотров: 156
Последний ответ 04.06.2018, 11:04:22
от ruslan917
Кнопка с подменой текста на другой при наведении

Автор Pavel_L

Ответов: 4
Просмотров: 308
Последний ответ 10.05.2018, 18:53:38
от effrit