Оповещения Bootstrap в Laravel

Apr 11, 03:56 am Категория:   Комментарии

Если долго смотреть в админку сайта, то можно превратиться в блогера. Потекут из-под пальцев тексты глубокого смысла, слетятся на них почитатели таланта писательского и жизнь станет совсем исключительной. Правда админку сначала нужно написать. А состоит она, как оказалось, из кучи второстепенных фишек, натыканных вокруг формы публикации. Лично я решил начать собирать эти фишки с алертов: сообщений, предупреждений и прочего интерактива. В используемом мной Bootstrap есть готовые их версии на чистом CSS и проскриптованные. Совершил действие – получил реакцию. И главное – просто и без всякий выпрыгивающих модальных окон. Хотя и с ними тоже можно.

Алерты и прочие оповещения совсем не рокет сайенс, но без них теряется связь с приложением и приходится только догадываться, что там произошло, записался ли файл, нет ли проблем с загрузкой фото и т.п. Вроде работает, но как-то некомфортно. Поэтому все фреймворки по фронтенду предлагают соответствующие сниппеты. И для получения полноценных оповещений остаётся лишь формировать информативные сообщения в контроллере и отображать их в представлении. А чтобы не париться по поводу программирования этой функциональности в каждом новом проекте, нужно подключать готовые пакеты и добавлять несколько строк в blade-шаблоны. А так же взять за правило формировать сами сообщения по факту производства активностей.

С пакетами всё просто: можно написать свой или использовать чужой. Готовых пакетов для алертов много. Мне за последнее время попалась пара: vinkla/alert и laracasts/flash. Я начну свои эксперименты со второго пакета. Если не пойдёт или что-то не понравится, попробую первый. Если и с первым ничего не выйдет, то напишу свой. А скорее всего, я всё перепробую и напишу свой, но начну таки с laracasts/flash. И начало это, как принято в Laravel, состоит из команды

composer require laracasts/flash

которая пакет установит. После установки, по традиции, редактирую файл config/app.php и делаю две вставки

'providers' => [
     ...
    Laracasts\Flash\FlashServiceProvider::class,
];
'aliases' => [
    ...
    'Flash' => Laracasts\Flash\Flash::class,
];

Практически всё. Теперь в шаблонах blade необходимо в нужном месте вставить одну строчку.

@include('flash::message')

Всё, можно применять. Для этого можно использовать фасад, алиас которого я прописал в файле конфигурации, либо функцию-хэлпер:

     // Хотим сообщить об ошибке с помощью фасада
     Flash::error('Что-то пошло не так!');
    // Используем хэлпер для сообщение об успехе
     flash()->success('Всё отлично получилось.');

Доступно 5 видов сообщений:

  • Flash::info(‘Сообщение для вывода информации’)
  • Flash::success(‘Сообщение об успешном производстве действия’)
  • Flash::error(‘Сообщение об ошибке’)
  • Flash::warning(‘Предупреждение’)
  • Flash::overlay(‘Сообщение для вывода в модальном окне’, ‘Заголовок окна’)

Текст сообщения и его тип в виде значений ключей flash_notification.message и flash_notification.level сохранятся в сессии и будут извлечены при создании страницы. Если вставка в шаблоне для этого пакета есть, то всё должно произойти само собой. Ручная обработка сообщений, что может потребоваться при использовании не Bootstrap, а чего-нибудь другого, производится довольно просто:

@if (Session::has('flash_notification.message'))
    
{{ Session::get('flash_notification.message') }}
@endif

Что на русский можно перевести как “Если есть сообщение в сессии, то будем его транслировать в соответствии с заданным уровнем тревожности”. Скобочки и буковки в этом коде расставить по вкусу в соответствии с используемыми инструментами. И лучше сохранить код в виде всё того же blade шаблона и вставлять его куда надо.

Если для алертов используются модальные окна, то нужно после подключения библиотек jQuery.js и Bootstrap.js добавить такой скрипт:


Вот кажется и всё.

Аутентификация в Laravel

Apr 6, 04:15 am Категория:   Комментарии

Второй раз зайду в тему. Для меня действительно было шоком осознание того, что админка и пароль на вход в закрытые зоны могут создаваться отдельно. Такой вот шаблон, отпечатавшийся в мозгах до уровня принятия формы извилины. Плохо, что тупил. Хорошо, что перестал. К паролям.

Весь текст статьи

Синдром вахтёра - админка

Apr 4, 03:29 am Категория:   Комментарии

Как я не оттягивал момент начала работы с админкой, но он таки наступил на меня всей своей неотвратимой массой. Это может показаться странным, но сразу после установки в Laravel админки нет. От слова совсем. Никакой. Это легко можно проверить, запустив artisan с параметром route:list. Нормально, да? На дворе весна, а ты тут сиди и придумывай админку. Думаю, что разработчики в этом направлении тоже идут, что подтверждают нововведения в версии 5.2, но пока почти всё приходится делать самому.

Весь текст статьи

Послать по адресу

Apr 3, 08:01 pm Категория:   Комментарии

От теории к практике. Быстро! А то стоит одиноко в интернете вся из себя такая продающая страница, клиентов собрала легион, а сообщить мне об этом не может. Пока писал рассуждения о форме почтовой понял, что главное – не заморачиваться. Рассуждать можно долго, а связь должна быть прямо вот сразу. Путь в документацию Laravel – это практически тупик. Если знаешь как делать, то и по документации поймешь. А не знаешь… Ну и вот.

Весь текст статьи

Формализация контактов

Apr 3, 12:13 am Категория:   Комментарии

Делал я одностраничник, делал и тут выяснилось, что главная его часть – обратная связь. Если обычный сайт может быть ориентирован на показ рекламы, внедрение в головы посетителей абстрактного благоговения перед каким-нибудь брендом и на прочие диджитальные штучки, то одностраничник должен дать контакт с посетителем. Не какой-нибудь визртуальный, а обычный контакт: письмо, звонок. Любое действие, предшествующее покупке. Кажется это называется “лид”. А это возможно только при наличии контактной формы или телефона для звонка.

Весь текст статьи

Laravel - это про новости?

Apr 3, 12:11 am Категория:   Комментарии

Я не замечал раньше сайтов на Laravel и жизнь моя была спокойна и безмятежно. С тех пор, как я занялся поисками, я потерял покой, сон и разум. Причиной этого стало то, что почти все найденный сайты на Laravel оказались новостными и мой отказ от чтения газет по утрам был полностью уничтожен этим обстоятельством.

Весь текст статьи

Психанул. Одностраничник на Laravel.

Apr 2, 09:06 pm Категория:   Комментарии

Ещё раз прошёлся по близлежащим интернетам с целью изучения примеров сайтов на Laravel. Искал варианты с исходниками, разумеется. Всё что нашёл не выдерживает никакой критики. Либо только админка времени выхода первого айфона, либо клиентской части вообще нет, а то и просто набор вьюх без базы данных из серии “я и моё любимое животное (я справа)”. И тогда я решил сделать сайт с нуля. С сассами, бутстрепами и ещё какой-нибудь нежностью. Пусть даже всего из одной страницы.

Весь текст статьи

Модельный бизнес

Mar 28, 08:30 am Категория:   Комментарии

Кажется я сильно погорячился с заявлением, что мне для начала нужны только миграции, а модели потом. Ну закачал я данные в базу, ну порадовался, что могу ими теперь пользоваться. А ведь и не могу. От слова совсем. Для работы с базами данных в Laravel предназначены модели. В них же рекомендуют выносить из контроллеров и бизнес логику. А раз нужны модели, то таблицы нужно приводить в порядок, описывать связи, устанавливать правила и описывать как оно вообще должно работать.

Весь текст статьи

Евроремонт по-ларавельски

Mar 26, 08:41 am Категория:   Комментарии

Каждый фреймворк имеет раздел типа “Быстрый старт”. В этом разделе в духе “3 клика, 2 минуты, готовый результат” рассказывается о том, как просто и быстро можно начать пользоваться их замечательным продуктом. И это правда. Но только про первую дозу, которая, как все знают, бесплатна. А потом уже не соскочить и приходится платить. Временем, деньгами, нервами и… В общем – платить. В публикации по выбору фреймворка для фронтенда набежал нехилый список дополнений, делающих интеграцию, разработку и внешний вид более лучшими. Уточню.

Весь текст статьи

Bootstrap, Foundation и другие мимимишки

Mar 22, 10:42 pm Категория:   Комментарии

Первые тесты фреймворков семейства Laravel показали, что Google хочет от вебмастера мобильной версии сайта. Бета Я.Вебмастера, несмотря на разницу в цифрах с основной версией сервиса, тоже настаивает на мобилизации. Аргументация бронебойная: в мобильной выдаче поиска нет смысла показывать неадаптированные сайты. Правда, есть один нюанс в этой самой адаптации, заключающийся в том, что вёрстка в деле мобилизации находится на 9-м месте, а то и дальше. Но сейчас не об идеологии, а о технологии мобилизации. Как её добиться?

Весь текст статьи

« Раньше