Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (7)

Лучшие ответы пользователя

Все ответы (6)
  • Логика MVC - где именно обрабатывать GET параметры и как передавать?

    @vitaliycto
    Лучше создайте библиотеку Input, которая будет обезопасивать входящие данные.
    Ну и инициацию получения переменной конечно нужно делать в контроллере.
    class NewController extend Controller{
        function getMethod(){
            $q = Input::get('q');
            $arr = Input::post('a','b','c');
        }
    }
    Ответ написан
    2 комментария
  • Как реализовать ротацию баннеров на JavaScript?

    @vitaliycto
    очень грубо конечно но..:
    var banners = [
        {
            url: 'a.jpg',
     
            chance: 100,
            daysWeek: '1,3,4,7'
        },
        {
            url: 'b',
            chance: 50,
            daysWeek: '1,3,4,7'
        },
        {
            url: 'c',
            chance: 30,
            daysWeek: '1,3,4,7'
        }
    ];
    var rotoBann = function (banners, targetId, newoptions) {
        if (typeof banners == 'undefined' || banners.length == 0)
            return false;
        var options = {
            timeout: 1000,
            number: 2, //колличество выбираемых баннеров. 0 - без ограничений,
            random: true
        };
        newoptions = newoptions || {};
        for (var i in options)
            options[i] = newoptions[i] || options[i];
        var currentDayWeek = (new Date()).getDay();
        var biggestChance = 0;
        var filteredByDays = [];
        for (var i in banners) {
            var daysWeek = banners[i].daysWeek.split(',');
            for (var i2 in daysWeek) {
                if (daysWeek[i2] == currentDayWeek) {
                    filteredByDays.push(banners[i]);
                    break;
                }
            }
        }
        for (var i in filteredByDays) {
            biggestChance = (filteredByDays[i].chance > biggestChance) ? filteredByDays[i].chance : biggestChance;
        }
        filteredByDays.sort(function (a, b) {
            return  b.chance - a.chance
        });
        var selectedBanners = [];
        for (var i in filteredByDays) {
            if (options.number > 0 && selectedBanners.length == options.number)
                break;
            if (options.number == 0 || options.number >= filteredByDays.length || filteredByDays[i].chance == biggestChance) {
                selectedBanners.push(filteredByDays[i].url);
                continue;
            }
    
            if (Math.round(Math.random()) * 100 < filteredByDays[i].chance / biggestChance)
                selectedBanners.push(filteredByDays[i].url);
        }
        if (options.random)
            selectedBanners.sort(function () {
                return Math.round(Math.random());
            });
        var cS = 0;
        setInterval(function () {
            document.getElementById(targetId).innerHTML = '<img src="'+selectedBanners[cS]+'"/>';
            cS = (cS == selectedBanners.length - 1) ? 0 : cS + 1;
        }, options.timeout);
    }
    new rotoBann(banners, 'test');

    лучше отделить логику выборки от отображения
    Ответ написан
    1 комментарий
  • В проектах начал использовать различные СУБД. Какие есть альтернативы phpMyAdmin?

    @vitaliycto
    Если есть внешний доступ к мускулу, очень рекомендую dbForge Studio (есть бесплатная версия).
    Поможет в составлении и оптимизации сложных запросов, синхронизирует структуру и данные на разных серверах и много чего ещё.
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (2)