• Как реализовать страницу авторизации и регистрации на angular?

    jMas
    @jMas
    Full stack developer
    Вопросы которые вы задаете больше относятся к backend-у (то есть к nodejs), чем к angular.

    Есть решения для авторизации, например PassportJs, который позволяет помимио обычной авторизации делать авторизацию через сервисы Facebook, Google+ etc. passportjs.org/docs

    Решение довольно стандартное и часто используемое.

    Если вам нужно более простое решение - попробуйте посмотреть в сторону комплексного фреймверка, например SailsJS, здесь sailsjs.org/documentation/concepts/middleware например описаны методы авторизации. Так будет проще, потому что есть примеры.

    По поводу валидации email - в базе вы добавляете поле validation_hash, в которое пишите уникальный хэш и отправляете ссылку с этим хэшем пользователю - пользователь переходит по ссылке и поле validation_hash обнуляется. Теперь вы можете проверить при следующей авторизации, если validation_hash пустое - пользователь подтвержден, если не пустое - нет.

    Но сложно сказать что то определенное, потому что все зависит от требований к вашему сайту.
    Ответ написан
    Комментировать
  • Как сделать адаптивную таблицу html?

    jMas
    @jMas
    Full stack developer
    • Скролящийся контейнер
    • CSS Grids

    https://css-tricks.com/responsive-data-tables/
    Ответ написан
    Комментировать
  • Как в js просмотреть все переменные доступные из текущей области видимости?

    jMas
    @jMas
    Full stack developer
    Откройте Chrome Developer Tools, добавьте в интересующее вас место слово debugger;
    После чего обновите страницу - код выполнится до строчки в которой находится слово debugger;
    Рядом с листингом кода в Developer Tools есть панель где можно найти все локальные переменные доступные в данной области видимости. Более того - вы можете писать в Console переменные, смотреть их значения и изменять их непосредственно в текущей точке остановки.
    Ответ написан
  • Почему 99 > 'string' преобразуется в false?

    jMas
    @jMas
    Full stack developer
    // parseInt('string') is NaN
    // 99 > NaN is false

    То есть любые операции сравнения с NaN вернут false. Используйте функцию isNaN(...).

    И что вы скажете когда
    NaN === NaN // is false
    Ответ написан
    2 комментария
  • Как сделать доступными медиафайлы только для некоторых пользователей сайта?

    jMas
    @jMas
    Full stack developer
    Вы можете использовать авторизацию пользователей через MySQL базу данных https://httpd.apache.org/docs/current/mod/mod_auth...

    Но в целом это да, традиционно запрос через mod_rewrite направляется в php файл, там проверяется доступ к этому ресурсу, а далее php.net/manual/ru/function.readfile.php
    Ответ написан
    Комментировать
  • JS Как узнать обновлена ли страница или нет?

    jMas
    @jMas
    Full stack developer
    Скорей всего необходимо выяснить - открывалась ли страница повторно?
    Вы можете сделать это с использованием Cookies или LocalStorage.
    Я бы предпочел LocalStorage.
    <script>
    if (window.localStorage) {
        var lastVisitTime = window.localStorage.getItem('last_visit_time');
        if (lastVisitTime) {
            alert('Вы обновили страницу, в последний раз страница была загружена: ' + lastVisitTime);
        }
        window.localStorage.setItem('last_visit_time', (new Date()).toString());
    }
    </script>

    Проверить можете здесь: https://jsfiddle.net/jmas/drr7713o/
    Ответ написан
    4 комментария
  • Как вы начинаете вёрстку сайта?

    jMas
    @jMas
    Full stack developer
    Разбиваю макет по модулям (элемент списка + список, шапка, навигация, форма, кнопка). Определяю пересечения модулей (например два блока на разных страницах очень похожи - для них один модуль и просто у одного из них в HTML будет указан дополнительный класс .module.module-supermodule).

    Завожу несколько файлов:
    app.css - только импорты для модулей.
    @import "base.css";
    @import "icon.css";
    @import "btn.css";
    /* ... */
    @import "some-module.css";

    base.css - любые базовые стили не привязанные к классам, обычно стили для тегов, никаких намеков на классы или id.

    Верстаю сначала помодульно. Модуль обычно включает в себя только классы ограниченные определенным префиксом, например .nav- или .sidebar-.

    Распространенные модули, которые кочуют из проекта в проект .btn-, .icon-, .form-, .nav-. Принцип организации модуля прост: внутри строго использовать классы с определенным префиксом. Искать такой модуль в списке CSS файлов очень просто - префикс и есть название файла, в верстке понять что элемент принадлежит к определенному модулю тоже достаточно просто - у всех классов этого модуля есть этот префикс. Если модуль - это список, допустим .list: в модуле сначала будет идти .list-item, а затем .list .list-item - для того чтобы можно было использовать .list-item отдельно от родителя .list, иногда бывает очень полезно.

    В целом по структуре организации проекта все. Дальше - выбор определенного шага сетки (отступы, размеры элементов) должны быть кратны выбранному значению шага.

    Для сборки модулей в один файл использую конкатенатор, умеющий смотреть импорты и вытаскивать CSS файлы по ним. Если использовать LESS или SASS задача вообще элементарная. Я просто знаю, что люди которым я отдаю верстку не часто знакомы с LESS и SASS, чтобы отдавать стили в таком виде.

    По сути премудрости старта заканчиваются. Дальше все зависит сугубо от вашего профессионализма.

    P.S.: Кстати, почему то все сбрасывают стили - я этого никогда не делаю. Достаточно знать особенности стандартных стилей, тщательное тестирование в разных браузерах. Получается на деле стандартные отступы заданные браузером наоборот помогают. Тем более прошли те времена, когда был ощутимый разброс в стандартных значениях. В общем странно.
    Ответ написан
    4 комментария
  • wysiwyg Markdown редактор

    jMas
    @jMas
    Full stack developer
    А как быть с инлайновыми стилями?
    Ответ написан
    Комментировать
  • Как организовать доступ к сообщениям VK в веб-приложении?

    jMas
    @jMas
    Full stack developer
    Можно, но вам необходимо:

    1. Создать в своем личном аккаунте ВКонтакте приложение, получить ключ
    2. Используя ключ, ID и ключ приложения, а так же информацию о ID вашей страницы, логин пароль получить Access Token
    3. Запрашивать методы ВКонтакте, которые удовлетворяют полученным правам доступа, используя Access Token

    У меня есть реализация класса на PHP для API ВКонтакте 2.0: pastebin.com/5yyCjASu
    Можете пользоваться.
    Ответ написан
    Комментировать
  • Предсказание будущего?

    jMas
    @jMas
    Full stack developer
    Сам суперкомпьютер будет влиять на состояние среды в которой он находится. Выводы, которые будут сделаны при помощи данного компьютера, будут влиять на положение вещей в будущем.

    Можно предсказать будущее в системе, с определенными правилами, которые полностью известны наблюдателю.

    Это как в шахматах: есть огромное кол-во ходов, но играющий выбирает путь по которому идти.

    Суперкомпьютер по сути может предсказать бесчисленное число вариантов развития событий, вы лишь будете выбирать путь по которому стоит идти.
    Ответ написан
    Комментировать
  • Как можно было не продлить домен habrahabr.ru?

    jMas
    @jMas
    Full stack developer
    image
    Ответ написан
    Комментировать
  • Скрипт для сайтов-визиток?

    jMas
    @jMas
    Full stack developer
    Frog CMS, имхо
    Ответ написан
    Комментировать