-
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' => '=',
)
)),
)),
));