Родился в городе Таллине, окончил художественную школу, заинтересовался программированием, и теперь уже 8й год занимаюсь разработкой сайтов, планирую освоить новые грани программирования. Изучаю Java и Python 3
Контакты
Местоположение
Эстония, Эстония, Таллин

Достижения

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

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

Все теги (34)

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

Все ответы (78)
  • Откуда ошибка Uncaught TypeError: Cannot read property 'addEventListener' of null?

    Isolution666
    @Isolution666
    творческая личность
    $(document).ready(function() {
                setInterval(window.onload = function(){
                       ...тут ваш код
                });
            });

    js в конце, перед </body>
    Ответ написан
  • Где в Yii2 файлы ошибок 404 и 403(хочется перевести эти страницы)?

    Isolution666
    @Isolution666
    творческая личность
    Здравствуйте товарищи программисты.
    ---
    Не так страшен код, как его трактуют ))
    Подсказку к этому вопросу как ни странно, я нашёл в папке "views/site/"
    Файл: error.php
    ===
    Разработчики поняли, что программисты столкнуться с таким вопросом, поэтому оставили подсказки:
    <?php
    
    use yii\helpers\Html;
    
    /* @var $this yii\web\View */
    /* @var $name string */
    /* @var $message string */
    /* @var $exception Exception */
    
    $this->title = $name;
    ?>


    Из них мы видим, что переменную <?=$name?>
    нам даёт <?=$this->title;?>
    А свалился этот нейм на наши головы из класса View !
    Проведя рефакторинг, я понял, что за <?=$message;?>
    Отвечает языковой пакет Yii2/
    А именно. /vendor/yiisoft/yii2/messages/ru/
    Если конечно вы в конфиге файла main.php указали русский язык. Там их куча, вы можете в этом убедится, да и сам класс показал, что используется модель подставки сообщений, через конструкцию: <?=Yii::t('yii','значение');?>

    Вы спросите, а нахера такой геморрой нужен??

    Отвечаю, во-первых, это не геморрой, а очень даже классное решение! Убивает сразу двух зайцев наповал! Мультиязычность - раз, Повторяющиеся элементы - два! Благодаря такому решению не надо ковырять весь код, достаточно заменяющие элементы заменить такой конструкцией, и всё, поменял текст или дизайн кнопки "обновить", сделал это в одном месте, в файле yii.php и всё, дизайн и текст поменялся во всём сайте, а отредактировали один файл!!! Это невероятно удобно. Так и с ошибками и с сообщениями, зачем писать на каждой страничке ручками "ваше сообщение успешно отправлено", если можно прописать значение = перевод. Так вот, в голове кода была ещё одна подсказка /* @var $exception Exception */
    и в самом классе ссылка на мануал php7 - php.net/manual/ru/exception.getmessage.php

    Таким образом мы имеем:
    class HttpException extends UserException
    {
        /**
         * @var int HTTP status code, such as 403, 404, 500, etc.
         */
        public $statusCode;
    
    
        /**
         * Constructor.
         * @param int $status HTTP status code, such as 404, 500, etc.
         * @param string $message error message
         * @param int $code error code
         * @param \Exception $previous The previous exception used for the exception chaining.
         */
        public function __construct($status, $message = null, $code = 0, \Exception $previous = null)
        {
            $this->statusCode = $status;
            parent::__construct($message, $code, $previous);
        }
    
        /**
         * @return string the user-friendly name of this exception
         */
        public function getName()
        {
            if (isset(Response::$httpStatuses[$this->statusCode])) {
                return Response::$httpStatuses[$this->statusCode];
            } else {
                return 'Error';
            }
        }
    }

    Ну так, раз мы можем указать код ошибки, public $statusCode;
    То можно тупо и условия поставить, например:
    <?=($exception->statusCode == '404') ? $this->title = "Ошибка 404" : ''; ?>
    <?=($exception->statusCode == '403') ? $this->title = "Доступ запрещён" : ''; ?>
    <?=($exception->statusCode == '500') ? $this->title = "Внутренняя ошибка сервера" : ''; ?>

    А текст ошибки под заголовком редактируется в языковом пакете:
    /vendor/yiisoft/yii2/messages/ru/yii.php
    $message

    <?php
    return [
    ...
    'Page not found.' => 'Страница не найдена.',
    'You are not allowed to perform this action.' => 'Вам не разрешено производить данное действие.',
    'An internal server error occurred.' => 'Возникла внутренняя ошибка сервера.',
    ...
    ];

    Выводится как <?=Yii::t('yii', 'Page not found.');?> и т д...
    Но вам выводить ничего не надо, класс сам определит код ошибки и выведет её текст.
    Как заменить заголовок ошибки я уже написал выше.

    --
    Это был полный разбор страницы ошибок, благодарю всех за внимание. Пока :)
    Ответ написан
  • Как запретить копировать (сохранять) файлы с сайта?

    Isolution666
    @Isolution666
    творческая личность
    Лучше всего установить бэкдор. Если заказчик свалит с сайтом без оплаты, то вы сможете откатывать всё до нужной версии, то есть, если заказчик посмотрел и исчез без оплаты, сматывайте проект до той версии, где к примеру неправильные ссылки на скрипты и стили. Кто бы не внёс правки, вы снова откатываете сайт через бэкдор и там нихера не работает.
    Хороший урок для тех кто хочет на халяву получить чужой труд. Проблема копипаста из интернета уже стара как мир, опытные программисты прячут репозиторий от исходного проекта как могут, чтобы после скачивания ничего не отображалось, но есть и те, кто может посмотреть "Sourcer" в инспекторе кода, и благополучно всё скачать. Есть ещё один способ, спасёт только от шоколаты, которая ещё не шарит в этом, программист это обойдёт:
    window.onload = function() {
        document.addEventListener("contextmenu", function(e){
            e.preventDefault();
        }, false);
    document.addEventListener("keydown", function(e) {
        if (e.ctrlKey && e.shiftKey && e.keyCode == 73) {
            disabledEvent(e);
        }
        if (e.ctrlKey && e.shiftKey && e.keyCode == 74) {
            disabledEvent(e);
        }
        if (e.keyCode == 83 && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) {
            disabledEvent(e);
        }
        if (e.ctrlKey && e.keyCode == 85) {
            disabledEvent(e);
        }
        if (event.keyCode == 123) {
            disabledEvent(e);
        }
    }, false);
        function disabledEvent(e){
            if (e.stopPropagation){
                e.stopPropagation();
            } else if (window.event){
                window.event.cancelBubble = true;
            }
            e.preventDefault();
            return false;
        }
    };

    Не хотите чтобы стащили из интернета, не выкладывайте. Делайте сайты на локальном сервере. Показывайте к примеру через "скайп" или "тимвивер" - последнее подойдёт если заказчик хочет "пощупать" сайт, ну вы поняли. А вообще, если к этому подходить без шуток, делайте себе лицензию, открывайте ИП, заключайте договор с заказчиком, и тогда правда будет на вашей стороне. Выбор конечно за вами. Либо оставаться в пролёте, пытаясь заработать копейки на фрилансе, либо иметь юридическую силу, на тот случай если вас нагло поимели по проекту. С последним конечно движухи лишней больше, но зато деньги всегда есть. Успехов вам.
    Ответ написан
  • Как сделать выборку уникальных значений через ActiveRecord в Yii2?

    Isolution666
    @Isolution666
    творческая личность
    Я не стал изобретать велосипед. Оказалось, что вывести список записей через цикл на столько просто и легко и элементарно)) Повторяющиеся записи исчезают, остаётся список только уникальных записей!

    Просто в экшене контроллера напиши:

    public function actionPage(){
            $select = City::find()->select(['obl'])->distinct()->all();
            return $this->render('page', ['select' => $select,]);
        }



    Немного поясню City это модель, которая обращается к некой таблице в БД
    obl - название столбца в таблице, записи которого хотите вывести


    Топорный пример вывода списка записей через select:

    <select class="form-control">
                        <?php foreach ($select as $m) { ?>
                            <option value="<?=$m->obl;?>"><?=$m->obl;?></option>
                        <?php } ?>
                    </select>


    Испытано лично, работает! Подсчёт уникальных записей, это:
    ->count();

    --

    $select = City::find()->select(['obl'])->distinct()->count();

    --
    <p>У вас всего <?=$select;?> уникальных записей</p>

    В документации Yii взял, там и черпаю знания, кому помог? )) Был рад стать полезен. Успехов!
    Ответ написан
  • Как сделать случайный цвет у div?

    Isolution666
    @Isolution666
    творческая личность
    Я думаю, что случайный цвет, это зло, потому как есть люди которым не нравятся определённые цвета, и первое впечатление будет с отвращением и не приязнью. Поэтому советую почитать эту статью https://medium.com/webbdev/%D1%81%D1%80%D0%B5%D0%B... здесь описывается как брать средний цвет картинки, и на его основе делать цвет самого блока. Выглядит весьма интересно и красиво.
    Ответ написан

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

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