Как натянуть верстку на Yii2. Часть 2


Yii2 посадка верстки на ActiveForm (php, yii2, вёрстка, activeform)

Пытаюсь поставить шаблон на своей учебный проект на Yii. Подскажите как посадить верстку на поле виджета ActiveForm?

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

Нужно оформить вот так:

Я конечно понимаю что можно сделать через name=ИмяМодели[ИмяСвойства], но врядли это оптимальный вариант. Как в боевых проектах на Yii впринципе садят верстку? Используют ли стандартные html хелперы и ActiveForm?

Ответы (1)

Используют ли стандартные html хелперы и ActiveForm?

Подскажите как посадить верстку на поле виджета ActiveForm?

В Вашем случае скорее всего нужно прописывать свой шаблон для checkbox. Вот пример того, как это делается (взял здесь):

Как подключить шаблон к проекту на Yii2 фреймворк.

В современном мире, за основу любого web проекта, чаще всего, выбирается один из готовых шаблонов. Далее речь пойдет о том, как удобно подключить этот шаблон к проекту на yii2 фрейворке. Как его обновлять. Как использовать один шаблон в разных проектах.

В современном мире, за основу любого web проекта, чаще всего, выбирается один из готовых шаблонов. Далее речь пойдет о том, как удобно подключить этот шаблон к проекту на yii2 фрейворке. Как его обновлять. Как использовать один шаблон в разных проектах.

Так например, есть замечательный сайт https://wrapbootstrap.com/. На нем разные frontend-разработчики готовят, обновляют и продают свои шаблоны.

Можно оформить эти шаблоны в виде отдельных пакетов для yii2 фреймворка, и подключать их к разным проектом, а так же в нужный момент обновлять или фиксировать версию.

Внимание! Прежде чем использовать шаблон, нужно купить лицензию на официальном сайте!

Как использовать готовый шаблон?

1) установка

Установка стандартная через композер.

Ну или же какая то, конкретная версия этого шаблона.

2) Asset в проекте

В вашем проекте необходимо оформить Asset, который возьмет нужные файлы из оформленного решения. Создаем SmartyThemeAsset

Собственно, этот Asset можно уже подключать в шаблоне.

Или прописать в зависимостях к вашему AppAsset если такой есть. Вот реальный пример из одного моего проекта:

Зачем все это? Зачем так усложнять?

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

Freelance projects › Натянуть вёрстку на Yii2 Натянуть вёрстку на Yii2

Необходимо натянуть готовую вёрстку на Yii2.

Описываю краткое ТЗ:

1) Регистрация

2) Блог

— страница добавления записи

— страница каталог записей

— страница полной записи в и комментариев к ней

(Потом этот модуль нужно продублировать раз 6 под другие аналогичные модули. Отличия будут лишь в количестве полей на странице добавления и в их типах. )

3) Форум

4) Страница профиля

— заказ вывода средств

— активность пользователя (на его странице выводить записи которые он добавлял в блог и другие аналогичные модули)

— уведомления (на ответы на комментарии пользователя или на посты на форуме.)

5) Главная страница

На главной выводить последние записи с модуля Блог и других ему подобных.

6) Админка

Вёрстки админки нет, нужно взять какое-то готовое решение и натянуть его.

— Нужно подвязать платёжные системы.

— Нужно сделать пользователь с различными правами (Юзер, Модератор, Админ)

— Нужно сделать возможность модерации записей перед попаданием в ленту блога и других аналогичных модулей.

— Сделать рейтинг (лайки) записей, кол. просмотров, кол. скачиваний, дату добавления, и автора поста.

— Сделать комментарии к постам.

Детально всё расскажу голосом по телеграмму.

Сроки на разработку 3-4 недели.

Telegram: @aioslike
Готов все натянуть на Laravel

Однако нужно чуть больше деталей

Здравствуйте. Готов выполнить Ваш проект.
Предлагаю в ЛС обсудить детали проекта и полную стоимость.
Портфолио:

Евгений Бублик
344 verified 5 0

Добрый день. Готов сделать Ваше задание, имеется опыт в работе с этим фраемворком

Здравствуйте, готов помочь вам реализации вашей задачи. Владею нужным скиллом для решения вашей задачи. Открыт для обсуждения.

Здравствуйте Николай.
Хотел уточнить по поводу заказа (Натянуть вёрстку на Yii2).
Вы принципиально хотите натянуть на Yii2 или вы можете рассмотреть другой вариант вместо Yii2?

Я просто хотел бы вам предложить написание сайта с вашим дизайном, только на быстром самописном движке, с использованием ajax page (переход по страницам без перезагрузки).

Посмотреть и протестировать скорость вы можете на этих сайтах:
https://kust.lifestudio.cf/
https://cups-service.com.ua/

Если вас заинтересует такой вариант, я буду ждать вашего ответа.

Топ-пост этого месяца:  В мобильном поиске Яндекса появятся турбостраницы

Мои контакты:
https://t.me/warfare644
Skype: warfare644

Меня заинтересовал Ваш заказ! Имеется позитивный опыт работы в данном направлении! Выполню качественно, добросовестно и в срок!
Свяжитесь со мной и обсудим подробности! Учту все Ваши пожелания!
Программирую свыше 5 лет.

Фриланс проекты › Сверстать страницу и натянуть на Yii2 Сверстать страницу и натянуть на Yii2

Нужно сверстать и натянуть на yii2 движок страницу на уже существующем сайте. Макет .psd.

Делать соответственно нужно только контентную часть макета (то что между шапкой и футером).

Подробности задачи:

— Синяя форма есть в уже реализованном виде (виджет yii2), ее верстать не нужно будет.


— Белую форму нужно будет сверстать, и сделать виджет yii2 по аналогии с синей формой.

— Все данные есть в админке, бэкэнд писать скорее всего не придётся

В этом проекте, и других проектах компании есть похожие задачи для долгосрочного удалённого сотрудничества.

Посмотрели макет, оценили, выполнили, получили деньги.

Требования:

— Глубокие знания HTML, SCSS, БЭМ, JS

— Обязательно опыт в Yii2 (виджеты, ActiveForm, хелперы и т.д.)

К ставкам присылайте ссылки на уже выполненные вами проекты на стороне frontend, и на стороне backend с yii2.

Большим плюсом будет возможность посмотреть примеры вашего кода на yii2.

Программирование с YII2: приступаем к работе

Установка YII2

Документация

Вы можете найти подробную инструкцию здесь, я же пробегусь по простой и типичной для Mac OS X установке и настройки среды. У фреймоврка есть подробная документация и описание классов, которое содержит все детали о YII.
От переводчика. Я в свою очередь не имею под рукой яблочного девайса и буду проделывать все действия под Ubuntu (запущенной под VMWare Player).

Установка Composer

Для комфортного использования фреймворка рекомендуется использовать популярный менеджер расширений PHP – Composer. Если он у вас еще не установлен проделайте следующее:

Установка YII2

Теперь используем Composer для установки YII2. Для установки требуется аккаунт на GitHub, если у вас его нет – зарегистрируйтесь.
Давайте назовем наш первый проект «hello»:

YII2 поддерживает два типа приложений для разработки: простые и продвинутые. Для данного урока мы будем использовать простое приложение, оно устанавливается по умолчанию. Шаблон продвинутого приложения поддерживает front-end, back-end и консоль, так же как WordPress, это административная панель и задачи для cron.

Установка и настройка локальной среды разработки

Я использую бесплатное ПО MAMP for OS X с открытым исходным кодом, для разработки. Убедитесь, что MAMP запущен и его web сервер и сервер базы данных запущены. Затем создайте символьную ссылку на директорию с сайтом:

Теперь, если вы настроили все верно, то открыв localhost:8888/hello/web вы увидите простой шаблон приложения YII2 с Bootstrap 3.x.

Эта страница удивит разработчиков, ранее разрабатывающих на YII 1.1, где не был предустановлен Bootstrap последней версии, который прочно занял свое место в сети.

YII архитектура приложения

Одна из ключевых особенностей фреймворка – поддержка паттерна MVC. Это позволяет создавать более структурированный код, который проще понимать, упрощает многие вещи, которые реализуются с трудом на PHP, такие как безопасность и автоматическая кодогенерация. Также это способствует поддержке и повторному использованию кода.
В приложении YII весь трафик направляется на один файл /web/index.php. Этот файл загружает YII, зависимости, а затем запускает наше приложение.

По умолчанию это Index метод в файле /controllers/SiteController.php

Как правило, в контроллерах много методов, но с минимальным количеством кода. Контроллеры управляют доступом, загружают модели и представления. Основная смысловая нагрузка должна лежать на моделях, а представления лишь отображают шаблоны.
По умолчанию YII отображает /views/layouts/main.php в качестве представления для /views/site/index.php. main.php поддерживает html и css структуру страницы с тулбаром и контентом. Внутри main.php происходит вызов содержимого:

Переменная $content будет заменена кодом сгенерированным в /views/site/index.php, который представляет статичную html страницу.

Пишем приложение «Привет мир!»

Включаем красивые URL-адреса

В начале давайте включим красивые адреса при помощи mod_rewrite. Если на домашней странице вы кликнете по кнопке about то увидите адрес подобный этому: localhost:8888/hello/web/index.php?r=site%2Fabout. Мы же сейчас его приведем к такому виду localhost:8888/hello/web/site/about.
В директории config хранятся настройки всей вашей среды: настройки веб приложения, консольного приложения и настройки баз данных. Изменим файл /config/web.php следующим образом:

Затем необходимо создать в директории /web, где хранится наш index.php, файл .htaccsess, со следующим содержимым:

Убедитесь, что в MAMP включен mod_rewrite, если же возникли проблемы посмотрите ветку на stackoverflow.
В вашем браузере перейдите по адресу localhost:8888/hello/web/site/about, теперь там вы должны увидеть страницу About простого приложения YII.

Создаем экшн

Следующим шагом создадим действие для контроллера, назвав Say, для повтора нашего сообщения. В файле /controllers/SiteController.php добавим следующее:

Эта функция будет искать параметр target в адресе url для его вывода на экран. В случае его отсутствия выведется просто «World». В фреймворке YII экшены реализованы как методы с префиксом actionИмяЭкшена. В класссе SiteController мы использовали public function actionSay для создания экшена Say.
Стандартным поведением метода render является поиск файла в views/ControllerID/ViewName.php поэтому давайте создадим в /views/site/ файл say.php:

Этот шаблон выведет строку «Hello +$(target)», где $(target) — переменная переданная в url. Для обеспечения безопасности она попадает не на прямую в строку, а в начале проверяется на вредоносный код.
Если вы теперь посетите localhost:8888/hello/web/site/say?target=Tuts%20Readers, то увидите следующее:

Топ-пост этого месяца:  Обновления Яндекс.Дзен микроблоги, комментарии и продвижение

Это простой пример реализации MVC модели фреймворка. Более детально вы можете ознакомиться с данным примером на сайте фреймворка в официальной документации.
А теперь давайте зальем наше приложение на GitHub и запустим на продакшн-сервере.

Настройка вашей удаленной среды

Простое приложение YII должно запускаться на серверах Apache и Nginx «из коробки», я буду приводить инструкции по запуску на Apache, про Nginx вы сможете найти здесь.

Создаем репозиторий на GitHub

Как только я установил базовый шаблон YII, я создаю репозиторий на GitHub:

Внимание: Гораздо проще скопировать и вставить YII .gitignore с GitHub (https://github.com/yiisoft/yii2/blob/master/.gitignore) в локальную папку

/Sites/hello/.gitignore, чем затем удалять в ручную лишнее. Хотя оба варианта допустимы.
Я использую приложение GitHub Mac OS X(https://mac.github.com/), хотя вы также можете воспользоваться командной строкой для инициализации репозитория. Например так(замените «youraccount» вашим именем на GitHub:

От переводчика. Я в качестве репозитория предпочитаю использовать Bitbucket, так как он позволяет иметь приватные репозитории бесплатно.
Конфигурируем Apache на сервере
Если у вас до сих пор не сконфигурирован сервер, рекомендую посмотреть на инструкцию по конфигурации сервера на Ubuntu (http://jeffreifman.com/digitalocean). Если у вас есть IP адрес, сконфигурируйте DNS вашего сервера:

Теперь войдите удаленно по ssh на ваш сервер при помощи IP или доменного имени

Обновите кофигурацию, установите Git, включите mod_rewrite для Apache и mcrypt для PHP.

Настройка доступа удаленного сервера к GitHub
Теперь мы настроим pull запросы с GitHub. Вначале установите Git

Теперь мы создадим группу для www, добавим данные и GitHub пользователей и настроим их права:

Теперь создадим ключ для синхронизации с репозиторием:

Вы увидите нечто похожее на это, вам необходимо скопировать и вставить этот ключ на GitHub
(если возникле проблемы посмотрите здесь (https://help.github.com/articles/error-permission-denied-publickey/)):

Зайдите в раздел настроек репозитория и добавьте этот ключ:

Затем вы увидите что-то подобное:

Наконец-то вы сможете склонировать ветку на ваш сервер:

Если все правильно сконфигурированно то вы увидите:

По мере увеличения количества кода вы через репозиторий сможете легко синхронизировать код локальной машины и продакшн-сервера. Это гораздо проще чем синхронизировать архивом или вручную, вы убедитесь в этом сами в процессе дальнейшего обучения.
Создание конфигурации сайта для Apache
Создадим конфигурационный файл:

Измените доменное имя на ваше:

Включите ваш сайт:

Убедитесь в том что ваше приложение работает пройдя по ссылке yourdomain.com/site/say?target=World! (Отладочный тулбар фреймворка внизу страницы будет отключен!)

Поздравляю! Теперь мы готовы приступить к изучению более сложных особенностей фреймворка!

php — Yii2 посадка верстки на ActiveForm

Пытаюсь поставить шаблон на своей учебный проект на Yii. Подскажите как посадить верстку на поле виджета ActiveForm?

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

Нужно оформить вот так:

Я конечно понимаю что можно сделать через name=ИмяМодели[ИмяСвойства], но врядли это оптимальный вариант. Как в боевых проектах на Yii впринципе садят верстку? Используют ли стандартные html хелперы и ActiveForm?


    7 1
  • 20 янв 2020 2020-01-20 13:50:44
  • Игорь Тюлькин

1 ответ

Используют ли стандартные html хелперы и ActiveForm?

Подскажите как посадить верстку на поле виджета ActiveForm?

В Вашем случае скорее всего нужно прописывать свой шаблон для checkbox. Вот пример того, как это делается (взял здесь):

Уроки Yii2. Как создать страницу и что такое View и Controller

Всех приветствую, с вами Сергей Никонов. В моем новом уроке Yii2 я расскажу как создать страницу, а также вы узнаете что такое паттерн MVC, что такое контроллер (controller), что такое вид (view), что такое layouts в фреймворке Yii2 и многое другое. Эти уроки входят в курс Yii2.

Смотрите видео как создать страницу используя Yii2 фреймворк

Часть 1

Часть 2

Что такое MVC

Для того, чтобы вы смогли создать вашу первую страницу в фреймворке Yii2, вам необходимо понимать что такое MVC.

MVC расшифровывается как Model (модель) — View (вид) — Controller (контроллер). Model отвечает за связь и работой с данными, например модель User может извлекать информацию из базы данных, обновлять информацию в базе данных и так далее.

В этом уроке мы не будем работать с Model, а рассмотрим Controller и View. Controller является связующим звеном между Model и View и обрабатывает эти взаимодействия, а также входные данные. View, если говорить простыми словами, это визуальная часть вашего веб-приложения, которую видит пользователь сайта, иными словами — это файлы с html-версткой, которые подключаются в методы контроллеров.

Что такое Controller (контроллер)

Контроллеры можно представить как интерфейсы между Models и Views. Для того, чтобы понять что такое контроллер, достаточно взглянуть на URL вашего локального сайта Yii2:

site — это название контроллера, а about — это метод в контроллере, который в Yii2 называется как Action.

Пример action страницы Yii2 about в контроллере SiteController:

Если вы удалите строчку return $this->render(‘about’); и напишите вместо нее:

перейдя на страницу About, вы увидите надпись hello. Вы даже можете вывести через echo html тэги, которые будут отображаться на странице about:

Но так делать не нужно, так как это нарушает принцип MVC. Верстку необходимо выносить в отдельный файл.

Топ-пост этого месяца:  Как начать зарабатывать графическим дизайнером в интернете

Что такое View

Файлы с версткой, которые подключается в actions контроллеров называется Views (Виды). Все что видят пользователи вашего сайта — блоки, html-формы, кнопки, иными словами дизайн страницы описанный html и css является Views. Вы не должны помещать верстку ваших страниц напрямую в экшены контроллеров, а делать это нужно через специальные файлы view, затем эти файлы с версткой должны встраиваться в контроллеры:

Строчкой $this->render(‘about’) в методе actionAbout контроллера SiteController рендерится (отрисовывается) View страницы About.

Как создать страницу в Yii2 фреймворке

Создать страницу используя фреймворк очень просто.

1. Перейдите в контроллер SiteController. Он находится в каталоге frontendcontrollers и откройте файл SiteController.php.

2. Найдите и скопируйте action (метод) под названием actionAbout() и вставьте скопированный код ниже.

3. Переименуйте скопированный метод actionAbout() в actionHello() и в строчке $this->render(‘about’) замените ‘about’ на ‘hello’:

4. Создайте файл hello.php в каталоге frontendviews и поместите в него следующий код:

5. Если вы настраивали локальные домены по урокам из курса Yii2 Фреймворк на сайте FructCode.com, перейдите по адресу:

и если вы все сделали верно, вы должны увидеть такую страницу:

Обратите внимание на кнопки, которые мы создали и их дизайн. CSS-классы, которые мы использовали, принадлежат Bootstrap 3. Но откуда Yii2 знает про Bootstrap 3? Дело в том, что в фреймворк Yii2 по умолчанию встроен Bootstrap 3 и вы можете сразу использовать все возможности верстки сетки и компоненты Bootstrap 3 в вашем проекте Yii2. А если вы незнакомы с Bootstrap 3, но хотите научиться им пользоваться, обязательно пройдите мой интерактивный курс Bootstrap 3 на сайте FructCode.

Как вы видите создать страницу с помощью Yii2 фреймворка очень просто. Фреймворк Yii2 очень функциональный, но для того, чтобы знать как им пользоваться, вам необходимо знать что такое объектно-ориентированном программирование (ООП) и уметь программировать применяя парадигму ООП. Объектно-ориентированное программирование на первый взгляд кажется очень сложным и я постарался простым языком на примерах рассказать основы объектно-ориентированного программирования в моем интерактивном курсе PHP и MySQL.

Кроме ООП вам необходимо изучить структуру фреймворка Yii2 Advanced, а также ключевые концепции Yii2, такие как:

— Dependency Injection Container

И другие. Также вам необходимо уметь взаимодействовать с базой данный с помощью фреймворка Yii2 и знать следующее:

Установка ¶

Установка состоит из двух частей: получение пакета расширения через Composer и конфигурирование приложения.

Установка расширения ¶

Предпочтительный способ установки расширения через composer.

Для этого запустите команду

в секцию require вашего composer.json.

Конфигурирование приложения ¶

Чтобы использовать шаблонизатор Twig, вам необходимо сконфигурировать компонент view следующим образом:

После этого вы можете создавать шаблоны в файлах с расширением .twig (или использовать другое расширение файла, предварительно переконфигурировав компонент). В отличие от стандартных файлов вида, при использовании шаблонизатора Twig вы должны указывать расширение в вызове метода контроллера $this->render() :

Yii2: ActiveRecord. Работа с моделью.

Модель — это одна из частей шаблона проектирования MVC предназначенная для работы с базой данных и содержащая всю бизнес-логику приложения. В Yii2 для работы с моделью используется класс ActiveRecord, предоставляющий, объектно-ориентированный подход для манипуляции данными. Каждый такой класс отражает в себе одну таблицу базы данных. И соответственно через этот класс и происходит работа с таблицей. Давайте посмотри простейшую реализацию ActiveRecord для таблицы article.

Создадим в базе данных таблицу article (а так же не забываем указать в конфиге доступ к бд)

Как натянуть верстку на Yii2. Часть 2

Частная коллекция качественных материалов для тех, кто делает сайты

  • Фотошоп-мастер2000+ уроков по фотошопу
  • Фото-монстр300+ уроков для фотографов
  • Видео-смайл200+ уроков по видеообработке
  • Жизнь в стиле «Кайдзен» Техники и приемы для гармоничной и сбалансированной жизни

В этом разделе помещены уроки по PHP скриптам, которые Вы сможете использовать на своих ресурсах.

Фильтрация данных с помощью zend-filter

Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.

Контекстное экранирование с помощью zend-escaper

Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

Подключение Zend модулей к Expressive

Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

Совет: отправка информации в Google Analytics через API

Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

Подборка PHP песочниц

Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

Совет: активация отображения всех ошибок в PHP

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

Агент

PHP парсер юзер агента с поддержкой Laravel, работающий на базе библиотеки Mobile Detect.

Добавить комментарий