Классические сниппеты Carbon Fileds

  • Vadim Tsukanov
    Разработчик
  • Дата публикации
    28.12.2022
  • Категория
    Wordpress
Задача:Ускорить работу с CarbonFields

После того, как я пересел на Carbon Fields, стало понятно, что многие блоки на сайтах — полностью одинаковые. Было решено сделать себе шпаргалку по разным видам блоков

Блок (Картинка/Заголовок/Описание)


Field::make('file', 'section_image', 'Изображение блока')->set_help_text('Изображение блока')->set_width('50%'),
Field::make('text', 'section_title', 'Заголовок')->set_help_text('Заголовок блока')->set_width('50%')->set_default_value(''),
Field::make('separator', 'section_separator', '')->set_width('50%'),
Field::make('rich_text', 'section_description', 'Описание блока')->set_help_text('Описание блока')->set_width('50%')->set_default_value(''),

Блок преимуществ (Заголовок/(Картинка + текст))

Field::make('text', 'section_title', 'Заголовок')->set_help_text('Заголовок блока')->set_default_value(''),
Field::make('complex', 'features', __('Преимущества'))->set_layout('grid')->set_max('5')
  ->setup_labels(array(
      'plural_name' => 'преимущества',
      'singular_name' => 'преимущество',
  ))
  ->add_fields(array(
      Field::make('file', 'feature_image', __('Изображение'))->set_width('50%'),
      Field::make('text', 'feature_text', __('Текст'))->set_width('50%'),
)),

Не забываем про максимальное количество — тут оно может варьироваться от сайта к сайту

 

Блок «Наши сотрудники»


Field::make('text', 'section_title', 'Заголовок блока')->set_help_text('Заголовок блока')->set_default_value(''),
Field::make('rich_text', 'section_description', __('Описание блока'))->set_help_text('Описание блока'),
Field::make('complex', 'employees', __('Сотрудники'))->set_layout('tabbed-horizontal')
->setup_labels(array(
    'plural_name' => 'сотрудники',
    'singular_name' => 'сотрудник',
))
->add_fields(array(
    Field::make('file', 'employee_image', __('Фото сотрудника')),
    Field::make('text', 'employee_name', __('ФИО')),
    Field::make('text', 'employee_position', __('Должность сотрудника')),

)),

 

Блок «Отзывы»

Field::make('text', 'reviews_section_title', 'Заголовок блока')->set_help_text('Заголовок блока')->set_default_value(''),
Field::make('rich_text', 'reviews_section_description', __('Описание блока'))->set_help_text('Описание блока'),
Field::make('complex', 'reviews', __('Отзывы'))->set_layout('tabbed-horizontal')
  ->setup_labels(array(
      'plural_name' => 'отзывы',
      'singular_name' => 'отзыв',
  ))
  ->add_fields(array(
      Field::make('file', 'review_image', __('Фото ревьювера')),
      Field::make('text', 'review_name', __('ФИО ревьювера')),
      Field::make('text', 'review_position', __('Должность ревьювера')),
      Field::make('rich_text', 'review_position', __('Текст отзыва')),
)),

Блок «Для конструктора блоков»

     Container::make('post_meta', __('Детальное описание услуги', 'crb'))
         ->where('post_type', '=', 'post')
         ->add_fields(array(
             Field::make( 'complex', 'article_blocks','Блоки контента' )
                 ->setup_labels(array( 'plural_name' => 'блоки', 'singular_name' => 'блок', ))
                 ->add_fields( 'content_block', __('Блок заголовок/картинка/описание'), array(
                    Field::make('file', 'content_block_section_image', 'Изображение блока')->set_help_text('Изображение блока')->set_width('50%'),
                    Field::make('text', 'content_block_section_title', 'Заголовок')->set_help_text('Заголовок блока')->set_width('50%')->set_default_value(''),
                    Field::make('separator', 'content_block_section_separator', '')->set_width('50%'),
                    Field::make('rich_text', 'content_block_section_description', 'Описание блока')->set_help_text('Описание блока')->set_width('50%')->set_default_value(''),
                 ) )
                 ->add_fields( 'content_block_2',__('Второй блок'), array(
                     Field::make('file', 'content_block_2_section_image', 'Изображение блока')->set_help_text('Изображение блока')->set_width('50%'),
                 ) )
      ));

 

Блок «Слайдер»

    Container::make('post_meta', 'Слайдер')
        ->show_on_template('pageTemplates/frontPage.php')
        ->add_fields(array(
            Field::make('complex', 'slider', __('Слайдер'))->set_layout('tabbed-horizontal')
                ->setup_labels(array(
                    'plural_name' => 'слайды',
                    'singular_name' => 'слайд',
                ))
                ->add_fields(array(
                    Field::make('file', 'slide_image', __('Изображение')),
                    Field::make('text', 'slide_title', __('Заголовок')),
                    Field::make('rich_text', 'slide_description', __('Описание')),
                    Field::make('checkbox', 'slide_show_btn', __('Показывать кнопку перехода?')),
                    Field::make('text', 'slide_btn_label', __('Надпись на кнопке'))->set_default_value('Поддержать')
                        ->set_conditional_logic(array(
                            'relation' => 'AND',
                            array(
                                'field' => 'slide_show_btn',
                                'value' => true,
                                'compare' => '=',
                            )
                        )),
                    Field::make('text', 'slide_btn_href', __('Ссылка для кнопки'))
                        ->set_conditional_logic(array(
                            'relation' => 'AND',
                            array(
                                'field' => 'slide_show_btn',
                                'value' => true,
                                'compare' => '=',
                            )
                        )),

                    Field::make('checkbox', 'slide_btn_target', __('Открывать в новом окне?'))
                        ->set_conditional_logic(array(
                            'relation' => 'AND',
                            array(
                                'field' => 'slide_show_btn',
                                'value' => true,
                                'compare' => '=',
                            )
                        )),
                )),
        ));

 

Еще нет коммментариев. Будь первым!

Оформить заказ в Devstages