Π ΡΡΡΠΊΠ°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π° Π½ΠΈΠΆΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅., (*1)
The component that makes it easy to create and handle a variety of forms for your website., (*2)
Introduction
We all know about the amount of routine work that needs to be do every time when we need to create and edit a particular form on the page. This may be the profile edit page, set a new password for the user, similar forms in admin, or just some kind of new application in a support., (*3)
All of these forms are united by common characteristics: they are quite simple and very similar to each other in terms of implementation: to create a method in the controller, to create view-template, organize the validation, shove the data into some kind of model.. Pain, trivial round, boredom. How many times it should be done on a large project? In the initial stages of the problem is often "solved" scaffolding, but this is only a small billet, which was subsequently still need to change and modify. That's why I wrote this library, greatly reduced the amount of resources required to create and maintain such simple forms., (*4)
With all of this, I wanted to create the most minimalistic and simple tool that would have carried only a small supporting role, did not limit the developer and it filled up several layers of abstraction. And it seems I have managed to achieve this: at the moment, all the component installation is reduced to a single connection JS-library (Prettyforms.js), service provider and trait to your main controller. Then you can begin to create their own forms based on the same old kind of controllers, which will now have a few extra powerful methods that facilitate you to develop and support forms., (*5)
At this point in the component to implement the following:, (*6)
- Data validation on the client and on the server side without any change from the current page
- The ability to edit the connection in models such as "many-to-many"
- The possibility, when necessary, easily connect their field types
- Support from a box of two CSS-frameworks: Twitter Bootstrap and Foundation
- Support for "breadcrumbs" that appear on the entry form, on the basis of component Laravel Breadcrumbs
- Support soft removal, complete removal and restoration
- In addition to standard input and Selects, component supports the following types of fields:
- Input field telephone with the ability to set his mask
- CKEditor
- Group checkboxes, each of which represents a connection to any model in the database
- Ability to create a Select, which will search for value through Ajax (based on "select2" library)
- All necessary for non-standard components INPUT JS-default loaded via CDN, but it can be easily disabled via konfiguratsionnny component file
Application sample
You can download and explore the real working example of the application on the following link:
https://github.com/believer-ufa/prettyforms-laravel5-app, (*7)
Almost all the features described above are present in the sample application: validation, editing relations "many-to-many" ajax search, seft delete and recovery, loading the editor and other JS files from CDN, breadcrumbs, and etc., (*8)
This example of a working application can also be used as a basis for your own applications: just install it yourself and start a new project on the basis of what is contained in the examples., (*9)
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΎΡΠΌΡ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°., (*10)
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Ρ Π΄ΠΎΠ»Π³ΠΎ ΡΠ°Π±ΠΎΡΠ°Π» Π½Π°Π΄ ΡΠ²ΠΎΠ΅ΠΉ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ PrettyForms, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠΉ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΡΠΌ. ΠΡΠ΅ ΠΌΡ Π·Π½Π°Π΅ΠΌ ΠΎ ΡΠΎΠΌ ΠΎΠ±ΡΡΠΌΠ΅ ΡΡΡΠΈΠ½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΎΠ΄Π΅Π»ΡΠ²Π°ΡΡ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΠΎΡΠΌΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΡΠ°. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΠ° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΠΈΠ»Ρ, ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΡΠ΅ ΡΠΎΡΠΌΡ Π² Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ Π½ΠΎΠ²Π°Ρ Π·Π°ΡΠ²ΠΊΠ° Π² ΡΠ°ΠΏΠΏΠΎΡΡ., (*11)
ΠΡΠ΅ ΡΡΠΈ ΡΠΎΡΠΌΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ ΠΎΠ±ΡΠΈΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ: ΠΎΠ½ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠ΅ ΠΈ ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΡ
ΠΎΠΆΠΈ Π΄ΡΡΠ³ Π½Π° Π΄ΡΡΠ³Π° Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ: ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅, ΡΠΎΠ·Π΄Π°ΡΡ view-ΡΠ°Π±Π»ΠΎΠ½, ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ
, ΠΏΠΈΡ
Π½ΡΡΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΠΌΠΎΠ΄Π΅Π»Ρ.. ΠΠΎΠ»Ρ, ΡΡΡΠΈΠ½Π°, ΡΠΊΡΠΊΠΎΡΠ°. Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΡΡΠΎ Π½Π°Π΄ΠΎ ΠΏΡΠΎΠ΄Π΅Π»Π°ΡΡ Π½Π° Π±ΠΎΠ»ΡΡΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅? ΠΠ° Π½Π°ΡΠ°Π»ΡΠ½ΡΡ
ΡΡΠ°Π΄ΠΈΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ°ΡΡΠΎ "ΡΠ΅ΡΠ°ΡΡ" ΡΠΊΠ°ΡΡΠΎΠ»Π΄ΠΈΠ½Π³ΠΎΠΌ, Π½ΠΎ Π²Π΅Π΄Ρ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ°Π»Π΅Π½ΡΠΊΠ°Ρ Π·Π°Π³ΠΎΡΠΎΠ²ΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π½Π°Π΄ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΈ Π΄ΠΎΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ. ΠΠΎΡ ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π» ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΎΠΊΡΠ°ΡΠ°ΡΡΡΡ ΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ
ΠΏΡΠΎΡΡΡΡ
ΡΠΎΡΠΌ., (*12)
ΠΡΠΈ Π²ΡΡΠΌ ΡΡΠΎΠΌ, Ρ ΡΡΡΠ΅ΠΌΠΈΠ»ΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡΠΈΡΠ½ΡΠΉ ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±Ρ Π½ΡΡ Π»ΠΈΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠΎΠ»Ρ, Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π» ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΈ Π½Π΅ Π·Π°Π²Π°Π»ΠΈΠ²Π°Π» Π΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ»ΠΎΡΠΌΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΉ. Π ΠΊΠ°ΠΆΠ΅ΡΡΡ, Ρ ΠΌΠ΅Π½Ρ ΡΠ΄Π°Π»ΠΎΡΡ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ±ΠΈΡΡΡΡ: Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, Π²ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ JS-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (Prettyforms.js), ΡΠ΅ΡΠ²ΠΈΡ-ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ° ΠΈ ΡΡΠ΅ΠΉΡΠ° ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠ°ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΡΠΌΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ΅Ρ
ΠΆΠ΅ ΡΠ°ΠΌΡΡ
ΡΡΠ°ΡΡΡ
Π΄ΠΎΠ±ΡΡΡ
ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠ°Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΌΠΎΡΠ½ΡΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΎΠ±Π»Π΅Π³ΡΠ°ΡΡΠΈΡ
Π²Π°ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠΎΡΠΌ., (*13)
ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:, (*14)
- ΠΠ°Π»ΠΈΠ΄Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ
Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΈ Π½Π° Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Π°Ρ
Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π° Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΡ
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΡΠ·ΠΈ Ρ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΡΠΈΠΏΠ° "ΠΌΠ½ΠΎΠ³ΠΈΠ΅-ΠΊΠΎ-ΠΌΠ½ΠΎΠ³ΠΈΠΌ"
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ, ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΈΠΏΡ ΠΏΠΎΠ»Π΅ΠΉ
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ ΡΡΡΡ
CSS-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ²: Twitter Bootstrap, Foundation ΠΈ Kube
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° "Ρ
Π»Π΅Π±Π½ΡΡ
ΠΊΡΠΎΡΠ΅ΠΊ", ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΠΈΡ
ΡΡ Π½Π°Π΄ ΡΠΎΡΠΌΠΎΠΉ Π²Π²ΠΎΠ΄Π°, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Laravel Breadcrumbs
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΡΠ³ΠΊΠΎΠ³ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ, ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
- ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ
ΠΈΠ½ΠΏΡΡΠΎΠ² ΠΈ ΡΠ΅Π»Π΅ΠΊΡΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²ΠΈΠ΄Ρ ΠΏΠΎΠ»Π΅ΠΉ:
- ΠΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° Π½ΠΎΠΌΠ΅ΡΠ° ΡΠ΅Π»Π΅ΡΠΎΠ½Π° Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π·Π°Π΄Π°ΡΡ Π΅Π³ΠΎ ΠΌΠ°ΡΠΊΡ
- Π Π΅Π΄Π°ΠΊΡΠΎΡ CKEditor
- ΠΡΡΠΏΠΏΠ° ΡΠ΅ΠΊΠ±ΠΎΠΊΡΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ ΡΠ²ΡΠ·Ρ Ρ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠ΄Π΅Π»ΡΡ Π² ΠΠ
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Select, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· Ajax (Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠ»Π°Π³ΠΈΠ½Π° "select2")
- ΠΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ
ΠΈΠ½ΠΏΡΡΠΎΠ² JS-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· CDN, Π½ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°ΡΠ°ΡΡ ΠΈ ΠΈΠ·ΡΡΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΡΠ»ΠΊΠ΅:
https://github.com/believer-ufa/prettyforms-laravel5-app, (*15)
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅ ΡΠΈΡΠΈ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π²ΡΡΠ΅, ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ-ΠΏΡΠΈΠΌΠ΅ΡΠ΅: Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ, ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²ΡΠ·Π΅ΠΉ "ΠΌΠ½ΠΎΠ³ΠΈΠ΅-ΠΊΠΎ-ΠΌΠ½ΠΎΠ³ΠΈΠΌ", Π°ΡΠΊΡΠΎΠ²ΡΠΉ ΠΏΠΎΠΈΡΠΊ, ΠΌΡΠ³ΠΊΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΈ ΠΏΡΠΎΡΠΈΡ
JS-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅ΡΠΎΠ² ΠΏΠΎ CDN, Ρ
Π»Π΅Π±Π½ΡΠ΅ ΠΊΡΠΎΡΠΊΠΈ, ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅., (*16)
ΠΠ°Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Ρ Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ: ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΅Π³ΠΎ ΡΠ΅Π±Π΅ ΠΈ Π½Π°ΡΠ½ΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ Π½ΠΎΠ²ΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ
., (*17)
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ