• Валидация в AR модели или в форме!?!?

    @werdender
    Если ваша форма основана на AR-классе, то ее просто нужно от него унаследовать, переопределив, при необходимости, правила валидации и добавив нужную логику. Если нужно провалидировать данные, не связанные с БД (например форма входа), то то форма наследуется от yii\base\Model и правила валидации описываются в ней. Т.е. ответ на ваш вопрос зависит от того, какие данные вы валидируете.

    Это общепринятый путь, который описан в документации к yii, но в реальном мире каждый ССЗБ:

    Когда создаётся форма, основанная на модели, необходимо определить, что же является моделью. Модель может основываться на классе Active Record, который описывает некоторые данные из базы данных, или же на базовом классе Model (происходит от yii\base\Model), который позволяет использовать произвольный набор элементов формы (например, форма входа).
    Ответ написан
    Комментировать
  • Как реализовать отображение виджетов в тексте в Yii?

    @werdender
    Как-нибудь так:
    ob_start();
    $this->widget('application.widgets.BxSlider.BxSlider');
    $slider = ob_get_contents();
    ob_end_clean();
    $replacements['slider'] = $slider;
    Ответ написан
    Комментировать
  • JavaScript Как передать функции один из параметров - объект?

    @werdender
    Можно еще как-нибудь так:
    function calc(a, b, operation) {
        if(['+',' -', '*', '/'].indexOf(operation) < 0) {
            throw new Error('invalid operation'); 
        }
        return eval(parseFloat(a) + operation + parseFloat(b));
    };
    calc(5, 2, '*') //10


    (Про eval is devil в курсе)
    Ответ написан
    Комментировать
  • Как реализовать динамическое управление редиректом?

    @werdender Автор вопроса
    В итоге поступил следующим образом - когда менеджер заходит в веб-интерфейс и включает CDN для какого-то из дистрибутивов, в некоторый каталог (например, /cdnenabled) записывается пустой файл по маске product-name.trig. Нгинкс проверяет существование этого файла, и если он существует, то при запросе дистрибутива пользователь перенаправляется на CDN. Иначе - нгинкс отдает его сам.

    Пример конфига нгинкс-а:

    ...
    
    server {
    	listen 80;
    
    	location ~^/en/(.*)/(.*)-setup.exe$ {
    		set $product $1;
    		set $setup_part $2;
    
    		if (-f /home/www/example.com/public_html/cdnenabled/$product.trig) {
    			rewrite ^ http://cdnserver.com/en/$product/$product-setup.exe; #редирект на CDN в случае существования файла
    		}
    
    		#Отдать дистрибутив или показать 404.
    		try_files /home/www/example.com/public_html/en/$product/$product-setup.exe /home/www/example.com/public_html/404.html;
    	}
    }
    
    ...
    Ответ написан
    Комментировать
  • Aliexpress.com снимает деньги с карты. Куда жаловаться?

    @werdender
    Это курсовая разница, все нормально. Снимает не aliexpress, а сами ЯД. Иногда не снимают, а наоборот, начисляют.

    См.: money.yandex.ru/doc.xml?id=524783#shops, вопрос «Через несколько дней после того, как я заплатил с карты, с моего счета дополнительно сняли небольшую сумму. Почему?».
    Ответ написан
    1 комментарий
  • Обработка xml-фрагментов?

    @werdender
    Тут могут быть проблемы с размером — xml-и бывают достаточно большие, а, например, тот же simpleXML глотает его целиком и может упереться в память. Описать/найти такие классы/функции конечно особого труда не составит (XML2Array и Array2XML есть, например, тут, да и на SO часто мелькали похожие вопросы), но они тоже могут столкнуться с этой проблемой.

    Имхо удобнее просто использовать simpleXML, а в случае с большими файлами обходить файл XMLReader-ом, скармливая текущий узел в simpleXML.
    Ответ написан
    1 комментарий
  • Набор технологий для проекта карточной игры?

    @werdender
    Я в общем-то не игродел, но однажды тоже решил попробовать.
    Понравилось Crafty (http://craftyjs.com/). На хабре по ней были статейки — пройдитесь поиском. Дока вменяемая, звук и всякое такое легко цепляется.
    А на серверсайде вполне можно использовать то, в чем лучше разбираетесь — хоть то же пхп. Выстрелит — пересядете на что нибудь другое, если захотите.
    Ответ написан
    Комментировать
  • Какой разъем питания выбрать?

    @werdender
    Имхо что-то вроде BNC удобно было бы. Небольшой, с защелкой, прочный. Такие токи легко потянет. По цене — на алиэкспрессе порылся — папа на кабель от $0.15/шт.
    Ответ написан
    Комментировать
  • Где и как искать разработчиков в Астане?

    @werdender
    Удаленку не рассматривали как вариант? Я с вашими земляками уже несколько лет как сотрудничаю. Вроде все довольны.
    Ответ написан
    1 комментарий
  • Какие возможности вы хотели бы видеть на фриланс-бирже?

    @werdender
    Возможность собираться в группы.
    Например кто-то веб-программист, но не дизайнер, или нужен extJs.
    Фрилансеры могли бы собираться в группы и пилить бюджеты, а заказчик избавляется от необходимости искать спецов и проводить собеседования по отдельности — общается с манагером группы. При этом он может посмотреть историю каждого члена группы и все такое. В общем что-то вроде удаленного коворкинга.

    Но, имхо, сначала надо запустить базовый необходимый функционал, а уже потом обвешивать его плюшками. Иначе можно закопаться в фичи и никогда из них не выкопаться.

    Если нужна помощь — могу присоединиться по мере сил. В профиле есть скайп.
    Ответ написан
    Комментировать
  • Модель безопасности веб-приложения?

    @werdender
    Как-то все запутано, но надеюсь я правильно уловил смысл.
    Если говорить в контексте KO3, то имхо, ее модуль Auth вполне расширяется в описанную сторону.
    Там пользователю назначаются роли. Тогда группе пользователей с ролью login можно назначить определенные права в каждой модели.
    Ответ написан
  • Разработка подъемника для склада

    @werdender
    А почему не оттолкнуться от пром. модели любого сопровождаемого штабелера? Тогда и с комплектующими проблем не будет. И чертежи, думаю, можно найти.
    Или хочется именно что-то уникальное соорудить?
    Ответ написан
  • Как проверить авторизацию в сервисе через Facebook?

    @werdender
    По идее, клиент должен засылать данные юзера на сервер. Но данным клиента доверять нельзя…
    Пока приходит в голову только цифровая подпись этих данных и проверка этой подписи на сервере.
    Ответ написан
    3 комментария
  • Как удалить элементы из списка?

    @werdender
    Мой вариант (jquery для читабельности):

    <li>
         Элемент 1
        <button onclick="return del('element_id_here');">Удалить</button>
    </li>
    
    <script>
    function del(id) {
            $.post('/ajax/url', {element_id: id, token: 'csrf_token'}, function(response) {
                var json = $.parseJSON(response);
                if(json.success === 'ok') {
                   // если все ок
                }
                if(json.success === 'error') {
                        alert(json.message); // если все не ок
                }
            });
            return false;
    }
    </script>
    


    Я не яваскпритист — понимаю что джедаи все сделали бы сильно круче, но если бы мне в своем бложике приспичило бы — как-нибудь так и сделал бы (хотя над аяксом лучше бы сделать обертку, чтобы руками каждый раз ошибки не обрабатывать и т.д.). Еще наверное бы сделал вместо button ссылку (вид кнопки ей можно стилями придать), в href которой был бы урл на страницу удаления для юзеров без яваскрипта.

    Ну и перед POST-ом кнопку надо прятать или дисаблить.
    Ответ написан
    Комментировать
  • Ответственность программиста за программу

    @werdender
    У меня нетбинс виснет гораздо чаще чем раз в пол года). Хорошая программа.
    Ответ написан
    4 комментария
  • По мотивам удаленного поста про транспортные компании

    @werdender Автор вопроса
    1. Не думаю, что круглосуточная доступность получателя сильно сыграет роль. Таких все равно будет лишь небольшая часть, т.к. подавляющему большинству это просто неудобно, и на освобождении складских площадей скажется скорее всего мало, а переработку придется оплачивать довольно большому числу сотрудников — все таки материальные ценности, подотчет и т.д. Хотя в моей практике были и исключения — если клиент постоянный, и ну очень ему надо — шли навстречу. При значительном обороте груза лучше обеспечить круглосуточную работу самой ТК — ночью принимать груз на склад, а днем выдавать.

    По второму вопросу — тут сложно однозначно ответить. Это зависит и от размеров этого города, и от грузопотока. А чтобы говорить в масштабах страны нужно знать законодательную базу, транспортную инфраструктуру и все такое.
    Эффекты масштаба влияют, если я правильно понял эту часть вопроса. К крупной компании больше доверия — груз достаточно дорогой (мягко говоря), и кому попало его обычно не доверяют. В моей практике был случай, когда сгорела фура груза. Убытки многомиллионные, с какого-нибудь ИП или ООО-шки, у которой в уставном капитале только стол и стул, клиенты бы просто ничего не получили.

    Третий вопрос я, если честно, не совсем понял. Вроде-бы он к деятельности транспортных компаний не особо относится )
    Ответ написан
    2 комментария
  • Какие могут быть методы защиты публикуемых на сайте данных от кражи?

    @werdender
    Технических методов можно сказать что нет.
    По юридической части некомпетентен.
    Ответ написан
    Комментировать
  • Хранение редактируемого пользователем и исполняемого в браузере JavaScript в БД. Какие могут быть проблемы?

    @werdender
    Если вопрос в контексте безопасности, то можно выполняемый код отдавать в браузер с другого домена, не с того, с которого вы его будете смотреть. В ифрейме например.
    Или я не понял вопроса?
    Ответ написан
    Комментировать