Курсы по программированию

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

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

Доска объявлений / Работа с документацией Yii2

  • На этом уроке переходим на один из официальных сайтов по Yii2
    и, пользуясь помощью документации, реализовываем одну из своих идей

  • Дата отправки отчёта: 13 сентября 2020 г.
  • Задание выполнено: за 3 час. 44 мин.
  • Чему научился: использовать функцию exists(); а также узнал о unique в правилах ActiveRecords
  • Что было сложным: Наконец, Сделал этот урок. Прошлый урок сделал 25 мая. Это был самый сложный урок.
    Заметил, что у нас можно регистрировать людей с одинаковыми логинами. Решил это исправить. Долго искал место, где же это надо сделать. Методом проб и ошибок с трудом нашел, куда же это можно прикрутить. Не уверен, что сделал это там , где нужно. Но для меня было главным, чтобы заработало. А то в процессе поиска пару раз совсем сломал все. А бекапа не делал. Рад, что все-таки удалось починить.
  • Оценка видео-уроку:
Отчёт от 2146 за Доска объявлений / Работа с документацией Yii2




Оцени работу

 
Сохранить страницу:

791. --
Валерий Жданов
Валерий Жданов
ответить


  • Отчёт оценивали:
    2146Иван+1   791Валерий Жданов+1   28410Alim+1   24765Anatoli+1   28396Bemen+1   6203Николай Миролюбов+1   24766Егор Осипов+1   24659Виталий+1   28556kirill0  

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





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

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

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

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


Научился: использовать функцию exists(); а также узнал о unique в правилах ActiveRecords
Трудности: Наконец, Сделал этот урок. Прошлый урок сделал 25 мая. Это был самый сложный урок. Заметил, что у нас можно регистрировать людей с одинаковыми логинами. Решил это исправить. Долго искал место, где же это надо сделать. Методом проб и ошибок с трудом нашел, куда же это можно прикрутить. Не уверен, что сделал это там , где нужно. Но для меня было главным, чтобы заработало. А то в процессе поиска пару раз совсем сломал все. А бекапа не делал. Рад, что все-таки удалось починить.



Научился: В своем отчете https://www.videosharp.info/30514/checking/bulletin=2582 я указал три ошибки на сайте. В этом уроке их исправлял. Первая проблема: некорректные элементы br в тексте объявления. Для решения первой проблемы я перенес вызов функции nl2br для поля info из модели BulletinsForm в код представления site/viewbulletin. Теперь в базе данных нет текста br, он появляется только в момент показа объявления в представлении. Вторая проблема: встраивание html, css, javascript в поля формы. Чтобы решить вторую проблему я использовал документацию по yii по адресу https://www.yiiframework.com/doc/guide/2.0/en/structure-views#security . Добавил вызовы функций Html::encode и HtmlPurifier::process вокруг вывода информации из базы данных в представлении. Настроил вызов HtmlPurifier::process для того, чтобы разрешить только теги br, а все остальные теги экранировались. Теперь все html-теги(кроме br для переноса строки в поле info), css-правила и javascript-код экранированы и не влияют на дизайн страницы. Javascript код не запускается. Третья проблема: при уменьшении ширины окна изображение выходит за границы левой колонки. Третья ошибка не связана напрямую с yii2, здесь дело в верстке. Для ее решения я изменил значение атрибута style на style="max-width: 100%; height: 400px; object-fit: contain;". Теперь изображение занимает не больше, чем 100% ширины родительского элемента и не выходит за границу левой колонки. Высота фиксирована, поэтому миниатюры под изображением не прыгают. И object-fit: contain необходим для сохранения пропорций изображения при его замене после выбора миниатюры.