Обучение C#

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.
Open shop Доска объявлений

Доска объявлений

Создание Доски объявлений с использованием фреймворка YII2.

Автор: Жданов В.В.

Данный курс - практикум по созданию сайта с использованием фреймворка YII2.
Цель: создание небольшого сайта с нуля до "коробочного" варианта, готового к размещению на хостинге.
Теории здесь не много, больше практической работы по принципу: "произвел действие - получил результат".
Также по максимуму используем функционал фреймворка YII2.

Программируем - и кайфуем!



Список уроков | фото | видео

# Название видеоурока Видео / Тесты Решило Рейтинг Доступ
1 FREE О проекте и про инструменты 00:08:31
26 чел. ★ 4.8 Done
  На этом уроке мы рассмотрим тематику разработки и настроим инструменты


Отчёт отправил: 2146. Иван Выполнено за 13 мин. [Показать отчёт]
Научился: Узнал о Apach NetBeans.  
Сложности: Все установил. Спасибо 
2 FREE Создание проекта YII2 00:13:49
1 тест
22 чел. ★ 4.8 Done
  На этом уроке мы создадим проект нового сайта, установим YII2 и запустим новый сайт на нашем локальном домене


Отчёт отправил: 2146. Иван Выполнено за 15 мин. [Показать отчёт]
Научился: Скачал Yii. И даже его запустил.  
Сложности: С первого раза, конечно , не получилось, так как пропустил мимо ушей, что надо выбрать самую новую версию php. НА старой версии не запустилось. Отчет только сейчас отправляю, хотя сделал уже давно. Спасибо за уроки! 
3 FREE Комфортная конфигурация 00:08:16
2 теста
21 чел. ★ 4.8 Done
  На этом уроке мы настроим удобные для человека ссылки и поменяем название сайта при помощи настроек config/web.php

Отчёт отправил: 2146. Иван Выполнено за 29 мин. [Показать отчёт]
Научился: Чуть-чуть исправили файлы конфигурации 
Сложности: Все получилось. 
4 FREE Схема базы данных 00:14:25
21 чел. ★ 4.8 Done
  На этом уроке мы создадим схему базы данных для нашего проекта
Отчёт отправил: 2146. Иван Выполнено за 18 мин. [Показать отчёт]
Научился: Познакомился с концепцией организации доски объявлений 
Сложности: Все доступно. Можно еще добавить позицию : срок действия объявления. Хотя, в учебном проекте, лучше не раздувать количество полей. Спасибо. 
5 FREE Подключение к базе данных пользователя и миграция пользователей 00:13:36
1 тест
21 чел. ★ 4.8 Done
  На этом уроке мы создадим базу данных, подключим ее к нашему проекту и создадим таблицу пользователей
при помощи механизма миграций
Отчёт отправил: 2146. Иван Выполнено за 42 мин. [Показать отчёт]
Научился: Все было новым. Научился создавать миграции. 
Сложности: Как обычно у себя на компьютере все чуть - чуть не так. Проект оказался в другой папке, все файлы Yii еще в одной. Но спасибо Валерию, что в видео все показал: и в какой папке у него проект, и откуда будет запускаться все. Так что удалось разобраться! 
6 FREE Аутентификация - захешированный пользователь из БД 00:16:58
1 тест
20 чел. ★ 4.8 Done
  На этом уроке мы подкорректируем модель User  и реализуем аутентификацию на сайте через базу данных
Отчёт отправил: 2146. Иван Выполнено за 49 мин. [Показать отчёт]
Научился: Делать аутентификацию 
Сложности: 10 звезд  Почему-то было страшно менять код, но Все получилось. Только надо помнить , что все-таки надо сохраняться в netbeans. Понял, что то,  что мы сделали, это вершина айсберга, и чтобы во всех тонкостях разобраться, надо потратить не один год. 
7 FREE Информация о пользователе 00:13:28
19 чел. ★ 4.8 Done
  На этом уроке создадим таблицу и модель Информация о пользователе
Отчёт отправил: 2146. Иван Выполнено за 51 мин. [Показать отчёт]
Научился: Еще раз использовали миграцию.  
Сложности: Получилось. Сам сделать вывод не решился. Посмотрю в следующем уроке. 
8 FREE MVC - немного теории 00:12:09
1 тест
19 чел. ★ 4.8 Done
  На этом уроке мы рассмотрим теоретические основы работы MVC и создадим новый контроллер в нашем проекте
Отчёт отправил: 2146. Иван Выполнено за 14 мин. [Показать отчёт]
Научился: Пока просто повторил. 
Сложности: Чтобы все понять надо мануалы долго почитать. Пока просто все повторил.  
9 MVC - информация о пользователе 00:09:33
18 чел. ★ 5 Done
  На этом уроке мы получим данные о пользователе из базы в представление
Отчёт отправил: 2146. Иван Выполнено за 1 день 17 час. 53 мин. [Показать отчёт]
Научился: Искать, где ошибка 
Сложности: Что-то урок дался очень сложно. Переделывал все раза 3. И миграцию, и таблицу. Умудрился стереть файл userRecord.  А так как его не было, то возникала ошибка и не удавалось войти на страницу, где этот файл можно сгенерировать. И большое, спасибо, что Валера показал файлик в видео, хоть и быстро, но с паузой сумел все ручками скопировать. Потом оказалось, что один метод не в тот файл положил. Так что удалось пройти этот урок раза с третьего. 
10 Пользователь - кто зарегистрирован сейчас? 00:09:22
1 тест
18 чел. ★ 4.9 Done
  На этом уроке мы получим информацию о текущем зарегистрированном пользователе, а также сделаем рефакторинг кода

Отчёт отправил: 2146. Иван Выполнено за 30 мин. [Показать отчёт]
Научился: --- 
Сложности: Все рассмотреть. Спасибо. 
11 Новый пользователь - заготовка и меню 00:09:17
18 чел. ★ 5 Done
  На этом уроке мы создадим действие и представление для добавления пользователя,
а также добавим пункт меню "Регистрация"
Отчёт отправил: 2146. Иван Выполнено за 18 мин. [Показать отчёт]
Научился: Менять и добавлять пункты меню 
Сложности: Шаг влево, ваг вправо - всюду пропасть....  Спасибо за урок. 
12 Новый пользователь - модель для формы 00:15:43
1 тест
18 чел. ★ 5 Done
  На этом уроке мы создадим модель параметров формы добавления пользователя
Отчёт отправил: 2146. Иван Выполнено за 18 мин. [Показать отчёт]
Научился: Создали модель UserForm 
Сложности: Сделал еще один урок, чему очень рад! 
13 Новый пользователь - дизайн формы начало 00:16:37
18 чел. ★ 5 Done
  На этом уроке мы зададим поля формы добавления пользователя
Отчёт отправил: 2146. Иван Выполнено за 41 мин. [Показать отчёт]
Научился: добавлять поддержку bootstrap. Добавлять поля. 
Сложности: В каком-то слове сделал ошибку, и все сломалось. Легко ломается, очень легко. 
14 Новый пользователь - дизайн формы: поля и колонки 00:09:17
1 тест
18 чел. ★ 5 Done
  На этом уроке мы добавим все поля формы, кнопку сохранения, а также разместим поля в две колонки


Отчёт отправил: 2146. Иван Выполнено за 18 мин. [Показать отчёт]
Научился: Добавлять поля. Делать две колонки, используя bootstrap. 
Сложности: Этот  урок дался чуть легче, чем предыдущие.  
15 Новый пользователь - сохранение нового пользователя 00:20:06
1 тест
18 чел. ★ 5 Done
  На этом уроке мы напишем алгоритм сохранения записи о пользователе и информации о нем
Отчёт отправил: 2146. Иван Выполнено за 37 мин. [Показать отчёт]
Научился: Добавлять записи в базу данных. Волшебство произошло! 
Сложности: Раза с десятого отловил все ошибки. Повезло! 
16 Красивая аутентификация на сайте 00:07:37
18 чел. ★ 5 Done
  На этом уроке мы поменяем дизайн формы входа на сайт
Отчёт отправил: 2146. Иван Выполнено за 1 день 2 мин. [Показать отчёт]
Научился: Отредактировали поля. Повторили как использовать функцию  public function attributeLabels():array {       return['username' => 'Логин',                 'password' => 'Пароль',           'rememberMe' =>' Запомнить'           ]; 
Сложности: Все получилось 
17 Что доступно Юпитеру? 00:10:21
1 тест
18 чел. ★ 5 Done
  На этом занятии мы научимся управлять доступом к пунктам главного меню
Отчёт отправил: 2146. Иван Выполнено за 22 час. 17 мин. [Показать отчёт]
Научился: Настраивать отображение интерфейса в зависимости от разрешений пользователя. 
Сложности: Получилось! Спасибо 
18 Объявления - создание базы и модели 00:09:51
1 тест
18 чел. ★ 5 Done
  На этом уроке мы создадим таблицу bulletins при помощи миграций и сгенерируем для данной таблицы класс ActiveRecord
Отчёт отправил: 2146. Иван Выполнено за 36 мин. [Показать отчёт]
Научился: Повторил создание миграций + создание модели 
Сложности: Вовремя сохранить файл, чтобы миграция создалась правильно. :) 
19 Объявления - контроллер, представление и много записей 00:13:46
1 тест
18 чел. ★ 5 Done
  На этом уроке мы создадим контроллер и представление для работы с объявлениями,
а также сделаем связь записей о пользователях и объявлениях типа "один-ко-многим"
Отчёт отправил: 2146. Иван Выполнено за 31 мин. [Показать отчёт]
Научился: 1. сделать связь пользователей и объявлений в UserRecord 2. создать контроллер объявлений BulletinsController 3. создать действие вызова представления /bulletins/index 4. создать представление /bulletins/index и протестировать запуск 
Сложности: Поискал, где должны быть скобки. Все было сложным. Что-то я упустил в начале. Все равно не очень понятно как эта магия работает. Куча файлов, но при этом все работает с легкой руки Валерия! 
20 Объявление - функциональный дизайн страницы 00:14:17
17 чел. ★ 5 Done
  На этом уроке мы сделаем дизайн страницы наших объявлений, который поможет нам работать с объявлениями в дальнейшем
Отчёт отправил: 2146. Иван Выполнено за 23 мин. [Показать отчёт]
Научился: Увидел , как используют классы bootstrap. Создавать вкладки. 
Сложности: Интересно смотреть, как делают сайт профессионалы. Очень интересно! Спасибо. 
21 Объявление - ограничение доступа 00:09:25
17 чел. ★ 5 Done
  На этом уроке мы ограничим доступ неавторизированного пользователя к странице управления объявлениями, а также решим некоторые технические вопросы
Отчёт отправил: 2146. Иван Выполнено за 20 мин. [Показать отчёт]
Научился: Использовать классы bootstrap a. 
Сложности: Очень красиво получается! Спасибо! 
22 Объявление - поля для пользовательских форм 00:09:44
17 чел. ★ 5 Done
  На этом уроке мы создадим класс BulletinsForm и определим, какие поля будут использоваться при создании объявления

Отчёт отправил: 2146. Иван Выполнено за 19 мин. [Показать отчёт]
Научился: Создали форму 
Сложности: Все перепечатал. 
23 Объявление - форма добавления объявлений 00:17:03
1 тест
17 чел. ★ 5 Done
  На этом уроке мы создадим представление для добавления объявлений и действие контроллера, запускающего это представление

Отчёт отправил: 2146. Иван Выполнено за 1 час. 14 мин. [Показать отчёт]
Научился: Учился искать ошибки. Пришлось возвращаться даже к прошлому уроку, т.к. в юзингах ошибок тоже наделал. 
Сложности: Ох, пришлось попрыгать по файлам в поиске ошибок. Заметил, что функция имеет название actionAddbulletin(). А адресной строке набираем addbulletin. + была ошибка - название BulletinsForm  меня было с маленькой буквы. Удивительно, но удалось эти ошибки найти и исправить 
24 Объявление - сохранение в черновик 00:10:39
17 чел. ★ 5 Done
  На этом уроке мы реализуем механизм сохранения нового объявления в черновик
Отчёт отправил: 2146. Иван Выполнено за 30 мин. [Показать отчёт]
Научился: Сохранять данные в базу данных 
Сложности: Спасибо. Без ошибок набрать все-таки не удалось. 
25 Объявление - список 00:18:42
15 чел. ★ 5 Done
  На этом уроке мы реализуем вывод сохраненных в базе объявлений в список
Отчёт отправил: 2146. Иван Выполнено за 1 час. 35 мин. [Показать отчёт]
Научился: Выводить из базы данных на вебстраницу с помощью Yii 
Сложности: Опять закопался в поиске ошибки. Главное смотреть в нужную сторону! 
26 Объявление - всё на публику 00:12:16
1 тест
15 чел. ★ 5 Done
  На этом уроке мы сделаем наши объявления опубликованными
Отчёт отправил: 2146. Иван Выполнено за 25 мин. [Показать отчёт]
Научился: Все повторил по видео 
Сложности: Получилось! Главное быть внимательным. 
27 Объявление - публикация на главной странице 00:15:27
1 тест
15 чел. ★ 5 Done
  На этом уроке мы разместим наши опубликованные объявления на главной странице сайта
Отчёт отправил: 2146. Иван Выполнено за 29 мин. [Показать отчёт]
Научился: Создали блоки на главной странице. Очередное знакомство с параметрами bootstrap 
Сложности: Спасибо. Получилось! 
28 Объявление - скрыть нельзя удалить 00:12:40
14 чел. ★ 5 Done
  На этом уроке мы реализуем возможность помещать объявления в группу удаленных, восстанавливать их оттуда, а также отключать их просмотр

Отчёт отправил: 2146. Иван Выполнено за 27 мин. [Показать отчёт]
Научился: Делать функционал кнопок на Yii  !! 
Сложности: Попрыгали по файлам, и все в итоге получилось, Приятно, что в конце каждого урока есть видимый результат! Спасибо 
29 Объявление - статусный рефакторинг 00:08:45
1 тест
14 чел. ★ 5 Done
  НА этом уроке мы сделаем рефакторинг методов работы со статусом объявлений
Отчёт отправил: 2146. Иван Выполнено за 14 мин. [Показать отчёт]
Научился: сделали рефакторинг 
Сложности: Спасибо. Получилось без ошибок. Пока сам менять ничего не буду... У меня может и сломаться :) 
30 Объявление - рефакторинг редактирования 00:12:58
14 чел. ★ 5 Done
  На этом уроке мы реализуем редактирование путем небольшого видоизменения функции добавления записи
Отчёт отправил: 2146. Иван Выполнено за 52 мин. [Показать отчёт]
Научился: передавать информацию в разные формы 
Сложности: Сначала что-то где-то не сохранилось и у меня начали добавляться в базу исправленные объявления отдельными позициями. А потом что-то я сохранил, и стало все правильно сохраняться. К сожалению не успел понять, где же я недосохранил в первый раз. 
31 Объявление: запрос - в функцию & кнопка для изображений 00:09:52
14 чел. ★ 5 Done
  На этом уроке мы сделаем рефакторинг метода index и добавим кнопки для перехода в режим работы с изображениями
Отчёт отправил: 2146. Иван Выполнено за 21 мин. [Показать отчёт]
Научился: добавили кнопочку и сделали рефакторинг 
Сложности: Все понравилось и все получилось. Спасибо. Пока запас 2-е фотки. 
32 Изображения - микс из миграций 00:12:35
14 чел. ★ 5 Done
  На этом уроке мы через механизм миграций создадим таблицу photo и добавим поле для аватары в таблицу bulletins
Отчёт отправил: 2146. Иван Выполнено за 29 мин. [Показать отчёт]
Научился: Научился добавлять столбец в существующую уже таблицу с помощью yii migrate/create !!! 
Сложности: Спасибо, Очень было познавательно. 
33 Изображения - снова MVC 00:10:47
14 чел. ★ 5 Done
  На этом уроке мы создадим модель, контролер и представление для работы с фото
Отчёт отправил: 2146. Иван Выполнено за 27 мин. [Показать отчёт]
Научился: Реализовали еще один контроллер, Создали новый view для фоток. 
Сложности: Не с первого запуска запустилось, но ошибки все найдены! Спасибо 
34 Изображения - работа с моделью 00:17:16
14 чел. ★ 5 Done
  На этом уроке мы передадим модель нашего объявления в представление
Отчёт отправил: 2146. Иван Выполнено за 52 мин. [Показать отчёт]
Научился: Добавляем функционал  
Сложности: Ошибочки свои пришлось поискать! 
35 Работаем над ошибками - YII2 в помощь 00:13:03
14 чел. ★ 5 Done
  На этом уроке мы разберемся, как работать над ошибками и читать сигналы дебаггера YII2
Отчёт отправил: 2146. Иван Выполнено за 3 час. 37 мин. [Показать отчёт]
Научился: Увидел, где проверять , что дебагер включен 
Сложности: Воспроизвел одну из моих ошибок, которая была у  меня на прошлом уроке. Не хватало квадратных скобок после $this->params['breadcrumbs'][] Да сколько было  уже исправлено разных ошибок. ... 
36 Изображения - где живут картинки 00:15:34
1 тест
14 чел. ★ 5 Done
  На этом уроке мы создадим папку для изображений, разместим там изображение по умолчанию, а также создадим универсальные параметры пути и изображения по умолчанию
Отчёт отправил: 2146. Иван Выполнено за 48 мин. [Показать отчёт]
Научился: Использовать параметры! 
Сложности: Спасибо, Все получилось, нигде не запутался. 
37 Изображения - модель формы 00:11:10
14 чел. ★ 5 Done
  На этом уроке мы создадим модель PhotoForm для работы с изображениями

Отчёт отправил: 2146. Иван Выполнено за 13 мин. [Показать отчёт]
Научился: Создавать модель для загрузки фотографий. 
Сложности: Спасибо. 
38 Изображение - загрузочное представление 00:15:37
14 чел. ★ 5 Done
  На этом занятии мы создадим форму представления, через которое будет загружаться изображение

Отчёт отправил: 2146. Иван Выполнено за 26 мин. [Показать отчёт]
Научился: Посмотрел, как программно делать форму! Все получилось! 
Сложности: Недонабрал одну буковку. Но быстро нашел где. Работает! Это не может не радовать! 
39 Изображение - загрузка файла на сайт 00:17:29
1 тест
14 чел. ★ 5 Done
  На этом уроке мы реализуем алгоритм загрузки изображений на сайт
Отчёт отправил: 2146. Иван Выполнено за 1 день 4 час. 29 мин. [Показать отчёт]
Научился: Научился загружать фалы в нужную папку средствами Yii 
Сложности: Понял, что надо быть еще внимательнее! 
40 ПРОМЕЖУТОЧНЫЙ ВИДЕО ОБЗОР без видео
11 чел. ★ 5 Done
  Мы уже многое сделали на нашем видеокурсе, и автору очень важно
узнать Ваше мнение о данном курсе и получить обратную связь
в форме видео-презентации и ответов на вопросы.

Сделай видео-презентацию своего сайта.
Отчёт отправил: 2146. Иван Выполнено за 10 мин. [Показать отчёт]
Научился: Вспомнил, как пользоваться openserver. Впервые использовал Apache netbeans. Так же впервые использовал фреймворк YII.  И не просто использование Yii , да еще и с использование ООП!  
Сложности: Сначала показалось, что фреймворк довольно сложный. Но через уроков 15-20 вижу, что если к нему привыкнуть, то много чего можно сделать и довольно быстро. Спасибо за курс! Буду дальше грызть гранит науки. 
Видеообзор: vJ5ABNWbaUk
41 Изображение - сохранение пути в базу 00:14:17
11 чел. ★ 5 Done
  На этом уроке мы реализуем сохранение пути к файлу изображений в базу данных
Отчёт отправил: 2146. Иван Выполнено за 3 час. 4 мин. [Показать отчёт]
Научился: Повторил все по видео.  
Сложности: Долго искал ошибку. Оказалось, что у меня не передавался id в фото контроллере в actionAdd. Еще заметил:( опишу последовательность действий) На странице с объявлениями нажимаем кнопку "фото"  -> попадаем на страницу photo/index?id=2  (допустим с индексом 2). А при нажатии на кнопку "добавить файл" адрес уже такой photo/add?id=1.  Почему тут индекс становится "один" пока не очень понял. При этом на мой неопытный взгляд все отрабатывает правильно. Еще , думаю, нам пригодится кнопка "удалить фото" , если вдруг не то загрузил. 
42 Изображение - управление картинками 00:08:36
11 чел. ★ 5 Done
  На этом уроке мы займемся дизайном - создадим выпадающее меню управления изображением
Отчёт отправил: 2146. Иван Выполнено за 10 мин. [Показать отчёт]
Научился: Учусь пользоваться bootstrapom. 
Сложности: Бутстрап пока для меня является маленьким чудом!  
43 Изображение - JS - немного теории и пижонства 00:16:29
1 тест
11 чел. ★ 4.7 Done
  На этом уроке мы рассмотрим работу JS на yii2
Отчёт отправил: 2146. Иван Выполнено за 1 час. 41 мин. [Показать отчёт]
Научился: Регистрировать js в yii. 
Сложности: Чуть не закопался с простым уроком. Все время выдавало ошибку, писал, что неожиданный конец файла.  Выяснилось, что когда я набирал <<< , то что-то пошло не так. Пробовал и так , и эдак. Ничего не получалось. Все поудалял. Начал все по одной строчке проверять. Выяснилось, что -то было не так именно с <<<. Только после того, как перенабрал эту строчку все заработало. Спасибо за урок! 
44 Изображение - JS - глобализация 00:26:49
11 чел. ★ 5 Done
  На этом уроке мы перенесем все скрипты JS в отдельный файл, а также реализуем открытие и скрытие элементов ввода информации

Отчёт отправил: 2146. Иван Выполнено за 1 час. 17 мин. [Показать отчёт]
Научился: подключать глобально javascript.  
Сложности: О-хо-хо! Уж все по символу проверял. Какой-то у меня шрифт, что кавычки и апостроф смотрятся как одно целое. Решил я их пробелом разделить, и из-за этого скрипт не работал. Да! Как же тут не хватает какого-нибудь дебагера на пробелы php-шные! Это хорошо, что видео есть, а если его нет!? Что тогда будет с нами :)  С C# как-то попроще получается :) Итак, самая сложная строчка :  $("[data-id='" + r + "'].infofield").show();  
45 Изображение - JS - сохранение информации в базу 00:22:42
1 тест
11 чел. ★ 5 Done
  На этом уроке мы научим нашу систему сохранять информацию об изображениях в базу
с использованием технологии ajax


Отчёт отправил: 2146. Иван Выполнено за 51 мин. [Показать отчёт]
Научился: Впервые увидел реализацию ajax. А также работа с ним на php и yii.  
Сложности: Спасибо. Все получилось. Кажется на этот раз осознал, как сохранять данные в базу. Сколько же уже всего интересного придумано! 
46 Изображение - JS - извлечение методом ajax 00:09:51
11 чел. ★ 5 Done
  На этом уроке мы научим ajax получать информацию об изображениях из базы
Отчёт отправил: 2146. Иван Выполнено за 15 час. 4 мин. [Показать отчёт]
Научился: Используем запросы ajax 
Сложности: Все сделал, но в firefox происходило что-то странное. Открыл хром. В нем все отработало правильно. После хрома и firefox заработал. И что там у них внутри происходит? Как понять, это у меня в коде была ошибка, или браузер некорректно отрабатывает...... 
47 Изображение - аватарка - вывод на главной странице 00:15:26
11 чел. ★ 5 Done
  На этом уроке мы реализуем вывод главных изображений каждого объявления
(далее - аватарки) на главной странице
Отчёт отправил: 2146. Иван Выполнено за 31 мин. [Показать отчёт]
Научился: Учусь понимать взаимосвязи разных компонентов и файлов в нашем проекте 
Сложности: Обошлось без приключений. Спасибо! 
48 Изображение - аватарка - работа над ошибками связей 00:09:33
11 чел. ★ 5 Done
  На данном уроке мы исправим ошибки вывода фотографий, очистим базу и заново загрузим в нашу базу
фотографии в одно из объявлений
Отчёт отправил: 2146. Иван Выполнено за 15 мин. [Показать отчёт]
Научился: Искать ошибки 
Сложности: Спасибо. После исправлений ничего не сломалось, все заработало. 
49 Изображение - аватарка - как стать главной 00:18:13
11 чел. ★ 5 Done
  На этом уроке мы создадим код, делающий любое фото главным
Отчёт отправил: 2146. Иван Выполнено за 9 час. 20 мин. [Показать отчёт]
Научился: Искать ошибки 
Сложности: Прошлый урок прошел замечательно. По началу думал, что так будет и с этим, т.к. вроде очень хорошо понимал, что делает код. В итоге проверяю - не работает. С утра потратил часа 2 на поиск ошибки, все безрезультатно!.  Зная такую дурацкую проблему с долгим поиском ошибок , решил бросить все и заниматься другими делами. Благо семья с двумя детьми без дел не оставит. Вечером вернулся к проблеме. Вспомнил, что в хроме есть инструменты разработчика, а там отладочная консоль. Через нее увидел, что проблема с одной переменной в main.js.  В итоге оказалось , что currPhotoId написал с одной r ! После исправления этой ошибки все заработало! Ну почему я с утра не смог найти эту досадную ошибку!? 
50 Изображение - удаление - ни шагу без подтверждения! 00:09:13
11 чел. ★ 5 Done
  На этом уроке мы реализуем всплывающее окно подтверждения действия
и протестируем результаты выбора различных вариантов
Отчёт отправил: 2146. Иван Выполнено за 12 мин. [Показать отчёт]
Научился: Узнал о варианте алерта  под названием confirm 
Сложности: Все получилось. Решил, что все переменные буду копировать из первоисточника. Так я смогу победить свои ошибки. 
51 Изображение - удаление - удаление файла и записи 00:15:49
11 чел. ★ 5 Done
  На этом уроке мы реализуем удаление файлов изображений и записей о них из базы данных
Отчёт отправил: 2146. Иван Выполнено за 1 час. 20 мин. [Показать отчёт]
Научился: научился удалять из базы данных. Но надо еще понять , что такое unlink 
Сложности: Есть еще непонятное поведение. В firefox не очень работает ajax.  А в хроме все работает отлично! Пока не понял с чем это связано. 
52 Главная страница - подробности - ссылки и заготовка представлени 00:09:05
11 чел. ★ 5 Done
  На этом уроке мы создадим ссылки для объявлений на главной странице и заготовку представления для подробного вывода
информации объявления
Отчёт отправил: 2146. Иван Выполнено за 29 мин. [Показать отчёт]
Научился:   public function actionViewBulletin($id=1)       {           $bulletin = BulletinsRecord::findOne($id);           return $this->render('viewbulletin', ['bulletin'=>$bulletin]);                 } В рендере есть название страницы , которую будем вызывать, и передаем массив с данными с именем bulletin. 
Сложности: Еще учить и учить конструкции всех этих фреймворков! 
53 Главная страница - подробности - больше подробностей 00:11:37
11 чел. ★ 5 Done
  На этом уроке мы выведем максимум информации на страницу подробностей объявления
Отчёт отправил: 2146. Иван Выполнено за 15 мин. [Показать отчёт]
Научился: Выводить информацию с помощью html и php 
Сложности: Получилось. Спасибо 
54 Главная страница - подробности - расширяя информацию 00:15:15
1 тест
11 чел. ★ 5 Done
  На этом уроке мы внесем в наш код изменения, которые позволят сохранять объявления с большим количеством информации

Отчёт отправил: 2146. Иван Выполнено за 31 мин. [Показать отчёт]
Научился: Узнал о функции nl2br(); Повторил миграции. Узнал, как установить longtext! 
Сложности: Спасибо. Продвигаемся. И даже получается! 
55 Главная страница - оформление - дизайн объявления 00:10:02
11 чел. ★ 5 Done
  На этом уроке мы зададим стиль дизайна объявления
Отчёт отправил: 2146. Иван Выполнено за 15 мин. [Показать отчёт]
Научился: Использовать gliphicon и разные классы 
Сложности: Спасибо. Все познавательно. 
56 Главная страница - оформление - дизайн элементов базовой страницы 00:11:44
1 тест
11 чел. ★ 5 Done
  На этом уроке мы выведем информацию о себе в элементе footer и сделаем главное меню стильным и красивым
Отчёт отправил: 2146. Иван Выполнено за 16 мин. [Показать отчёт]
Научился: Использовать css. Увидел, где, что находится. 
Сложности: Украшать я люблю. Спасибо! 
57 Главная страница - оформление - ловим цвет пикселя 00:06:00
11 чел. ★ 5 Done
  На этом уроке мы рассмотрим использование инструментов определения цвета пикселя (Пипетка)

Отчёт отправил: 2146. Иван Выполнено за 6 мин. [Показать отчёт]
Научился: Узнал, что есть пипетка в firefox. Буду теперь пользоваться 
Сложности: Сложностей не возникло. 
58 Главная страница - оформление - смотрим все изображения 00:15:27
11 чел. ★ 5 Done
  На этом уроке мы реализуем просмотр всех изображений объявления "не хуже, чем на Avito"
Отчёт отправил: 2146. Иван Выполнено за 31 мин. [Показать отчёт]
Научился: Использовать javascript, узнал, где все это можно хранить. Использование $('.bullphotos').hover(function() {     document.getElementById('bullavatar').src = this.getAttribute('src'); }); 
Сложности: Честно признаюсь, что никак не ожидал, что такое можно сделать буквально в 5 строчек кода. 
59 Главная страница - оформление - стильный логотип 00:09:56
11 чел. ★ 5 Done
  На этом уроке мы реализуем вывод логотипа в иконку проекта и в пункт меню перехода на главную страницу
Отчёт отправил: 2146. Иван Выполнено за 30 мин. [Показать отчёт]
Научился: Приклеивать лого.  
Сложности: Получилось отодвинуть слова с помощью &nbsp; Может все дело было в точке с запятой? Удивило, что можно html использовать, казалось бы, в текстовом поле. Спасибо.  
60 Главная страница - оформление - оповещения через баннер 00:11:19
10 чел. ★ 5 Done
  На этом уроке мы создадим баннер для оповещений, новостей
Отчёт отправил: 2146. Иван Выполнено за 17 мин. [Показать отчёт]
Научился: добавлять банер 
Сложности: Все получилось!  В банере можно выводить рекламные предложения и не только! 
61 Разделы (темы) - немного теории 00:11:07
10 чел. ★ 5 Done
  На этом уроке мы рассмотрим вопрос тематик объявлений на нашем сайте, а также составим план (структуру) таблицы тем Themes и связующей таблицы ThemesBulletins
Отчёт отправил: 2146. Иван Выполнено за 11 мин. [Показать отчёт]
Научился: Вспомнил, что такое отношения многие ко многим. 
Сложности: В разделе "Недвижимость" у меня точно будет три раздела Сдача в наем, Покупка и Продажа 
62 Разделы (темы) - миграции с внешними ключами 00:18:49
10 чел. ★ 5 Done
  На этом уроке мы создадим миграции таблиц themes и themesbulletins, сами эти таблицы и их модели ActiveRecord с внешними связями
Отчёт отправил: 2146. Иван Выполнено за 48 мин. [Показать отчёт]
Научился: Повторил создание таблиц. Узнал как создавать внешние ключи средствами yii 
Сложности: Все получилось.  Понемногу перестаю бояться миграций... 
63 Обратная связь - мозговой штурм - внештатные ситуации 00:09:19
9 чел. ★ 5 Done
  В данном уроке попрошу Вас выполнить небольшую самостоятельную работу и дать обратную связь.

Отчёт отправил: 2146. Иван Выполнено за 1 день 19 час. 40 мин. [Показать отчёт]
Научился: Узнал, что при вводе html кода, то он корректно отображается в итоге на странице.  
Сложности: удалось зарегистрировать пользователя с одинаковым именем. Фотографию с другим расширением загрузить не дал. С sql инъекциями, что-то не пошло - не очень понял как их делать. На хабре статью прочитал. Поставил в адресной строке после адреса апостроф. Yii  ошибку не вывел, типа так тоже пойдет.  https://habr.com/ru/post/148151/. В остальном, особых проблем не заметил. Прошу домашку не минусовать, уж очень хочется посмотреть, что там дальше будет. И так с уроком подзадержался  :( 
64 Разделы (темы) - вывод тем в объявлении 00:16:29
9 чел. ★ 5 Done
  На этом уроке мы реализуем вывод тем на странице объявления
Отчёт отправил: 2146. Иван Выполнено за 33 мин. [Показать отчёт]
Научился: Добавлять связи. 
Сложности: Получилось.  Было не совсем просто найти в каких местах что исправлять. 
65 Разделы (темы) - меню тематик 00:10:55
8 чел. ★ 5 Done
  На этом уроке мы реализуем вывод ссылок на темы на главной странице и подсчет объявлений в каждой теме
Отчёт отправил: 2146. Иван Выполнено за 40 мин. [Показать отчёт]
Научился: узнал, что есть класс class="badge" 
Сложности: Надо почитать, что за класс class="jumbotron" Спасибо. Все получилось 
66 Разделы (темы) - тематические выборки 00:15:13
8 чел. ★ 5 Done
  На этом уроке мы реализуем выбор объявлений по темам и вывод их на основную страницу
Отчёт отправил: 2146. Иван Выполнено за 40 мин. [Показать отчёт]
Научился: Все  добавил согласно видео. 
Сложности: Все получилось. Спасибо. Что-то вдруг забыл как это мы добираемся: $tb->bulletins->status. Плохо делать перерывы.  Не помню, откуда взялся тут у нас  bulletins. Буду вспоминать. 
67 Разделы (темы) - полезные переходы 00:11:48
7 чел. ★ 5 Done
  На этом уроке мы реализуем возвращение со страницы объявлений на предыдущую страницу, а также переходы по темам объявления по типу хештегов
Отчёт отправил: 2146. Иван Выполнено за 25 мин. [Показать отчёт]
Научился: Еще раз повторили использование стиля btn btn-primary, btn-default 
Сложности: Спасибо. Все получилось. 
68 Разделы (темы) - администрирование - теория и заготовки 00:09:03
7 чел. ★ 5 Done
  На этом уроке мы создадим контроллер для администрирования разделов (тем) и представление index
Отчёт отправил: 2146. Иван Выполнено за 17 мин. [Показать отчёт]
Научился: добавлять новые кнопки для меню 
Сложности: В этот раз обошлось без ошибок. 
69 Разделы (темы) - администрирование - все темы в таблицу 00:10:55
7 чел. ★ 5 Done
  На этом уроке мы выведем существующие темы в таблицу и зададим им элементы управления
Отчёт отправил: 2146. Иван Выполнено за 2 час. 37 мин. [Показать отчёт]
Научился: Добавил кнопки для управления тем 
Сложности: Вспомнил, как писать glyphicon. 
70 Разделы (темы) - администрирование - подтверждение удаления 00:15:58
7 чел. ★ 5 Done
  На этом уроке мы реализуем алгоритм подтверждения удаления и создадим соответствующее представление
Отчёт отправил: 2146. Иван Выполнено за 21 мин. [Показать отчёт]
Научился: Создали файл deletequery.  
Сложности: Все получилось, спасибо! 
71 Разделы (темы) - администрирование - удаление разделов и чистка связей 00:09:07
7 чел. ★ 5 Done
  На этом уроке мы окончательно удалим раздел, а перед этим удалим все его связи с объявлениями
Отчёт отправил: 2146. Иван Выполнено за 23 мин. [Показать отчёт]
Научился: Создал действие delete. 
Сложности: Не могу вспомнить , где мы устанавливаем  $themesBulletins = $this->themesbulletins;  Вот последнее слово, видимо это псевдоним, Вот где мы его установили? и система его прекрасно знает, а я нет ... :( 
72 Разделы (темы) - администрирование - Обычный ThemesForm 00:10:23
7 чел. ★ 5 Done
  На этом уроке мы создадим модель ThemesForm, заготовку действия Add в контроллере Themes и представление под него
Отчёт отправил: 2146. Иван Выполнено за 18 мин. [Показать отчёт]
Научился: Создавать новую модель для создания формы новых тем 
Сложности: Надеюсь, что все получилось. На сколько я понял, в папке models у нас хранятся разные формы для рендеринга наших новых страниц. 
73 Разделы (темы) - исправление подсчета и отображение текущей темы 00:08:28
7 чел. ★ 5 Done
  Hа этом уроке мы исправим ошибку подсчета, обнаруженную в процессе прохождения курса,
а также отобразим текущую тему, по которой выборка объявлений, в баннере


Отчёт отправил: 2146. Иван Выполнено за 16 мин. [Показать отчёт]
Научился: Сделали правильный подсчет опубликованных объявлений 
Сложности: Спасибо ! Все получилось! 
74 Разделы (темы) - администрирование - "темное" представление 00:11:49
7 чел. ★ 5 Done
  На этом уроке мы создадим поля для редактирования или добавления темы в представлении themes\add
Отчёт отправил: 2146. Иван Выполнено за 35 мин. [Показать отчёт]
Научился: Создавать новую форму и передавать ей переменные 
Сложности: Все набрал и все получилось. C# мне давался почему-то проще. Вроде все понятно, что делаем, но без видео вряд ли получится сделать такое. Спасибо. Надеюсь, что когда-нибудь количество перейдет в качество. 
75 Разделы (темы) - администрирование - волшебный выпадающий список 00:09:17
1 тест
7 чел. ★ 5 Done
  На этом уроке мы создадим выпадающий список выбора родительской темы
Отчёт отправил: 2146. Иван Выполнено за 12 мин. [Показать отчёт]
Научился: Создавать  dropDownList 
Сложности: Случилось еще одно чудо. Буквально в 3 строчки кода весь список у нас появился. Красиво! 
76 Разделы (темы) - администрирование - сохранение темы 00:19:30
7 чел. ★ 5 Done
  На этом уроке мы реализуем сохранение добавляемых и редактируемых тем
Отчёт отправил: 2146. Иван Выполнено за 57 мин. [Показать отчёт]
Научился: реализовали кучу методов.  
Сложности: Пришлось поискать ошибки, т.к. фигурные скобки пошли впляс. + где-то слеш не поставил. Работает, но пока чудесным образом. 
77 Разделы (темы) - администрирование - рефакторинг и валидация 00:07:02
7 чел. ★ 5 Done
  На этом уроке мы сделаем рефакторинг нашего представления add и валидацию данных формы ThemesForm
Отчёт отправил: 2146. Иван Выполнено за 29 мин. [Показать отчёт]
Научился: Перенесли функцию 
Сложности: Спасибо. Все получилось 
78 Связи объявлений и тем - заготовка 00:12:50
7 чел. ★ 5 Done
  На этом уроке мы создадим действие в контроллере BulletinsController и представление,
которые помогут нам работать со связями объявлений и тем
Отчёт отправил: 2146. Иван Выполнено за 28 мин. [Показать отчёт]
Научился: Добавили режим тем., действие  и представление. 
Сложности: Продвигаемся. Проект обрастает функционалом с небывалой скоростью! Спасибо за классные уроки! 
79 Связи объявлений и тем - добавление новой темы 00:22:38
7 чел. ★ 5 Done
  На этом уроке мы научим нашу систему добавлять новую тему в объявление (делать связь темы и объявления)
Отчёт отправил: 2146. Иван Выполнено за 6 час. 42 мин. [Показать отчёт]
Научился: Спасибо, получился насыщенный урок. Сделали форму, создали выпадающий список тем, теперь умеем выбирать и сохранять темы! 
Сложности: Все сделал по видео, Все получилось. И ошибки все быстро нашел и исправил. Чудесным образом все работает! 
80 Связи объявлений и тем - темы, которых не было 00:11:33
1 тест
7 чел. ★ 5 Done
  На этом уроке мы научим нашу систему выводить в список добавляемых в объявление тем только те, которые не прикреплены к нашему объявлению
Отчёт отправил: 2146. Иван Выполнено за 1 день 25 мин. [Показать отчёт]
Научился:   $tb= ThemesbulletinsRecord::find()                 ->select('themes_id as id')                 ->where(['bulletins_id'=>$bulletins_id])                 ->all();         $themes = ThemesRecord::find()                 ->where(['not in','id',$tb])                 ->all();         return $themes; узнал о новых конструкциях 
Сложности: Все получилось. Но скобки с первого раза не везде поставил, и получил интересные ошибки 
81 Связи объявлений и тем - темы, которых не будет 00:10:57
7 чел. ★ 5 Done
  На этом уроке мы научим нашу систему удалять из объявлений темы, к которым наше объявление привязывать не надо
Отчёт отправил: 2146. Иван Выполнено за 22 мин. [Показать отчёт]
Научился: создали новое действие по удалению ненужных тем. 
Сложности: Спасибо. Теперь все добавляется и удаляется. Это здорово 
82 Глобальный поиск - поле поиска в меню 00:17:09
7 чел. ★ 5 Done
  На этом уроке мы добавим поле поиска в навигационное меню сайта, а также решим вопрос с активными пунктами меню.
Отчёт отправил: 2146. Иван Выполнено за 34 мин. [Показать отчёт]
Научился: Создавать ActiveForm 
Сложности: Сначала написал все вне формы  NavBar::begin([ ... и мой поиск не отобразился. После проверки, заметил, что он должен находится внутри этого NavBar. В итоге все заработало!  Еще один чудесный момент курса!. Когда не совсем понимаешь что делаешь, то это похоже на чудо. 
83 Глобальный поиск - ищем глобально 00:17:08
7 чел. ★ 5 Done
  На этом уроке мы создадим алгоритм поиска по вводимому в поле search контенту
Отчёт отправил: 2146. Иван Выполнено за 39 мин. [Показать отчёт]
Научился: Реализовали поиск 
Сложности:     $bulletins= BulletinsRecord::find()                       ->where([                           'AND',                           ['status'=>'public'],                           [                               'OR',                               ['like','title', $search],                               ['like','info', $search],                               ['like','city', $search],                           ],                       ])                       ->all();               Ну это круто. Это синтаксис запросов именно Yii? C sql встречался и использовал, но такую форму записи увидел впервые. Спасибо. Урок очень понравился 
84 Расширенный поиск - группировка пунктов главного меню 00:12:47
7 чел. ★ 5 Done
  На этом уроке мы сгруппируем пункты главного меню в подразделы,
и сделаем в нем ссылку на страницу расширенного поиска
Отчёт отправил: 2146. Иван Выполнено за 1 час. 31 мин. [Показать отчёт]
Научился: Создали выпадающие меню echo Nav::widget([     'options' => ['class' => 'navbar-nav navbar-left'],     'items' => [                         [ 'label' =>'', 'url' => ['#'],                             'items' =>[                                     [ 'label' => 'Расширенный поиск', 'url' => ['/site//advsearch']]                                             ],                         ],                   ], ]); 
Сложности: Получилось. Но почему-то стили у меня не совсем правильно отображаются. Что-то удалось с этим сделать, но пока до конца еще не разобрался как это исправить 
85 Расширенный поиск - заготовки и план 00:10:03
7 чел. ★ 5 Done
  На этом уроке мы набросаем план будущей страницы расширенного поиска,
а также создадим действие контроллера и заготовку представления расширенного поиска
Отчёт отправил: 2146. Иван Выполнено за 12 мин. [Показать отчёт]
Научился: Планировать свои дейстивя 
Сложности: Спасибо 
86 Расширенный поиск - стили и форма 00:10:11
7 чел. ★ 5 Done
  На этом уроке мы внесем исправления в стили субменю и сделаем модель формы расширенного поиска
Отчёт отправил: 2146. Иван Выполнено за 23 мин. [Показать отчёт]
Научился: Создание формы 
Сложности: Очень радует, что еще и еще раз создаем формы. Понемногу начинает укладываться в голове. Спасибо. 
87 Расширенный поиск - дизайн текстовых полей и кнопки 00:16:02
7 чел. ★ 5 Done
  На этом уроке мы прокачаем навыки дизайна текстовых полей, создания активной формы в представлении,
а также создания кнопки через хелперы yii2
Отчёт отправил: 2146. Иван Выполнено за 41 мин. [Показать отчёт]
Научился: Создали форму и вывели ее на страничку 
Сложности: Все получилось. не обошлось без ошибок, но все удалось исправить. 
88 Расширенный поиск - цена - выбор варианта 00:10:45
7 чел. ★ 5 Done
  На этом уроке мы создадим систему управления выбором варианта поиска по цене
Отчёт отправил: 2146. Иван Выполнено за 2 час. 5 мин. [Показать отчёт]
Научился: использовать jquery 
Сложности: C удивлением обнаружил, что у меня нет еще файла main.js. Но  есть bul.js. В итоге все работает, но интересно, когда я успел потерять этот файл 
89 Расширенный поиск - цена - невидимые поля 00:18:17
7 чел. ★ 5 Done
  На этом уроке мы создадим невидимые блоки с полями поиска цены, которые становятся видимыми при нажатии определенного пункта навигатора
Отчёт отправил: 2146. Иван Выполнено за 1 час. 1 мин. [Показать отчёт]
Научился: Создавать формы 
Сложности: Спасибо! Очень познавательный урок. Интересно было увидеть связку php, jquery, js.  
90 Расширенный поиск - дата публикации - виджет извне 00:23:18
7 чел. ★ 5 Done
  На этом уроке мы установим в наш проект компонент jui от стороннего разработчика
и создадим календарики для выбора дат


Отчёт отправил: 2146. Иван Выполнено за 54 мин. [Показать отчёт]
Научился: Добавлять компоненты в yii и их использовать. 
Сложности: Спасибо ! Сколько же всего надо знать, чтобы все это делать! Отличные уроки, т.к. все получается, и это очень радует! 
91 Расширенный поиск - результаты выборки - частичное представление 00:17:21
7 чел. ★ 5 Done
  На этом уроке мы рассмотрим возможность использования частичного представления в yii2-проекте и выведем в частичное представление карточку объявления
Отчёт отправил: 2146. Иван Выполнено за 41 мин. [Показать отчёт]
Научился: Создали новое представление  bulletin. И использовали его для всех частей сайта: и для главной страницы , и для страницы поиска. + узнал, что есть бейджики, очень мне понравились. 
Сложности: Здорово все получается!. Появился у меня вопрос. Заметил, что когда мы подставляем в  код html данные из php, то используем краткую запись начала php. Т. е. <?= .....  ?>. А иногда, например для закрытия фигурных скобок используем то же самое , но без знака '=' ( <? } ??> И вот у меня вопрос: Почему мы используем второй раз без знака = ? Понимаю, что вопрос из детского сада,  но пока еще не нашел объяснения.   
92 Расширенный поиск - генератор поиска - возвращение к SQL-запросу 00:15:52
7 чел. ★ 5 Done
  На этом уроке мы создадим генератор отчета, используя работу ActiveRecord фреймворка yii2 c
sql-запросами, и включим в него поиск по текстовым полям формы расширенного поиска
Отчёт отправил: 2146. Иван Выполнено за 8 час. 57 мин. [Показать отчёт]
Научился: НАучился выполнять sql запросы 
Сложности: Получилось! Спасибо. Свои ошибочки пришлось половить... 
93 Расширенный поиск - генератор поиска - ограничивающие даты 00:10:54
7 чел. ★ 5 Done
  На этом уроке мы добавим в генератор отчета расширенного поиска выборку по датам публикации

Отчёт отправил: 2146. Иван Выполнено за 33 мин. [Показать отчёт]
Научился: Научили сайт поиску по датам! 
Сложности: Спасибо. Опять все получилось! 
94 Расширенный поиск - генератор поиска - три вида цены и один POST 00:14:47
7 чел. ★ 5 Done
  На этом уроке мы реализуем различные варианты выборки объявлений по цене и добавим их в наш генератор расширенного поиска

Отчёт отправил: 2146. Иван Выполнено за 33 мин. [Показать отчёт]
Научился: Создавать правильные условия 
Сложности: Все получилось. Спасибо!  
95 Обратная связь - свой сайт объявлений без видео
7 чел. ★ 5 Done
  И снова обратная связь.Подумаем самостоятельно и ответим на вопросы:

Отчёт отправил: 2146. Иван Выполнено за 15 мин. [Показать отчёт]
Научился: Сайт могу назвать kupiprodaj.ru  что  в переводе КупиПродай. 
Сложности: Быть креативным всегда сложно...  Пока нашел только то, что лежало на поверхности :) 
96 Расширенный поиск - генератор поиска - показать, что нужно 00:20:55
7 чел. ★ 5 Done
  На этом уроке мы реализуем отображение той вкладки поиска по ценам,
по которой производился  поиск
Отчёт отправил: 2146. Иван Выполнено за 44 мин. [Показать отчёт]
Научился: Делать изменения, чтобы все работало 
Сложности: Даже если нолик оставишь в поле, то выделяется по последнему введенному полю активная вкладка. А если полностью бекспейсом удалять, то все работает как надо. Но так и должно быть по нашей задумке. Спасибо за урок.  Еще раз посмотрел, как работают все наши файлы вместе, и как один зависит от другого. Это для меня очень ценно. 
97 Работа с документацией Yii2 00:04:42
7 чел. ★ 5 Done
  На этом уроке переходим на один из официальных сайтов по Yii2
и, пользуясь помощью документации, реализовываем одну из своих идей


Отчёт отправил: 2146. Иван Выполнено за 3 час. 44 мин. [Показать отчёт]
Научился: использовать функцию exists(); а также узнал о unique в правилах ActiveRecords 
Сложности: Наконец, Сделал этот урок. Прошлый урок сделал 25 мая. Это был самый сложный урок. Заметил, что у нас можно регистрировать людей с одинаковыми логинами. Решил это исправить. Долго искал место, где же это надо сделать. Методом проб и ошибок с трудом нашел, куда же это можно прикрутить. Не уверен, что сделал это там , где нужно. Но для меня было главным, чтобы заработало. А то в процессе поиска пару раз совсем сломал все. А бекапа не делал. Рад, что все-таки удалось починить. 
98 Пользователи и роли - планирование ролевой модели 00:08:08
7 чел. ★ 5 Done
  На этом уроке мы составим ролевую модель пользователей нашего сайта
Отчёт отправил: 2146. Иван Выполнено за 17 мин. [Показать отчёт]
Научился: Думать о ролях в нашей жизни 
Сложности: Итак! У нас пять ролей: superadmin - может все admin  - может почти все moderator - снимает публикации что неугодно user - добавляет и редактирует свои объявления guest - только просматривает объявления 
99 Пользователи и роли - фильтры контроля доступа ACF - теория и эксперименты 00:08:44
7 чел. ★ 5 Done
  На этом уроке мы рассмотрим принципы работы фильтров контроля доступа ACF
Отчёт отправил: 2146. Иван Выполнено за 15 мин. [Показать отчёт]
Научился: узнал  о behaviours, что в переводе оказалось "стереотипы поведения" 
Сложности: Понятно, что это малюсенькая верхушка какого-то огромного айсберга 
100 Пользователи и роли - фильтры контроля доступа ACF - фильтруем всё 00:10:27
7 чел. ★ 5 Done
  На этом уроке мы сами создадим метод behaviors() в BulletinsController и зададим нужные фильтры для действий контроллера
Отчёт отправил: 2146. Иван Выполнено за 27 мин. [Показать отчёт]
Научился: научился использовать behaviorы 
Сложности: Добавил эту функцию во все классы-контроллеры 
101 Пользователи и роли - роли через RBAC - теория, установка и миграции 00:11:16
7 чел. ★ 5 Done
  На этом уроке мы установим расширение RBAC, настроим подключение к RBAC и создадим
базы для авторизации при помощи механизма миграции

Отчёт отправил: 2146. Иван Выполнено за 24 мин. [Показать отчёт]
Научился: Узнал о  Yii2 RBAC Extension 
Сложности: находится здесь https://github.com/yii2mod/yii2-rbac. Управление доступом на основе ролей (англ. Role Based Access Control, RBAC) — развитие политики избирательного управления доступом, при этом права доступа субъектов системы на объекты группируются с учётом специфики их применения, образуя роли. 
102 Пользователи и роли - роли через RBAC - тесты и практика 00:25:53
7 чел. ★ 5 Done
  На этом уроке мы создадим тестовые роли и разрешения, а также проверим работу контроллера
согласно разрешений
Отчёт отправил: 2146. Иван Выполнено за 2 час. 53 мин. [Показать отчёт]
Научился: Запоолнять таблицы программно 
Сложности: догадался, что в дальнейшем init должен быть один раз вызван. Долго не мог понять, почему у меня render не отрабатывал. Оказалось, что я увеличил окно в браузере, и весь текст, видимо, спрятался за меню. Стоило уменьшить масштаб страницы в браузере, как все появилось. 
103 Пользователи и роли - роли через RBAC - вносим действия в план 00:09:04
7 чел. ★ 5 Done
  На этом уроке мы добавим действия к ролям в нашей актуальной ролевой модели
Отчёт отправил: 2146. Иван Выполнено за 11 мин. [Показать отчёт]
Научился: Практикуемся планировать. 
Сложности: Все переписал в свой текстовый файлик. Спасибо 
104 Пользователи и роли - роли через RBAC - реализация плана 00:30:34
6 чел. ★ 5 Open
  На этом уроке мы создадим актуальные роли и действия для пользователей нашего сайта
105 Пользователи и роли - ACF+RBAC - ограничим доступ к темам 00:16:01
4 чел. ★ 5 ^
  На этом уроке мы реализуем ролевую модель для контроллера тем
106 Пользователи и роли - управление ролями и привилегиями - контроллер и таблица ролей 00:16:57
3 чел. ★ 5 ^
  на этом уроке мы создадим контроллер и представление для управления ролями
107 Пользователи и роли - управление ролями и привилегиями - форма добавления роли 00:13:53
3 чел. ★ 5 ^
  На этом уроке мы создадим действие добавления роли и форму добавления роли

108 Пользователи и роли - управление ролями и привилегиями - сохранение и удаление роли 00:14:17
3 чел. ★ 5 ^
  На этом уроке мы реализуем сохранение роли, а также напишем алгоритм удаления роли
  Итого:   108 видеоуроков 23 час. 33 мин.
25 тестов
3 чел. ★ 4.99  
  Финалисты:   Жан,   Николай Денисов,   Tom .

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Записал видеообзор курса "Доска объявлений" как получилось судить вам, но не судите строго))
Трудности: скришот требует, а где я его возьму? я видео снимал, зачем тогда скрин? ну ладно выложу первый кадр



Научился: На этом курсе: 1 Я создал сайт 2 Сделал домен 3 Реализовал регистрацию пользователей 4 Добавлять объявления - которые могут добавлять только зарегистрированные пользователи один ко многим 5 Загружать фотографии - фотографии к объявлениям сохраняются на сайте в папке image Нравиться что Видеокурсы не больше чем 20мин, всё доступно и понятно рассказано и показано. Хочу научится делать правильные сайты модели MVC
Трудности: Получилось добавить звук к видео средствами youtube.com Надеюсь вы оцените мои труды. Что касается микрофона я купил микрофон и даже конденсаторный переходник, но это мне не помогло. Нужно покупать что то дорогое, а денег как известно нету.