Grav-plugin-admin: рдХрд╕реНрдЯрдо рдРрдб рдкреЗрдЬ рд╡рд┐рдХрд▓реНрдк

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рдЕрдкреНрд░реИрд▓ 2017  ┬╖  16рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: getgrav/grav-plugin-admin

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ getgrav/grav#421 рдореЗрдВ рд╕рдордЭрд╛рдпрд╛ рд╣реИ, рдкреЗрдЬ рдЬреЛрдбрд╝реЗрдВ рдореЗрдиреВ рдореЗрдВ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд╕реНрдЯрдо рдкреЗрдЬ рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реЛрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдореЗрдиреВ рдореЗрдВ рдпреЗ рд╡рд┐рдХрд▓реНрдк рд╣реЛрддреЗ рд╣реИрдВ:

  • рдкреГрд╖реНрда рдЬреЛрдбрд╝реЗрдВ
  • рдлрд╝реЛрд▓реНрдбрд░ рдЬреЛрдбрд╝реЗрдВ
  • рдореЙрдбреНрдпреВрд▓рд░ рдЬреЛрдбрд╝реЗрдВ
    рдореИрдВ рдерд┐рди рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреИрд╕реЗ:
    рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдЬреЛрдбрд╝реЗрдВ
    рдЧреИрд▓рд░реА рдЬреЛрдбрд╝реЗрдВ
    рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖ рдкреГрд╖реНрда рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝реЗрдВред

рдпреЗ рд╡рд┐рдХрд▓реНрдк рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪреАрдЬреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░ рджреЗрдВрдЧреЗ рддрд╛рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдмреНрд▓реЙрдЧ/рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЕрдВрджрд░ рдПрдХ "рдЖрдЗрдЯрдо" рдкреЗрдЬ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдЖрджрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЗрдЬ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрдЧреА, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕рд╛рдЗрдЯ рдХреЛ рдЙрди рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рд╕реМрдВрдкрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдкреЗрдЬ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдореЗрд░реЗ рд╕реНрдерд╛рдиреАрдп рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣реИ рдпрджрд┐ рд╣рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдВрд░рдЪрдирд╛ рдкрд░ рд╕рд╣рдордд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рдЗрд╕реЗ рдкреАрдЖрд░ рдореЗрдВ рджреЛрдмрд╛рд░рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдкреЗрдЬ рдЬреЛрдбрд╝реЗрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

admin.yaml

add_modals:
  post:
    label: Add Post
    blueprint: admin/pages/new_post
    template: custom_template
    link_classes: some_class
    modal_classes: some_modal_class
    with:
      some_data: for the template
    show_in: dropdown
  image:
    label: Add Image
    blueprint: admin/pages/new_image
    show_in: bar

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЦрд╛рдХрд╛ред рдореЗрд░реЗ рдмреНрд▓реЙрдЧ рдкрд░ рдореЗрд░реЗ рдкрд╛рд╕ 1 рд╕реЗ рдЕрдзрд┐рдХ рд▓реЗрдЦрдХ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП getNewPostRoute рдХреЗ рд╕рд╛рде рдореИрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рд░реНрдЧ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдЦрд╛рддреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ: "/dave/posts"

new_post.yaml

form:
  validation: loose
  fields:
    section:
        type: section
        title: Add Post

    title:
      type: text
      label: Post Title
      validate:
        required: true

    folder:
      type: hidden

    route:
      type: hidden
      data-default@: '\Grav\Plugin\MyPlugin::getNewPostRoute'

    name:
      type: hidden
      default: 'post'

    visible:
      type: hidden
      default: ''

    blueprint:
      type: blueprint

рдХреБрдЫ рдЪрд┐рддреНрд░

screenshot from 2017-04-26 11-45-05
screenshot from 2017-04-26 11-45-26

рд╕рднреА 16 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрдж рд╣реА рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╕рдВрдХреЗрдд рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдХреИрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдареАрдХ рд╣реИ рдЬрдм рдЖрдк рдХрд┐рд╕реА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкреЗрдЬ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рд╕рд╣реА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдмреНрд▓реЙрдЧ, рдЧреИрд▓рд░реА рдЖрджрд┐ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЙрддрдирд╛ рд╣реА рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрдЯрди рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рдкреГрд╖реНрда рдЬреЛрдбрд╝реЗрдВ рдмрдЯрди рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдлрд╝реАрд▓реНрдб рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдкреВрд░реНрд╡-рдЪрдпрдирд┐рдд рдФрд░ рдЫрд┐рдкрд╛ рджреЗрдВ (рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ)

@ ricardo118 рдореЗрд░реА рдЗрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╕рд╣реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдФрд░ рд╕рд╣реА рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореЛрдбрд▓ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдЪрдпрди рдмреЙрдХреНрд╕ рд╕рд╛рдЗрдЯ рдХреЗ рд╕рднреА рдкреГрд╖реНрдареЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреНрд░рдо рдореЗрдВ рд╕рд╣реА рдлрд╝реЛрд▓реНрдбрд░ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рд╕реИрдХрдбрд╝реЛрдВ рдкреГрд╖реНрдареЛрдВ рддрдХ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдореЛрдбрд▓ред

рдореИрдВ рдореЙрдбрд▓ рдХреЛ рдХреЙрдкреА рдФрд░ рдкреЗрд╕реНрдЯ рдХрд░рдиреЗ рдФрд░ рдкреНрд▓рдЧрдЗрди рдХреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реАрдзреЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ред (рдЕрдкрдбреЗрдЯ рдХреЗ рдХрд╛рд░рдг)
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЪреБрдирд┐рдВрджрд╛ рдмрдХреНрд╕реЗ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЖрддреА рд╣реИрдВ: рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рдореБрдЭреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рд╣реА рд╡рд┐рдХрд▓реНрдк рдХрднреА рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдореИрдВ рдЬреЛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЙрд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдХреЛрдб рдмрджрд▓реЗ рдмрд┐рдирд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдореЗрд░реЗ рд╕реНрдерд╛рдиреАрдп рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣реИ рдпрджрд┐ рд╣рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдВрд░рдЪрдирд╛ рдкрд░ рд╕рд╣рдордд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рдЗрд╕реЗ рдкреАрдЖрд░ рдореЗрдВ рджреЛрдмрд╛рд░рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдкреЗрдЬ рдЬреЛрдбрд╝реЗрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

admin.yaml

add_modals:
  post:
    label: Add Post
    blueprint: admin/pages/new_post
    template: custom_template
    link_classes: some_class
    modal_classes: some_modal_class
    with:
      some_data: for the template
    show_in: dropdown
  image:
    label: Add Image
    blueprint: admin/pages/new_image
    show_in: bar

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЦрд╛рдХрд╛ред рдореЗрд░реЗ рдмреНрд▓реЙрдЧ рдкрд░ рдореЗрд░реЗ рдкрд╛рд╕ 1 рд╕реЗ рдЕрдзрд┐рдХ рд▓реЗрдЦрдХ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП getNewPostRoute рдХреЗ рд╕рд╛рде рдореИрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рд░реНрдЧ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдЦрд╛рддреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ: "/dave/posts"

new_post.yaml

form:
  validation: loose
  fields:
    section:
        type: section
        title: Add Post

    title:
      type: text
      label: Post Title
      validate:
        required: true

    folder:
      type: hidden

    route:
      type: hidden
      data-default@: '\Grav\Plugin\MyPlugin::getNewPostRoute'

    name:
      type: hidden
      default: 'post'

    visible:
      type: hidden
      default: ''

    blueprint:
      type: blueprint

рдХреБрдЫ рдЪрд┐рддреНрд░

screenshot from 2017-04-26 11-45-05
screenshot from 2017-04-26 11-45-26

@ david-szabo97 рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдореЗрд░реЗ рдорди рдореЗрдВ рдерд╛ред рдЕрдЪреНрдЫрд╛ рдХрд╛рдо! рдпрд╣ рд╡рд┐рдиреНрдпрд╛рд╕ рдореБрдЭреЗ рдХрд╛рдлреА рд╕рдордЭрджрд╛рд░ рд▓рдЧрддрд╛ рд╣реИред рдореБрдЭреЗ рд╡рд╣ рд╢реЛ_рдЗрди рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкрд╕рдВрдж рд╣реИ: рдмрд╛рд░|рдбреНрд░реЙрдкрдбрд╛рдЙрди, рд╕рд╛рдл-рд╕реБрдерд░рд╛ред рдЖрдк рдлрд╝реЛрд▓реНрдбрд░ рдирд╛рдо рднрд╛рдЧ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ?

рдкреАрдЖрд░ рдХреЗ рд▓рд┐рдП рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рдЕрдкрдиреА рдЫрд╛рдк рджреЗрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реБрдП, рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рдХреЛрдб рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╣реАрдВ рдСрдирд▓рд╛рдЗрди рд╣реИ?

@fireraccoon рдореИрдВрдиреЗ рд╢реАрд░реНрд╖рдХ рдХреЛ рдСрдЯреЛ-рд╕реНрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдРрдб рдкреЗрдЬ рдХреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рдЧ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдареАрдХ рд╡реИрд╕реЗ рд╣реА рдЬреИрд╕реЗ рдЖрдк рдкреЗрдЬ рдмрдирд╛рддреЗ рд╕рдордп рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдк рдлрд╝реЛрд▓реНрдбрд░ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╣реА рд╣реЛрдЧрд╛ рдЬрдм рдЖрдк рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреГрд╖реНрда рдмрдирд╛рддреЗ рд╣реИрдВ, рдмрд╕ рд╕реНрд▓рдЧрд┐рдлрд╝рд╛рдЗрдб рд╢реАрд░реНрд╖рдХ рдХреЛ рдлрд╝реЛрд▓реНрдбрд░ рдЯреЗрдХреНрд╕реНрдЯ рдмреЙрдХреНрд╕ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВред

рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирдП рдкреГрд╖реНрда (рдлрд╝реЛрд▓реНрдбрд░) рдХреЛ рдорд╛рд░реНрдЧ рдореЗрдВ рдбрд╛рд▓рддрд╛ рд╣реИ, рдЖрдк рдХрд╕реНрдЯрдо рдорд╛рд░реНрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдореИрдВрдиреЗ data-default@: '\Grav\Plugin\MyPlugin::getNewPostRoute рдФрд░ рдЕрдВрдд рдореЗрдВ рдЖрдкрдХрд╛ рд╡рд╣реА рдкреНрд░рднрд╛рд╡ рд╣реЛрдЧрд╛ред ($рдорд╛рд░реНрдЧред $рдлрд╝реЛрд▓реНрдбрд░)

рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рддрдХ рдпрд╣ рдХрд╣реАрдВ рднреА рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдореИрдВ рдЗрд╕реЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

@ david-szabo97 рдареАрдХ рд╣реИ, рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдБ! рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕реЗ рдЬреЗрдПрд╕ рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдпрд╛ рд╣реИ рдпрд╛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреЛрд╕реНрдЯ рдлреЙрд░реНрдо рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╣реБрдХ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рд╣реИред рд╣рд╛рдБ, рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдордп рд╣реЛ рддреЛ рдореБрдЭреЗ рдЗрд╕реЗ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ рдзрдиреНрдпрд╡рд╛рдж!

@fireraccoon рдпрд╣ рдПрдХ рдЗрд╡реЗрдВрдЯ рд╣реБрдХ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЬреЗрдПрд╕ рддрд░реАрдХрд╛ рдмреЗрд╣рддрд░ рд▓рдЧрддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдПрдХ рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓ рд╕рдВрд▓рдЧреНрди рдХреА рд╣реИ, рдмрд╕ рдЕрдкрдиреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕/рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЛ рдЗрд╕ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдмрджрд▓реЗрдВред
рдЖрдк * MessedCode рдЦреЛрдЬ рдХрд░рдХреЗ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╣ рдЧреНрд░реЗрд╡ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдореЗрд░рд╛ рдЖрдЧрд╛рдореА рдмреНрд▓реЙрдЧ рд╣реИ)
рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕рдореЗрдВ рдХреБрдЫ рдЕрдиреНрдп рдмрджрд▓рд╛рд╡ рдереЗ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

admin.min.js рдореЗрдВ рдЖрдкрдХреЛ рдЬреЛ рдХреЛрдб рдорд┐рд▓реЗрдЧрд╛, рд╡рд╣ add.js рд╕реЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдореИрдВ рдкреВрд░реЗ рдЬреЗрдПрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рджреЛрдмрд╛рд░рд╛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рдмрдЪ рд╕рдХрддрд╛ рд╣реВрдВред

рдореЗрд░реЗ рдмреНрд▓реЙрдЧ рдкрд░ рд╣рдорд╛рд░реЗ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдкреЛрд╕реНрдЯрд┐рдВрдЧ рдХреЛ рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдХрдИ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдкрдбрд╝реЗред рдпрд╣ рдЙрди рдмрджрд▓рд╛рд╡реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдмреБрд░реА рддрд░рд╣ рд╕реЗ рдЬрд░реВрд░рдд рд╣реИред
admin.zip

@ david-szabo97 рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж! рдЖрдкрдиреЗ рдореЗрд░рд╛ рджрд┐рди рдмрдЪрд╛ рд▓рд┐рдпрд╛ред рдореИрдВ рдЗрд╕реЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдлреА рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред рдЬрд╛рджреВ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдлреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ, рдФрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдПрдХреАрдХреГрдд рджреЗрдЦрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВред рд╕рд╛рде рд╣реА рдкрд░рд┐рд╡рд░реНрддрди рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИрдВред

рдПрдХ рдкреАрдЖрд░ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдЕрдЧрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЗрдПрд╕ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рдереЗред

https://github.com/getgrav/grav-plugin-admin/issues/1104 . рдореЗрдВ рд╡рд┐рд▓рдп рдХреА рдЧрдИ рд╕реБрд╡рд┐рдзрд╛

@rhukster , рдореИрдВ рдореЛрдбрд▓ рд╕реЗ рдордирдорд╛рдирд╛ рдлреНрд░рдВрдЯрдореИрдЯрд░ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлрд┐рд▓рд╣рд╛рд▓ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рд╕реБрдЭрд╛рд╡ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдореБрдЭреЗ рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдмреЗрд╕ рдореЗрдВ рдХрд╣рд╛рдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП? рдХреНрдпрд╛ рдореИрдВ рдЗрди рддреМрд░-рддрд░реАрдХреЛрдВ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдЧреБрдорд░рд╛рд╣ рд╣реВрдБ?

form:
  validation: loose
  fields:
    section:
      type: section
      title: Add Fancy Page

    title:
      type: text
      label: Title

    a_custom_attribute:
      type: text
      default: dummy
      label: Won't pre-populate the corresponding field

    header.another_custom_attr:
      type: text
      label: Neither will this
      validate:
        required: true

@ k8n
рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдХреЛрдИ рдЙрдореНрдореАрдж рдХрд░реЗрдЧрд╛ред рдЕрднреА рдХреЗрд╡рд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝реАрд▓реНрдб рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рднреА рдХрд╕реНрдЯрдо рдлреНрд░рдВрдЯ рдореИрдЯрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдирд╣реАрдВ рд╣реЛрдВрдЧреАред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдЙрд╕ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреГрд╖реНрда рдкрд░ рдХреИрд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдПрдХ рдХрд╕реНрдЯрдо рдореЛрдбрд▓ рдмрдирд╛рдпрд╛ рд╣реИ; рдиреАрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ - рд╢реАрд░реНрд╖рд▓реЗрдЦ рдореЗрдВ рдлрд╝реАрд▓реНрдб рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢реАрд░реНрд╖рд▓реЗрдЦ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рди рд╣реА рдХреЛрдИ рддреНрд░реБрдЯрд┐ рджрд░реНрдЬ рдХреА рдЧрдИ рд╣реИ?

``` рдлреЙрд░реНрдо:
рд╕рддреНрдпрд╛рдкрди: рдвреАрд▓рд╛
рдЦреЗрдд:
рдЕрдиреБрднрд╛рдЧ:
рдкреНрд░рдХрд╛рд░: рдЕрдиреБрднрд╛рдЧ
рд╢реАрд░реНрд╖рдХ: рдореАрдбрд┐рдпрд╛ рдЖрдЗрдЯрдо рдЬреЛрдбрд╝реЗрдВ

title:
  type: text
  label: Media Item Title
  validate:
    required: true

header.article_hyperlink:
  type: text
  label: Article Hyperlink (URL)
  validate:
    required: true
    type: url
header.article_date:
  type: date
  label: Article Date
  validate:
    required: true
header.article_blurb:
  type: textarea
  label: Article Blurb

folder:
  type: hidden
  default: '@slugify-title'

route:
  type: hidden
  default: /media

name:
  type: hidden
  default: 'media-item'

blueprint:
  type: blueprint

```

рдореЛрдбрд▓ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╕рд╛рдордЧреНрд░реА рдмрдирд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд╝реАрд▓реНрдб рд╕реЗ рдХреЛрдИ рднреА рдбреЗрдЯрд╛ рдкрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

@sjclark , рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдКрдкрд░ рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдХрд╣рд╛ рдерд╛, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореЛрдбрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░рдирд╛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реИ, рдореИрдВрдиреЗ рдЧреНрд░реЗрд╡ рджреЗрд╡ рдЯреАрдо рдХреЗ рд╕рд╛рде рдЬрд╛рдБрдЪ рдХреАред

рдЙрдореНрдореАрдж рд╣реИ, рдХреЛрдИ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд▓реНрдж рд╣реА рдкреАрдЖрд░ рдХрд░реЗрдЧрд╛!

рдЗрд╕ рдкрд░ +1ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Quy picture Quy  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

danzinger picture danzinger  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

coolemur picture coolemur  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

darkroastcreative picture darkroastcreative  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

orasik picture orasik  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ