Создание Доски объявлений с использованием фреймворка YII2.
Автор: Жданов В.В.
Данный курс - практикум по созданию сайта с использованием фреймворка YII2.
Цель: создание небольшого сайта с нуля до "коробочного" варианта, готового к размещению на хостинге.
Теории здесь не много, больше практической работы по принципу: "произвел действие - получил результат".
Также по максимуму используем функционал фреймворка YII2.
Программируем - и кайфуем!
# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
|
|||
На этом уроке мы рассмотрим тематику разработки и настроим инструменты Отчёт отправил: 11589. Yefim Выполнено за 10 мин. [Показать отчёт] Научился: Устанавливать Apache NetBeans 11.1 Сложности: Вопросы: На моем компе установлена уже среда NetBeans IDE 8.2 Можно ли использовать ее? Не будут ли конфликтовать NetBeans IDE 8.2 Apache NetBeans 11.1? |
|||||
2 |
![]() |
1 тест |
|||
На этом уроке мы создадим проект нового сайта, установим YII2 и запустим новый сайт на нашем локальном домене Отчёт отправил: 11589. Yefim Выполнено за 1 день 19 час. 46 мин. [Показать отчёт] Научился: Это моя третья попытка отчитаться. В первых двух я просил о помощи. Подробности см.п.3. Помощь пришла от автора курса Жданова Валерия. Большое спасибо, Валерий! Ваш совет реально помог. К своему стыду, я невнимательно смотрел этот фрагмент видео. Сейчас всё получилось! Еще раз большое спасибо! Сложности: На моем РС ОС- Win7-(64). Вначале мне казалось, что этот урок будет легким. Однако, по мере его выполнения возникали разного рода проблемы. Так при первой попытке создать проект на каком-то шаге система было сообщение об ошибке. Я на время отключил антивирус и повторил действия. Прежней ошибки уже не возникало. Зато в окне проекта некоторые папки помечены красными кружочками. При редактировании файла hosts я заметил, что нужная строка уже есть и я не стал ее добавлять. При запуске http://bull.local браузер выдает совсем не то, что я ожидал. (см. скриншот). Как решить указанные проблемы? |
|||||
3 |
![]() |
2 теста |
|||
На этом уроке мы настроим удобные для человека ссылки и поменяем название сайта при помощи настроек config/web.php Отчёт отправил: 11589. Yefim Выполнено за 33 мин. [Показать отчёт] Научился: Настраивать удобные для человека ссылки и менять название сайта Сложности: На этот раз все получилось с первого раза. |
|||||
4 |
![]() |
|
|||
На этом уроке мы создадим схему базы данных для нашего проекта
Отчёт отправил: 11589. Yefim Выполнено за 14 час. 6 мин. [Показать отчёт] Научился: Cоздавать схему базы данных для нашего проекта Сложности: Неплохо бы добавить возможность редактирования объявления после публикации и информирования об этом заинтересованных пользователей |
|||||
5 |
![]() |
1 тест |
|||
На этом уроке мы создадим базу данных, подключим ее к нашему проекту и создадим таблицу пользователей при помощи механизма миграций Отчёт отправил: 11589. Yefim Выполнено за 3 час. 13 мин. [Показать отчёт] Научился: Создавать базу данных, подключать ее к проекту и создавать таблицу пользователей при помощи механизма миграций. Сложности: После команды yii migrate возникла проблема (см.скрин). Просмотрел несколько раз урок и не нашел ничего "плохого" в моих ействиях. В какой-то момент меня посетила идея отлючить антивирус. И вот - чудо! Всё получилось! |
|||||
6 |
![]() |
1 тест |
|||
На этом уроке мы подкорректируем модель User и реализуем аутентификацию на сайте через базу данных
Отчёт отправил: 11589. Yefim Выполнено за 1 день 22 час. 13 мин. [Показать отчёт] Научился: Научился надёжно логинить пользователя. Сложности: Всё получилось!!! Вопрос 1: В базе данных имя пользователя записано заглавной буквой, но при этом система не ругается, если я ввожу всё маленькими буквами. Это нормально? Вопрос 2: Система реагирует на действия пользователя (например при вводе неверного пароля) стандартным текстом на английском языке. Как можно переопределить этот текст, причем на другом языке? |
|||||
7 |
![]() |
|
|||
На этом уроке создадим таблицу и модель Информация о пользователе
Отчёт отправил: 11589. Yefim Выполнено за 2 дня 27 мин. [Показать отчёт] Научился: Создавать таблицу и модель Информации о пользователе Сложности: Вопрос: При создании базы данных поле id по тем или иным причинам может меняться не последовательно. Как произвести перенумерацию? |
|||||
8 |
![]() |
1 тест |
|||
На этом уроке мы рассмотрим теоретические основы работы MVC и создадим новый контроллер в нашем проекте
Отчёт отправил: 11589. Yefim Выполнено за 17 мин. [Показать отчёт] Научился: Ознакомился с основами работы MVC и научмлся создавать новый контроллер для проекта. Сложности: --- |
|||||
9 | MVC - информация о пользователе |
|
|||
На этом уроке мы получим данные о пользователе из базы в представление
Отчёт отправил: 11589. Yefim Выполнено за 1 день 5 час. 0 мин. [Показать отчёт] Научился: Получать данные о пользователе из базы. Сложности: Это моя вторая попытка отчитаться. В первой я просил о помощи. Спасибо Автору курса, Валерию Жданову. Моя ошибка заключалась в том, что метод getUserinfo() я разместил в классе UserinfoRecord, а нужно было в UserRecord. |
|||||
10 | Пользователь - кто зарегистрирован сейчас? |
1 тест |
|||
На этом уроке мы получим информацию о текущем зарегистрированном пользователе, а также сделаем рефакторинг кода Отчёт отправил: 11589. Yefim Выполнено за 42 мин. [Показать отчёт] Научился: Получать информацию о текущем зарегистрированном пользователе Сложности: Всё получилось. |
|||||
11 | Новый пользователь - заготовка и меню |
|
|||
На этом уроке мы создадим действие и представление для добавления пользователя, а также добавим пункт меню "Регистрация" Отчёт отправил: 11589. Yefim Выполнено за 11 час. 45 мин. [Показать отчёт] Научился: Создавать действие и представление для добавления пользователя, а также добавлять пункт меню "Регистрация" Сложности: Все получилось! |
|||||
12 | Новый пользователь - модель для формы |
1 тест |
|||
На этом уроке мы создадим модель параметров формы добавления пользователя
Отчёт отправил: 11589. Yefim Выполнено за 7 час. 15 мин. [Показать отчёт] Научился: Создавать модель параметров формы для добавления нового пользователя Сложности: Хотелось бы, чтобы урок заканчивался минимальным визуальным отображением, чтобы как-то проверить всё ли сделано верно. Вопрос: мы преднамеренно не проверяли уникальность имени пользователя или это будет предусмотрено в будущем? |
|||||
13 | Новый пользователь - дизайн формы начало |
|
|||
На этом уроке мы зададим поля формы добавления пользователя
Отчёт отправил: 11589. Yefim Выполнено за 3 час. 25 мин. [Показать отчёт] Научился: Задавать поля формы добавления пользователя Сложности: Всё получилось! Вопрос: При пустом поле система выдает сообщение, что поле не должно быть пустым. Это хорошо! Но после того как поле начинается заполняться это сообщение не исчезает. Как заставить его исчезнуть как только поле становится непустым? |
|||||
14 | Новый пользователь - дизайн формы: поля и колонки |
1 тест |
|||
На этом уроке мы добавим все поля формы, кнопку сохранения, а также разместим поля в две колонки Отчёт отправил: 11589. Yefim Выполнено за 1 час. 37 мин. [Показать отчёт] Научился: Добавять поля формы, кнопку сохранения, а также размещать поля в две колонки Сложности: Кнопку логичнее размещать в общем диве, так как сохраняться должны все поля. Попытался внести свою каплю в дизайн. Но кнопку разместить в центре пока не удалось |
|||||
15 | Новый пользователь - сохранение нового пользователя |
1 тест |
|||
На этом уроке мы напишем алгоритм сохранения записи о пользователе и информации о нем
Отчёт отправил: 11589. Yefim Выполнено за 1 день 4 мин. [Показать отчёт] Научился: Создавать алгоритм сохранения записи о пользователе и информации о нем. Сложности: Новая запись сохраняется в базе данных, однако строка $this->redirect("/site/login"); не работает: система не находит метод >redirect Почему? namespace app\controllers; use Yii; use yii\filters\AccessControl; use yii\web\Controller; use app\models\UserRecord; use app\models\UserinfoRecord; use app\models\UserForm; =============================== Я заменил описание класса //class UserController extends \yii\console\Controller на class UserController extends Controller и всё заработало!!! |
|||||
16 | Красивая аутентификация на сайте |
|
|||
На этом уроке мы поменяем дизайн формы входа на сайт
Отчёт отправил: 11589. Yefim Выполнено за 3 час. 54 мин. [Показать отчёт] Научился: Менять дизайн формы для входа на сайт Сложности: В основном всё получилось. У меня только поля для ввода Логина и пароля слишком длинные. Где-то я прозевал, когда это сделали. В каком уроке? |
|||||
17 | Что доступно Юпитеру? |
1 тест |
|||
На этом занятии мы научимся управлять доступом к пунктам главного меню
Отчёт отправил: 11589. Yefim Выполнено за 1 час. 29 мин. [Показать отчёт] Научился: Управлять доступом к пунктам главного меню для ностя и заренистрированного пользователя. Сложности: Всё получилось!!! Вопрос: В нашем проекте не предусматривается случай, когда пользователь забыл пароль. Если это так, то при регистрации его (пользователя) следует соответственно предупредить. |
|||||
18 | Объявления - создание базы и модели |
1 тест |
|||
На этом уроке мы создадим таблицу bulletins при помощи миграций и сгенерируем для данной таблицы класс ActiveRecord
Отчёт отправил: 11589. Yefim Выполнено за 19 час. 37 мин. [Показать отчёт] Научился: Создавать таблицу bulletins при помощи миграций и генерировать для данной таблицы класс BulletinsRecord Сложности: Всё получилось! |
|||||
19 | Объявления - контроллер, представление и много записей |
1 тест |
|||
На этом уроке мы создадим контроллер и представление для работы с объявлениями, а также сделаем связь записей о пользователях и объявлениях типа "один-ко-многим" Отчёт отправил: 11589. Yefim Выполнено за 1 час. 6 мин. [Показать отчёт] Научился: Создавать контроллер и представление для работы с объявлениями. Сложности: Всё получилось!!! |
|||||
20 | Объявление - функциональный дизайн страницы |
|
|||
На этом уроке мы сделаем дизайн страницы наших объявлений, который поможет нам работать с объявлениями в дальнейшем
Отчёт отправил: 11589. Yefim Выполнено за 21 час. 27 мин. [Показать отчёт] Научился: Создавать дизайн страницы объявлений Сложности: Всё получилось!!!! |
|||||
21 | Объявление - ограничение доступа |
|
|||
На этом уроке мы ограничим доступ неавторизированного пользователя к странице управления объявлениями, а также решим некоторые технические вопросы
Отчёт отправил: 11589. Yefim Выполнено за 20 час. 33 мин. [Показать отчёт] Научился: Ограничивать доступ неавторизированного пользователя к странице управления объявлениями. Создавать заготовку для формирования строки в таблице объявления Сложности: Всё получилось!!! Кнопочки "Редактировать", "Удалить","Опубликовать", на мой взгляд следовало бы разместить в хронологическом порядке: "Редактировать", "Опубликовать", "Удалить" Я также установил иконки для всех кнопок. |
|||||
22 | Объявление - поля для пользовательских форм |
|
|||
На этом уроке мы создадим класс BulletinsForm и определим, какие поля будут использоваться при создании объявления Отчёт отправил: 11589. Yefim Выполнено за 6 час. 55 мин. [Показать отчёт] Научился: Создаать класс BulletinsForm с полями для создания объявлений Сложности: Всё получилось |
|||||
23 | Объявление - форма добавления объявлений |
1 тест |
|||
На этом уроке мы создадим представление для добавления объявлений и действие контроллера, запускающего это представление Отчёт отправил: 11589. Yefim Выполнено за 11 час. 43 мин. [Показать отчёт] Научился: Создавать форму для заполнения данных объявления. Сложности: Все получилось. Попутно нашел и исправил у себя опечатку в русском тексте. Вопрос: Почему поля "Заголовок" и "Город" прасполагаются на разных горизонтальных уровнях? Пользуясь случаем, Поздравляю Евгения Витольдовича, Валерия Владимировича, Елену Вставскую, Кирилла Шмойлова и всех преподавателей нашего проекта с днем учителя! Будьте здоровы и удачливы! Побольше Вам умных и прилежных учеников! |
|||||
24 | Объявление - сохранение в черновик |
|
|||
На этом уроке мы реализуем механизм сохранения нового объявления в черновик
Отчёт отправил: 11589. Yefim Выполнено за 12 час. 2 мин. [Показать отчёт] Научился: Сохранять в базе данных все поля нового объявления. Сложности: Всё получилось! |
|||||
25 | Объявление - список |
|
|||
На этом уроке мы реализуем вывод сохраненных в базе объявлений в список
Отчёт отправил: 11589. Yefim Выполнено за 1 день 9 час. 29 мин. [Показать отчёт] Научился: Выводить в список сохраненные в базе данных объявлений пользователя Сложности: Всё получилось. Но есть вопросы: Кнопка "Добавить объявление" работает некорректно. По ссодержанию адресной строки я понял причину ошибки и сделал вторую кнопку, изменив для неё код обработчика. Из скриншота можно понять. Вопрос почему в видео уроке этого явления нет? Где моя ошибка? |
|||||
26 | Объявление - всё на публику |
1 тест |
|||
На этом уроке мы сделаем наши объявления опубликованными
Отчёт отправил: 11589. Yefim Выполнено за 15 час. 39 мин. [Показать отчёт] Научился: Публиковать объявления Сложности: Всё получилось!!! |
|||||
27 | Объявление - публикация на главной странице |
1 тест |
|||
На этом уроке мы разместим наши опубликованные объявления на главной странице сайта
Отчёт отправил: 11589. Yefim Выполнено за 4 час. 18 мин. [Показать отчёт] Научился: Размещать опубликованные объявления на главной странице сайта Сложности: Всё получилось! Хочу поделиться своим "открытием": Если Редактор NetBeans помечает файл -php красной точкой с восклицательным знаком с подсказкой: "Синтаксическая ошибка. неожиданный конец файла", то в нашем случае редактор не любит краткую форму записи php кода <? php-code ?>. Если это записать так: <?php php-code ?> то красная точка исчезает (если нет других ошибок). |
|||||
28 | Объявление - скрыть нельзя удалить |
|
|||
На этом уроке мы реализуем возможность помещать объявления в группу удаленных, восстанавливать их оттуда, а также отключать их просмотр Отчёт отправил: 11589. Yefim Выполнено за 1 час. 44 мин. [Показать отчёт] Научился: Восстанавливать, удалять и отключать просмотр объявлений Сложности: Всё получилось!!! |
|||||
29 | Объявление - статусный рефакторинг |
1 тест |
|||
НА этом уроке мы сделаем рефакторинг методов работы со статусом объявлений
Отчёт отправил: 11589. Yefim Выполнено за 56 мин. [Показать отчёт] Научился: Рефакторить методы работы со статусом объявлений. Сложности: Всё получилось! Неплохо бы определить глобальные постояные для статусов и пользоваться ими. |
|||||
30 | Объявление - рефакторинг редактирования |
|
|||
На этом уроке мы реализуем редактирование путем небольшого видоизменения функции добавления записи
Отчёт отправил: 11589. Yefim Выполнено за 11 час. 33 мин. [Показать отчёт] Научился: Редактировать объфвления Сложности: Все получилось! |
|||||
31 | Объявление: запрос - в функцию & кнопка для изображений |
|
|||
На этом уроке мы сделаем рефакторинг метода index и добавим кнопки для перехода в режим работы с изображениями
Отчёт отправил: 11589. Yefim Выполнено за 4 час. 37 мин. [Показать отчёт] Научился: Делать рефакторинг метода index Создавать кнопки для работы с изображениями Сложности: Я сразу обратил внимание, что функция getBulletin($status ='wait') ничего невозвращает. |
|||||
32 | Изображения - микс из миграций |
|
|||
На этом уроке мы через механизм миграций создадим таблицу photo и добавим поле для аватары в таблицу bulletins
Отчёт отправил: 11589. Yefim Выполнено за 2 час. 53 мин. [Показать отчёт] Научился: Cоздавать через механизм миграций таблицу photo и добавлять поля для существующей таблицы Сложности: Всё получилось |
|||||
33 | Изображения - снова MVC |
|
|||
На этом уроке мы создадим модель, контролер и представление для работы с фото
Отчёт отправил: 11589. Yefim Выполнено за 7 час. 20 мин. [Показать отчёт] Научился: Создавать модель, контролер и представление для работы с фото Сложности: ---- |
|||||
34 | Изображения - работа с моделью |
|
|||
На этом уроке мы передадим модель нашего объявления в представление
Отчёт отправил: 11589. Yefim Выполнено за 11 час. 39 мин. [Показать отчёт] Научился: Передавать модель объявления в представление Сложности: ---- |
|||||
35 | Работаем над ошибками - YII2 в помощь |
|
|||
На этом уроке мы разберемся, как работать над ошибками и читать сигналы дебаггера YII2
Отчёт отправил: 11589. Yefim Выполнено за 7 час. 44 мин. [Показать отчёт] Научился: Научился ловить некоторые ошибки с помощью встроенного дебагера. Отличный урок. Его бы в начало курса! Сложности: Повторить ошибки, приведенные в уроке - большого ума не надо. Я попробовал сделать ошибку другого типа: в файле ...\views\user\adduser.php строке <?php $form=ActiveForm::begin(['id'=>'adduser-Form']); ?> заменил 'adduser-Form' на 'addser-Form' При этом система не обнаружила ошибки и приняла нового пользователя. Как это можно объяснить? |
|||||
36 | Изображения - где живут картинки |
1 тест |
|||
На этом уроке мы создадим папку для изображений, разместим там изображение по умолчанию, а также создадим универсальные параметры пути и изображения по умолчанию
Отчёт отправил: 11589. Yefim Выполнено за 8 час. 48 мин. [Показать отчёт] Научился: Создавать универсальные параметры для проекта. Размещать изображения по умолчанию, Сложности: Вопрос: В нашем проекте в таблице bulletins мы использовали поле status со значениями: 'public', 'wait', 'delete'. Можно было бы определить их также в файле params.php, а затем пользоваться ими? |
|||||
37 | Изображения - модель формы |
|
|||
На этом уроке мы создадим модель PhotoForm для работы с изображениями Отчёт отправил: 11589. Yefim Выполнено за 1 час. 30 мин. [Показать отчёт] Научился: Создавать модель PhotoForm для работы с изображениями Сложности: ---- |
|||||
38 | Изображение - загрузочное представление |
|
|||
На этом занятии мы создадим форму представления, через которое будет загружаться изображение Отчёт отправил: 11589. Yefim Выполнено за 3 час. 53 мин. [Показать отчёт] Научился: Создавать форму представления, через которое будет загружаться изображение Сложности: Преднамеренно загрузил файл *.txt. Сообщение действтвительно появилось, но на английском языке. Причет файл загрузился. Что неправильно у меня в методе public function rules(){ return [ [['file'],'file','extensions'=>'jpg,png', 'message'=>'Фото должно быть формата jpg или png', 'skipOnEmpty'=>'false'], [['link','info'],'string'], ]; } ,???????????? |
|||||
39 | Изображение - загрузка файла на сайт |
1 тест |
|||
На этом уроке мы реализуем алгоритм загрузки изображений на сайт
Отчёт отправил: 11589. Yefim Выполнено за 3 час. 17 мин. [Показать отчёт] Научился: Реализовывать алгоритм загрузки изображений на сайт. Сложности: Очень удивился как в видео уроке удалось загрузить картинку с помощью параметра 'defaultImage'. Много времени потратил, чтобы убедиться, что что-то здесь не так. Смелое решение автора отредактировать параметр 'imagePath'. Я на это не решился и ввёл новый параметр 'imagePath2'. Понравился метод защиты файлов от затирания. В тоже время нет зашиты от дублирования файлов. На данный момент пользователь может загрузть сколько угодно одинаковых файлов. |
|||||
40 | ПРОМЕЖУТОЧНЫЙ ВИДЕО ОБЗОР |
без видео |
|||
Мы уже многое сделали на нашем видеокурсе, и автору очень важно узнать Ваше мнение о данном курсе и получить обратную связь в форме видео-презентации и ответов на вопросы. Сделай видео-презентацию своего сайта. Отчёт отправил: 11589. Yefim Выполнено за 3 дня 12 час. 36 мин. [Показать отчёт] Научился: Делать Видео с Pinnacle Studio 16 Сложности: --- Видеообзор: qdwbafG379M |
|||||
41 | Изображение - сохранение пути в базу |
|
|||
На этом уроке мы реализуем сохранение пути к файлу изображений в базу данных
Отчёт отправил: 11589. Yefim Выполнено за 1 день 7 час. 52 мин. [Показать отчёт] Научился: Сохранять пути к файлам изображений в базу данных. Выводить изображения на экран. Сложности: В методе upload() есть повтор кода и не только. Я ввёл новую переменную $link0 = Yii::$app->params['imagePath'].$this->file->baseName.'_' .time().'.'.$this->file->extension; Теоретически это выражение в первом и во втором случае может быть различным так как в него входит вычисление времени. И тогда вычисленный линк будет отличаться от реального и возникнут проблемы с отображением. Прав я или нет? |
|||||
42 | Изображение - управление картинками |
|
|||
На этом уроке мы займемся дизайном - создадим выпадающее меню управления изображением
Отчёт отправил: 11589. Yefim Выполнено за 3 час. 36 мин. [Показать отчёт] Научился: Создавать выпадающее меню управления изображением. Сложности: Обратил внимание, что подсказки редактора по HTML тегам стали отображаться заглавными буквами. Как вернуть прежний режим? |
|||||
43 | Изображение - JS - немного теории и пижонства |
1 тест |
|||
На этом уроке мы рассмотрим работу JS на yii2
Отчёт отправил: 11589. Yefim Выполнено за 22 час. 55 мин. [Показать отчёт] Научился: Использовать JS в проекте на yii2. Сложности: Все получилось! |
|||||
44 | Изображение - JS - глобализация |
|
|||
На этом уроке мы перенесем все скрипты JS в отдельный файл, а также реализуем открытие и скрытие элементов ввода информации Отчёт отправил: 11589. Yefim Выполнено за 1 день 14 мин. [Показать отчёт] Научился: Переносить скрипты JS в отдельный файл, а также реализовывать открытие и скрытие элементов ввода информации Сложности: Вопрос: У нас в одном диве класса input-group infofield выражение data-id="<?=$photo_->id?>" используется 3 раза. Можно ли сделать как-то рефакторинг, чтобы его использовать один раз? |
|||||
45 | Изображение - JS - сохранение информации в базу |
1 тест |
|||
На этом уроке мы научим нашу систему сохранять информацию об изображениях в базу с использованием технологии ajax Отчёт отправил: 11589. Yefim Выполнено за 12 час. 54 мин. [Показать отчёт] Научился: Сохранять информацию об изображениях в базу с использованием технологии ajax Сложности: У меня почему-то после перезагрузки страницы при раскрытии списка "Управление" и последующем клике на "Информация" никакой реакции не видно. Вопрос: Так должно быть или у меня в коде что-то не так? |
|||||
46 | Изображение - JS - извлечение методом ajax |
|
|||
На этом уроке мы научим ajax получать информацию об изображениях из базы
Отчёт отправил: 11589. Yefim Выполнено за 22 час. 6 мин. [Показать отчёт] Научился: Получать информацию об изображениях из базы с помощью технологии ajax. Сложности: Не было проблем с location.reload(); |
|||||
47 | Изображение - аватарка - вывод на главной странице |
|
|||
На этом уроке мы реализуем вывод главных изображений каждого объявления (далее - аватарки) на главной странице Отчёт отправил: 11589. Yefim Выполнено за 1 час. 52 мин. [Показать отчёт] Научился: Выводть главные изображения объявления на главной странице Сложности: Размер выводимого изображения зависит от размеров оригинала |
|||||
48 | Изображение - аватарка - работа над ошибками связей |
|
|||
На данном уроке мы исправим ошибки вывода фотографий, очистим базу и заново загрузим в нашу базу фотографии в одно из объявлений Отчёт отправил: 11589. Yefim Выполнено за 12 час. 35 мин. [Показать отчёт] Научился: Исправлять ошибки вывода фотографий Сложности: Скопировать готовый код с видео нетрудно. А вот как узнать, где и как его надо поменять? |
|||||
49 | Изображение - аватарка - как стать главной |
|
|||
На этом уроке мы создадим код, делающий любое фото главным
Отчёт отправил: 11589. Yefim Выполнено за 6 час. 32 мин. [Показать отчёт] Научился: Создавать код, делающий выбранноеое фото главным. Сложности: Неплохо бы реализоваить каккие-нибудь визуальные признаки главного фото в окне "Изображения" |
|||||
50 | Изображение - удаление - ни шагу без подтверждения! |
|
|||
На этом уроке мы реализуем всплывающее окно подтверждения действия и протестируем результаты выбора различных вариантов Отчёт отправил: 11589. Yefim Выполнено за 6 час. 10 мин. [Показать отчёт] Научился: Реализовыать всплывающее окно подтверждения удаления фото. Сложности: Всё получилось! |
|||||
51 | Изображение - удаление - удаление файла и записи |
|
|||
На этом уроке мы реализуем удаление файлов изображений и записей о них из базы данных
Отчёт отправил: 11589. Yefim Выполнено за 7 час. 18 мин. [Показать отчёт] Научился: Реализовывать удаление файлов изображений и записей о них из базы данных. Сложности: Всё получилось! |
|||||
52 | Главная страница - подробности - ссылки и заготовка представлени |
|
|||
На этом уроке мы создадим ссылки для объявлений на главной странице и заготовку представления для подробного вывода информации объявления Отчёт отправил: 11589. Yefim Выполнено за 7 час. 23 мин. [Показать отчёт] Научился: Создавать ссылки для объявлений на главной странице и заготовки представления для подробного вывода информации объявления. Узнал, что если делаем ссылку на класс, в имени которого есть заглавная буква, то в ссылке вместо заглавной буквы пишется прописная с предшествущим "-". Сложности: Всё получилось! |
|||||
53 | Главная страница - подробности - больше подробностей |
|
|||
На этом уроке мы выведем максимум информации на страницу подробностей объявления
Отчёт отправил: 11589. Yefim Выполнено за 1 день 11 час. 49 мин. [Показать отчёт] Научился: Выведить максимум информации на страницу подробностей объявления Сложности: Всё получилось! |
|||||
54 | Главная страница - подробности - расширяя информацию |
1 тест |
|||
На этом уроке мы внесем в наш код изменения, которые позволят сохранять объявления с большим количеством информации Отчёт отправил: 11589. Yefim Выполнено за 1 день 6 час. 48 мин. [Показать отчёт] Научился: Выводить максимум информации на страницу подробностей объявления. Я столкнулся с проблемой форматирования ещё на пршлом уроке м решмлл её с помошью тэга <pre>. Однако, после удаления тэга <pre> и задействовав функцию nl2br($bull->info); форматирования не проискодит. CNTR+F5 не помогает. Как решить жту проблему? Сложности: Я столкнулся с проблемой форматирования ещё на пршлом уроке я решил её с помощью тэга <pre>. Однако, после удаления тэга <pre> и задействовав функцию nl2br($bull->info); форматирования не происходит. CTRL+F5 не помогает. Как решить эту проблему? |
|||||
55 | Главная страница - оформление - дизайн объявления |
|
|||
На этом уроке мы зададим стиль дизайна объявления
Отчёт отправил: 11589. Yefim Выполнено за 1 час. 1 мин. [Показать отчёт] Научился: Задавать стиль дизайна объявления Сложности: Я вывел дату публикации также в таблицу |
|||||
56 | Главная страница - оформление - дизайн элементов базовой страницы |
1 тест |
|||
На этом уроке мы выведем информацию о себе в элементе footer и сделаем главное меню стильным и красивым
Отчёт отправил: 11589. Yefim Выполнено за 1 час. 8 мин. [Показать отчёт] Научился: Выводить информацию о себе в элементе footer и упралять дезайном главного меню. Сложности: Всё получилось |
|||||
57 | Главная страница - оформление - ловим цвет пикселя |
|
|||
На этом уроке мы рассмотрим использование инструментов определения цвета пикселя (Пипетка) Отчёт отправил: 11589. Yefim Выполнено за 34 мин. [Показать отчёт] Научился: Использовать инструментыопределения цвета пикселя (Пипетка) Сложности: Всё получилось! |
|||||
58 | Главная страница - оформление - смотрим все изображения |
|
|||
На этом уроке мы реализуем просмотр всех изображений объявления "не хуже, чем на Avito"
Отчёт отправил: 11589. Yefim Выполнено за 1 день 3 час. 12 мин. [Показать отчёт] Научился: Реализовывать просмотр всех изображений объявления как главного фото Сложности: Реализовал также случай, когда в объявлении только одно фото. В этом случае нет смысла показывать коллекцию. |
|||||
59 | Главная страница - оформление - стильный логотип |
|
|||
На этом уроке мы реализуем вывод логотипа в иконку проекта и в пункт меню перехода на главную страницу
Отчёт отправил: 11589. Yefim Выполнено за 15 час. 7 мин. [Показать отчёт] Научился: Реализовывать вывод логотипа в иконку проекта и в пункт меню перехода на главную страницу Сложности: Вроде бы всё получилось. Однако обнаружил проблему, когда кликаю на изображение. Меню обновляется, но лого отображается в альтернативном варианте. Это проблема только у меня или общая? |
|||||
60 | Главная страница - оформление - оповещения через баннер |
|
|||
На этом уроке мы создадим баннер для оповещений, новостей
Отчёт отправил: 11589. Yefim Выполнено за 1 час. 10 мин. [Показать отчёт] Научился: Cоздавать баннер для оповещений, новостей. Сложности: Всё получилось. Смелое решение автора приветствовать "Доброе утро!" При регистрации можно предложить пользователю новое необязательное поле - дату рождения и при случае поздравлять его. |
|||||
61 | Разделы (темы) - немного теории |
|
|||
На этом уроке мы рассмотрим вопрос тематик объявлений на нашем сайте, а также составим план (структуру) таблицы тем Themes и связующей таблицы ThemesBulletins
Отчёт отправил: 11589. Yefim Выполнено за 11 час. 43 мин. [Показать отчёт] Научился: Составлять план (структуру) таблиц тем Themes и связующей таблицы ThemesBulletins Сложности: ----- |
|||||
62 | Разделы (темы) - миграции с внешними ключами |
|
|||
На этом уроке мы создадим миграции таблиц themes и themesbulletins, сами эти таблицы и их модели ActiveRecord с внешними связями
Отчёт отправил: 11589. Yefim Выполнено за 2 час. 27 мин. [Показать отчёт] Научился: Создавать миграции таблиц themes и themesbulletins, сами эти таблицы и их модели ActiveRecord с внешними связями. Сложности: Отличный урок! всё получилось! |
|||||
63 | Обратная связь - мозговой штурм - внештатные ситуации |
|
|||
В данном уроке попрошу Вас выполнить небольшую самостоятельную работу и дать обратную связь. Отчёт отправил: 11589. Yefim Выполнено за 12 час. 16 мин. [Показать отчёт] Научился: Создавать резервные копии проекта и базы данных. И затем восстанавливать удаленный проект. Вопрос: При создании резервной копии мы копировали все файлы. Всего 77 МБ Наверняка копия содержит избыточную информацию. Существуют ли средства, позволяющие, копировать только необходимую информацию? Сложности: Зашита от Дурака 1. Наша система позволяет вводить при регистрации существующие уже Логины. 2. При указании цены не указывается валюта. 3. Можно без проблем вводить отрицательную цену. 4. При публикации объявления пользователь по невнимательности может забыть загрузить фото. Система может Напомнить ему об этом, но этого пока нет. 5. Я проделал хулиганский эксперимент: обычный текстовый файл kaka.txt переименовал в kaka.png и попытался его загрузить в качестве фото. Система не ругается, но отражает опцию - нет фото. Причем повторная загрузка добавляет нет фото. При этом база данных пополняется. 6. Нет защиты от загрузки одинаковых фото. |
|||||
64 | Разделы (темы) - вывод тем в объявлении |
|
|||
На этом уроке мы реализуем вывод тем на странице объявления
Отчёт отправил: 11589. Yefim Выполнено за 10 час. 6 мин. [Показать отчёт] Научился: Выводить темы Сложности: Всё получилось! |
|||||
65 | Разделы (темы) - меню тематик |
|
|||
На этом уроке мы реализуем вывод ссылок на темы на главной странице и подсчет объявлений в каждой теме
Отчёт отправил: 11589. Yefim Выполнено за 4 час. 5 мин. [Показать отчёт] Научился: Реализовывать вывод ссылок на темы на главной странице и подсчет объявлений в каждой теме Сложности: Все получилось! |
|||||
66 | Разделы (темы) - тематические выборки |
|
|||
На этом уроке мы реализуем выбор объявлений по темам и вывод их на основную страницу
Отчёт отправил: 11589. Yefim Выполнено за 1 день 5 час. 43 мин. [Показать отчёт] Научился: Реализовывать выбор объявлений по темам и вывод их на основную страницу Сложности: Не знаю как у других, но в этом уроке у меня текст кода был очень плохо виден. Увеличить фонт можно Tools->Options->Fonts & Colors. Перед отправкой отчета прочитал ссобщение от Степана: "А у меня вот количество объявлений не уменьшается - если снимаю с просмотра, даже не знаю почему". Проверил у себя - то же самое. Молодец, Степан! Ты Нашел БАГ! Дело в том, что функция getThemesBullCount() возвращает количество объявлений без учета статуса. Я ее подкорректировал так: return count($this->getBullCurrTheme()); И теперь отражаются только опубликованные объявления. |
|||||
67 | Разделы (темы) - полезные переходы |
|
|||
На этом уроке мы реализуем возвращение со страницы объявлений на предыдущую страницу, а также переходы по темам объявления по типу хештегов
Отчёт отправил: 11589. Yefim Выполнено за 2 час. 15 мин. [Показать отчёт] Научился: Реализовывать возвращение со страницы объявлений на предыдущую страницу, а также переходы по темам объявления по типу хештегов. Сложности: Непонятно для чего мы это сделали. Ведь для этой цели существуют специальные кнопки в браузере. |
|||||
68 | Разделы (темы) - администрирование - теория и заготовки |
|
|||
На этом уроке мы создадим контроллер для администрирования разделов (тем) и представление index
Отчёт отправил: 11589. Yefim Выполнено за 2 час. 41 мин. [Показать отчёт] Научился: Создавать контроллер для администрирования разделов (тем) и представление index Сложности: Всё получилось! |
|||||
69 | Разделы (темы) - администрирование - все темы в таблицу |
|
|||
На этом уроке мы выведем существующие темы в таблицу и зададим им элементы управления
Отчёт отправил: 11589. Yefim Выполнено за 1 час. 8 мин. [Показать отчёт] Научился: Выводить существующие темы в таблицу и задавать им элементы управления. Сложности: Всё получилось! |
|||||
70 | Разделы (темы) - администрирование - подтверждение удаления |
|
|||
На этом уроке мы реализуем алгоритм подтверждения удаления и создадим соответствующее представление
Отчёт отправил: 11589. Yefim Выполнено за 1 день 20 час. 33 мин. [Показать отчёт] Научился: Реализовывать алгоритм подтверждения удаления и создадвать оответствующее представление. Сложности: Всё получилось, но не сразу. Сделал несколько досадных ошибок и долго их искал. |
|||||
71 | Разделы (темы) - администрирование - удаление разделов и чистка связей |
|
|||
На этом уроке мы окончательно удалим раздел, а перед этим удалим все его связи с объявлениями
Отчёт отправил: 11589. Yefim Выполнено за 1 час. 5 мин. [Показать отчёт] Научился: Удалять заданную тему с всеми связями объявлений Сложности: Всё получилось!!! Попутный вопрос: Если придется размещать готовый сайт на реальном сервере, то где размещать базу данных? |
|||||
72 | Разделы (темы) - администрирование - Обычный ThemesForm |
|
|||
На этом уроке мы создадим модель ThemesForm, заготовку действия Add в контроллере Themes и представление под него
Отчёт отправил: 11589. Yefim Выполнено за 14 час. 1 мин. [Показать отчёт] Научился: Создавать модель ThemesForm, заготовку действия Add и представление под него. Сложности: Неплохо бы сделать тест на предмет проверки правильно ли создан файл ThemesForm.php. |
|||||
73 | Разделы (темы) - исправление подсчета и отображение текущей темы |
|
|||
Hа этом уроке мы исправим ошибку подсчета, обнаруженную в процессе прохождения курса, а также отобразим текущую тему, по которой выборка объявлений, в баннере Отчёт отправил: 11589. Yefim Выполнено за 12 час. 11 мин. [Показать отчёт] Научился: Отображать выбранную тему в баннере. Попутно узнал, что вошел в "Историю" :). Сложности: А нельзя ли при клике на тему изменить существенно визуальный вид кнопки? |
|||||
74 | Разделы (темы) - администрирование - "темное" представление |
|
|||
На этом уроке мы создадим поля для редактирования или добавления темы в представлении themes\add
Отчёт отправил: 11589. Yefim Выполнено за 23 час. 2 мин. [Показать отчёт] Научился: Cоздавать поля для редактирования и добавления темы с кнопками "Сохранить" и "Отмена". Сложности: Всё получилось! Вопрос: Если я кликаю на "Сохранить", а затем на "Отмена", то переход на пред. страницу не происходит. Это нормально? Мои предложения. При открытии страницы редактирования и добавления темы кнопка "Сохранить" должна быть неактивной. И только после того, как содержимое полей Тема или Информация меняются, то она становится доступной. Но если по ней нажали, то в отмене уже нет смысла и обе кнопки должны быть неактивны. Со временем придется редактировать существующие темы. |
|||||
75 | Разделы (темы) - администрирование - волшебный выпадающий список |
1 тест |
|||
На этом уроке мы создадим выпадающий список выбора родительской темы
Отчёт отправил: 11589. Yefim Выполнено за 11 час. 36 мин. [Показать отчёт] Научился: Создавать выпадающий список выбора родительской темы. Сложности: Всё получилось! |
|||||
76 | Разделы (темы) - администрирование - сохранение темы |
|
|||
На этом уроке мы реализуем сохранение добавляемых и редактируемых тем
Отчёт отправил: 11589. Yefim Выполнено за 20 час. 52 мин. [Показать отчёт] Научился: Сохранять добавляемые и редактируемые темы. Сложности: Всё получилось! |
|||||
77 | Разделы (темы) - администрирование - рефакторинг и валидация |
|
|||
На этом уроке мы сделаем рефакторинг нашего представления add и валидацию данных формы ThemesForm
Отчёт отправил: 11589. Yefim Выполнено за 12 час. 17 мин. [Показать отчёт] Научился: Делать рефакторинг нашего представления add и валидацию данных формы ThemesForm Сложности: Всё получилось, но есть вопросы: На мой взгляд, названия тем не должны повторяться. Я преднамеренно в качестве корневой темы выбрал "Детям", а подтему "Покупка". И теперь в списке тем 2 Покупки. И это нехорошо. На данный момент операции с добавлением и редактированием тем доступны зарегистрированному пользователю. Это правильно? При добавлении нового объявления не ясно как связывать данное объявление с темой? |
|||||
78 | Связи объявлений и тем - заготовка |
|
|||
На этом уроке мы создадим действие в контроллере BulletinsController и представление, которые помогут нам работать со связями объявлений и тем Отчёт отправил: 11589. Yefim Выполнено за 11 час. 43 мин. [Показать отчёт] Научился: Устанавливать связь объявлений с темами. Сложности: На мой взгляд, кнопки "Фото" и "Темы" следовало бы разместить на форме "Добавить объявление". Пользователю, первый раз заполняющему форму, трудно будет догадаться, что фото и тему ему предложат добавить позже. Тестируя проект, я столкнулся с проблемой: При добавлении фото кнопка "Управление" выдает список. Но при клике на любую из строк списка нет никакой реакции. Это общая проблема или только у меня? |
|||||
79 | Связи объявлений и тем - добавление новой темы |
|
|||
На этом уроке мы научим нашу систему добавлять новую тему в объявление (делать связь темы и объявления)
Отчёт отправил: 11589. Yefim Выполнено за 13 час. 45 мин. [Показать отчёт] Научился: Добавлять новую тему в объявление. Сложности: Вопрос: В форме, где представлены подробности объявления, Список тем отображаются не так как хотелось. В коде для них выделен отдельный ряд. Почему темы выстраиваются в том же ряду с фото? |
|||||
80 | Связи объявлений и тем - темы, которых не было |
1 тест |
|||
На этом уроке мы научим нашу систему выводить в список добавляемых в объявление тем только те, которые не прикреплены к нашему объявлению
Отчёт отправил: 11589. Yefim Выполнено за 20 час. 42 мин. [Показать отчёт] Научился: Выводить в список добавляемых в объявление тем только тех, которых нет в текущем объявлении. Сложности: Отличный урок. Прекрасная идея. Вероятно что-то подобное можно сделать, чтобы не повторялись темы в общем списке. |
|||||
81 | Связи объявлений и тем - темы, которых не будет |
|
|||
На этом уроке мы научим нашу систему удалять из объявлений темы, к которым наше объявление привязывать не надо
Отчёт отправил: 11589. Yefim Выполнено за 9 час. 25 мин. [Показать отчёт] Научился: Удалять из объявлений темы. Сложности: Отличный урок. Всё получилось. |
|||||
82 | Глобальный поиск - поле поиска в меню |
|
|||
На этом уроке мы добавим поле поиска в навигационное меню сайта, а также решим вопрос с активными пунктами меню.
Отчёт отправил: 11589. Yefim Выполнено за 3 дня 7 час. 11 мин. [Показать отчёт] Научился: Выделять другим цветом активный пункт меню. Добавлять поле поиска в навигационное меню сайта Отличный урок! Сложности: Всё получилось! |
|||||
83 | Глобальный поиск - ищем глобально |
|
|||
На этом уроке мы создадим алгоритм поиска по вводимому в поле search контенту
Отчёт отправил: 11589. Yefim Выполнено за 1 день 22 час. 19 мин. [Показать отчёт] Научился: Создавать алгоритм поиска по вводимому в поле search контенту. Сложности: Всё получилось, Однако есть много вопросов: Когда система не находит искомое слово - ничего не происходит. На мой взгляд должно быть сообщение типа: Введенный текст не найден. В моей программе обнаружилась некорректная работа. Я ввел заведомо ввёл несуществующий текст "Куку" (см.скриншот). К моему удивлению система нашла объявление. Я не понял почему. Интересно, это общий БАГ или только мое "достижение". Есть еще несколько идей как улучшить систему поиска. |
|||||
84 | Расширенный поиск - группировка пунктов главного меню |
|
|||
На этом уроке мы сгруппируем пункты главного меню в подразделы, и сделаем в нем ссылку на страницу расширенного поиска Отчёт отправил: 11589. Yefim Выполнено за 4 час. 54 мин. [Показать отчёт] Научился: Группировать пункты меню логически связанными общей целью и оформление их в подменю. Создавать виджет главного меню. Создавать пункт меню "Расширенный поиск" как подпункт. Сложности: Трудно было уловить манипуляции Автора при поиске ошибки. А ведь поиск ошибок важная часть работы программиста. И хорошо, что в процессе урока возникают ошибки. И следует больше внимания уделить технике нахождения ошибок. Благодаря возможности просмотра видео на меньшей скорости, удалось понять в чём суть ошибки. Вопрос: чем отличаются классы navbar-left и navbar-right? |
|||||
85 | Расширенный поиск - заготовки и план |
|
|||
На этом уроке мы набросаем план будущей страницы расширенного поиска, а также создадим действие контроллера и заготовку представления расширенного поиска Отчёт отправил: 11589. Yefim Выполнено за 12 час. 25 мин. [Показать отчёт] Научился: Создавать действие advsearch в контроллере site и заготовку представления advsearch. Сложности: При планировании поиска по цене достаточно использовать один вариант с указанием минимальной и макситальной границ. Остальный варианты я вляются частным случаем вышеприведенного. Вопрос 1: Почему при клике по стрелочке "Расширенный поиск" появляется пустой белый прямоугольник (см. скриншот)? И лишь, когда мышь входит в него, то название появляется? Вопрос 2: Как устранить эту проблему? |
|||||
86 | Расширенный поиск - стили и форма |
|
|||
На этом уроке мы внесем исправления в стили субменю и сделаем модель формы расширенного поиска
Отчёт отправил: 11589. Yefim Выполнено за 2 час. 50 мин. [Показать отчёт] Научился: Получил полный ответ на вопрос, заданный в отчете за прошлый урок. Научился кодировать форму расширенного поиска. Сложности: Я уже как-то отмечал, что предпочтительней завершать урок визуальной демонстрацией, набранного кода. Иначе нет уверенности, что код набран без ошибок. |
|||||
87 | Расширенный поиск - дизайн текстовых полей и кнопки |
|
|||
На этом уроке мы прокачаем навыки дизайна текстовых полей, создания активной формы в представлении, а также создания кнопки через хелперы yii2 Отчёт отправил: 11589. Yefim Выполнено за 11 час. 59 мин. [Показать отчёт] Научился: Прокачивать навыки дизайна текстовых полей для активной формы. Сложности: Это мой повторный отчет. В первом была ошибка и я просил помощи у клуба. Большое Спасибо Валерию Жданову и Николаю Денисову за помощь. Действительно, в файле AdvsearchForm свойство info было записано с ошибкой into/ После исправления все заработало нормально. |
|||||
88 | Расширенный поиск - цена - выбор варианта |
|
|||
На этом уроке мы создадим систему управления выбором варианта поиска по цене
Отчёт отправил: 11589. Yefim Выполнено за 19 час. 34 мин. [Показать отчёт] Научился: Добавлять список видов поиска по цене. Реализовывать переключение активного элемента списка с помощью JS. Сложности: Всё получилось! |
|||||
89 | Расширенный поиск - цена - невидимые поля |
|
|||
На этом уроке мы создадим невидимые блоки с полями поиска цены, которые становятся видимыми при нажатии определенного пункта навигатора
Отчёт отправил: 11589. Yefim Выполнено за 16 час. 57 мин. [Показать отчёт] Научился: Создавать блоки в соответсвии от выбранного варианта поиска по цене и управлять их видимостью. Сложности: Всё получилось! Для полной красоты размер полей для указания цены следует сделать поменьше. Понятно как это сделать средствами css. Как реализовать это с помощью yii2? |
|||||
90 | Расширенный поиск - дата публикации - виджет извне |
|
|||
На этом уроке мы установим в наш проект компонент jui от стороннего разработчика и создадим календарики для выбора дат Отчёт отправил: 11589. Yefim Выполнено за 1 мин. [Показать отчёт] Научился: Устанавливать в проект компонент jui от стороннего разработчика и создавать календарики для выбора дат в нужном формате. Сложности: На первом этапе я столкнулся с невиданной для меня проблемой. После команды "composer update" я получил текст, говорящий о том, что что-то пошло не так. Но главная проблема состояла не в том, что не получилось отобразить календарик, а в том, что проект сломался полностью. Потом выяснилось: для восстановления проекта достаточно было вернуть прежний вариант папки Vendor. Всё это я пишу для тех, кто в будущем может столкнуться с подобной проблемой. Решение проблемы с командой "composer update" пришло неожиданно: вдруг меня осенило, что в моем компьютере установлено несколько пользователей (рус, англ, ивр). Я вошел как "англ" и там все получилось. Затем я вернулся как "рус" и продолжил нормально работать. И в конце концов всё получилось! |
|||||
91 | Расширенный поиск - результаты выборки - частичное представление |
|
|||
На этом уроке мы рассмотрим возможность использования частичного представления в yii2-проекте и выведем в частичное представление карточку объявления
Отчёт отправил: 11589. Yefim Выполнено за 1 день 2 час. 56 мин. [Показать отчёт] Научился: Реализовывать частичное представление карточки объявления. Сложности: Всё получилось! Непонятно, почему при отсутствии параметров поиска система отображает квкме-то объявления? |
|||||
92 | Расширенный поиск - генератор поиска - возвращение к SQL-запросу |
|
|||
На этом уроке мы создадим генератор отчета, используя работу ActiveRecord фреймворка yii2 c sql-запросами, и включим в него поиск по текстовым полям формы расширенного поиска Отчёт отправил: 11589. Yefim Выполнено за 6 час. 38 мин. [Показать отчёт] Научился: Создавать генератор отчета с помощью sql-запросов и использование его для расширенного поиска по текстовым полям формы. Сложности: Отличный урок! Интресно, что поиск производится корректно независимо от регистра. |
|||||
93 | Расширенный поиск - генератор поиска - ограничивающие даты |
|
|||
На этом уроке мы добавим в генератор отчета расширенного поиска выборку по датам публикации Отчёт отправил: 11589. Yefim Выполнено за 5 час. 50 мин. [Показать отчёт] Научился: Дополнять возможности расширенного поиска с учетом ограничений по дате публикации. Сложности: Всё получилось. Однако есть вопрос: Я решил сделать запрос, указав одну и туже дату 2019-11-17. У меня 2 таких опубликованных объявления. Но система ничего не выбрала. Почему? |
|||||
94 | Расширенный поиск - генератор поиска - три вида цены и один POST |
|
|||
На этом уроке мы реализуем различные варианты выборки объявлений по цене и добавим их в наш генератор расширенного поиска Отчёт отправил: 11589. Yefim Выполнено за 1 день 13 час. 16 мин. [Показать отчёт] Научился: Реализовывать различные варианты выборки объявлений по цене. Сложности: Всё получилось! Вопрос: Давным давно я заметил, что система принимает отрицательную цену. В моей базе у коляски цена -9999. Если отвлечься от здравого смысла и рассматривать цену просто как число, с которым необходимо производить выборку. Система выбирает коляску только в случае указания точной цены, а в остальных случаях нет. Почему? |
|||||
95 | Обратная связь - свой сайт объявлений |
без видео |
|||
И снова обратная связь.Подумаем самостоятельно и ответим на вопросы: Отчёт отправил: 11589. Yefim Выполнено за 2 час. 20 мин. [Показать отчёт] Научился: Не проверял существкет ли такое смысловое название "Что по чём?" Доменное имя 4po4.ru Логотип представлен на скриншоте. Сложности: -------------------- |
|||||
96 | Расширенный поиск - генератор поиска - показать, что нужно |
|
|||
На этом уроке мы реализуем отображение той вкладки поиска по ценам, по которой производился поиск Отчёт отправил: 11589. Yefim Выполнено за 1 день 48 мин. [Показать отчёт] Научился: Реализовывать отображение той вкладки поиска по ценам, по которой производился поиск. Сложности: Отображение вкладок, действительно, сейчас корректное. Сценарии, приведенные в уроке, у меня тоже работают нормально. Однако, дальнейшее тестирование показало, что результат выборки не всегда правильный. Причем, если выборка производится первый раз после загрузки программы, то все работает нормально. Последующие варианты выборки не всегда дают правильный результат. Хотелось бы узнать - это общий или мой персональный? Есть ли простой способ увидеть строку запроса SQL на выходе? Если да, то как это сделать? |
|||||
97 | Работа с документацией Yii2 |
|
|||
На этом уроке переходим на один из официальных сайтов по Yii2 и, пользуясь помощью документации, реализовываем одну из своих идей Отчёт отправил: 11589. Yefim Выполнено за 1 день 21 час. 55 мин. [Показать отчёт] Научился: Я уже не не раз обращал внимание, что в проекте допускается введения отрицаиельной цены. Вот как раз и представилась возможность устранить этот недостаток. Для этого в файле BulletinsForm.php в методе rules() при описании поля цены price добавляем дополнительные ограничения 'min' => '0'. Сложности: Отмечу, что до сделанных изменений реакция системы на нечисловые значения была на английском языке. Теперь сообщения об ошибке на русском. А вот папытка руссифицировать сообщения о недопустимости отр. значений не удалась. И я пока не нашел как это сделать? |
|||||
98 | Пользователи и роли - планирование ролевой модели |
|
|||
На этом уроке мы составим ролевую модель пользователей нашего сайта
Отчёт отправил: 11589. Yefim Выполнено за 1 день 1 час. 17 мин. [Показать отчёт] Научился: Составлять ролевую модель пользователей сайта Сложности: Если объявления могут редактироваться администрацией по каким-то причинам, то должна быть на сайте информация о правилах и требованиях, предъявляемых к публикации объявлений. |
|||||
99 | Пользователи и роли - фильтры контроля доступа ACF - теория и эксперименты |
|
|||
На этом уроке мы рассмотрим принципы работы фильтров контроля доступа ACF
Отчёт отправил: 11589. Yefim Выполнено за 6 час. 28 мин. [Показать отчёт] Научился: Узнал о принципах работы фильтров контроля доступа ACF на примере действия advsearch. Сложности: Не было проблем! |
|||||
100 | Пользователи и роли - фильтры контроля доступа ACF - фильтруем всё |
|
|||
На этом уроке мы сами создадим метод behaviors() в BulletinsController и зададим нужные фильтры для действий контроллера
Отчёт отправил: 11589. Yefim Выполнено за 3 час. 8 мин. [Показать отчёт] Научился: Создавать метод behaviors(), ограничивающий права доступа пользователей в соответствии с их ролями Производить рефакторинг контроллеров. Сложности: На примере рефакторинга файла BulletinsController.php осуществлен рефакторинг всех контроллеров. На скриншотах приведённых в отчете показаны рефакторинг файла PhotoController.php и отображения информации браузером для разных вариантов. Урок короткий. Но времени для выполнения задания потребовалось значительно больше. |
|||||
101 | Пользователи и роли - роли через RBAC - теория, установка и миграции |
|
|||
На этом уроке мы установим расширение RBAC, настроим подключение к RBAC и создадим базы для авторизации при помощи механизма миграции Отчёт отправил: 11589. Yefim Выполнено за 1 день 17 час. 39 мин. [Показать отчёт] Научился: Устанавливать расширение RBAC, настроивать подключение к RBAC и создавать базы для авторизации при помощи механизма миграции. Сложности: Всё получилось, хотя и не сразу. |
|||||
102 | Пользователи и роли - роли через RBAC - тесты и практика |
|
|||
На этом уроке мы создадим тестовые роли и разрешения, а также проверим работу контроллера согласно разрешений Отчёт отправил: 11589. Yefim Выполнено за 2 дня 6 час. 52 мин. [Показать отчёт] Научился: Cоздаать тестовые роли и разрешения, а также проверять работу контроллера согласно разрешений. Сложности: Всё получилось! |
|||||
103 | Пользователи и роли - роли через RBAC - вносим действия в план |
|
|||
На этом уроке мы добавим действия к ролям в нашей актуальной ролевой модели
Отчёт отправил: 11589. Yefim Выполнено за 3 час. 2 мин. [Показать отчёт] Научился: Добавлять действия к ролям в плане Сложности: -------------------- |
|||||
104 | Пользователи и роли - роли через RBAC - реализация плана |
|
|||
На этом уроке мы создадим актуальные роли и действия для пользователей нашего сайта
Отчёт отправил: 11589. Yefim Выполнено за 2 дня 4 час. 53 мин. [Показать отчёт] Научился: Создавать актуальные роли и действия для пользователей сайта. По ходу урока я сразу обратил внимание на опечатки. Жаль, что нельзя было поправить. Сложности: Из-за большого перерыва между уроками, многое забывается. Вопрос: в строках $auth->assign($superuser, 1); $auth->assign($admin, 2); параметры 1 и 2 это id в таблице user? |
|||||
105 | Пользователи и роли - ACF+RBAC - ограничим доступ к темам |
|
|||
На этом уроке мы реализуем ролевую модель для контроллера тем | |||||
106 | Пользователи и роли - управление ролями и привилегиями - контроллер и таблица ролей |
|
|||
на этом уроке мы создадим контроллер и представление для управления ролями | |||||
107 | Пользователи и роли - управление ролями и привилегиями - форма добавления роли |
|
|||
На этом уроке мы создадим действие добавления роли и форму добавления роли |
|||||
108 | Пользователи и роли - управление ролями и привилегиями - сохранение и удаление роли |
|
|||
На этом уроке мы реализуем сохранение роли, а также напишем алгоритм удаления роли | |||||
Итого: 108 видеоуроков |
23 час. 33 мин. 25 тестов |
3 чел. | |||
Финалисты: Жан, Николай Денисов, Tom . |