'Site Settings', 'menu_title' => 'Site Settings', 'menu_slug' => 'site-settings', 'capability' => 'edit_posts', 'redirect' => false, ]); } if ( ! function_exists( 'acf_add_local_field_group' ) ) { return; } acf_add_local_field_group([ 'key' => 'group_site_settings', 'title' => 'Site Settings', 'fields' => [ cascapedia_st_jules_text_field('field_municipality_name_fr', 'municipality_name_fr', 'Nom municipal FR'), cascapedia_st_jules_text_field('field_municipality_name_en', 'municipality_name_en', 'Nom municipal EN'), cascapedia_st_jules_text_field('field_phone', 'phone', 'Téléphone'), cascapedia_st_jules_text_field('field_email', 'email', 'Courriel'), cascapedia_st_jules_textarea_field('field_address_fr', 'address_fr', 'Adresse FR'), cascapedia_st_jules_textarea_field('field_address_en', 'address_en', 'Adresse EN'), cascapedia_st_jules_text_field('field_hours_fr', 'hours_fr', 'Heures FR'), cascapedia_st_jules_text_field('field_hours_en', 'hours_en', 'Heures EN'), cascapedia_st_jules_url_field('field_facebook_url', 'facebook_url', 'Facebook'), ], 'location' => [[['param' => 'options_page', 'operator' => '==', 'value' => 'site-settings']]], ]); acf_add_local_field_group([ 'key' => 'group_page_content', 'title' => 'Contenu de page', 'fields' => [[ 'key' => 'field_sections', 'label' => 'Sections', 'name' => 'sections', 'type' => 'flexible_content', 'button_label' => 'Ajouter une section', 'layouts' => cascapedia_st_jules_acf_layouts(), ]], 'location' => [[['param' => 'post_type', 'operator' => '==', 'value' => 'page']]], ]); } add_filter( 'acf/settings/save_json', fn() => get_stylesheet_directory() . '/acf-json' ); add_filter( 'acf/settings/load_json', function( array $paths ): array { $paths[] = get_stylesheet_directory() . '/acf-json'; return $paths; }); function cascapedia_st_jules_acf_layouts(): array { return [ cascapedia_st_jules_layout('hero_carousel', 'Hero carousel', [cascapedia_st_jules_repeater_field('field_hero_slides', 'slides', 'Slides')]), cascapedia_st_jules_layout('text_intro', 'Texte intro', cascapedia_st_jules_basic_copy_fields()), cascapedia_st_jules_layout('text_image', 'Texte + image', array_merge(cascapedia_st_jules_basic_copy_fields(), [cascapedia_st_jules_image_field('field_text_image_image', 'image', 'Image')])), cascapedia_st_jules_layout('services_list', 'Liste de services', array_merge(cascapedia_st_jules_basic_copy_fields(), [cascapedia_st_jules_repeater_field('field_services', 'services', 'Services')])), cascapedia_st_jules_layout('photo_gallery', 'Galerie photos', [cascapedia_st_jules_text_field('field_gallery_title_fr', 'title_fr', 'Titre FR'), cascapedia_st_jules_text_field('field_gallery_title_en', 'title_en', 'Titre EN'), cascapedia_st_jules_gallery_field('field_gallery_photos', 'photos', 'Photos')]), cascapedia_st_jules_layout('events_list', 'Liste événements', array_merge(cascapedia_st_jules_basic_copy_fields(), [cascapedia_st_jules_repeater_field('field_events', 'events', 'Événements')])), cascapedia_st_jules_layout('businesses_list', 'Entreprises', array_merge(cascapedia_st_jules_basic_copy_fields(), [cascapedia_st_jules_repeater_field('field_business_categories', 'categories', 'Catégories')])), cascapedia_st_jules_layout('cta_section', 'CTA', array_merge(cascapedia_st_jules_basic_copy_fields(), [cascapedia_st_jules_link_field('field_cta_link', 'cta', 'Lien')])), cascapedia_st_jules_layout('council_grid', 'Conseil municipal', array_merge(cascapedia_st_jules_basic_copy_fields(), [cascapedia_st_jules_repeater_field('field_council_members', 'members', 'Membres')])), cascapedia_st_jules_layout('documents_list', 'Liste documents', array_merge(cascapedia_st_jules_basic_copy_fields(), [cascapedia_st_jules_repeater_field('field_document_groups', 'groups', 'Groupes')])), cascapedia_st_jules_layout('pdf_embed', 'PDF intégré', [cascapedia_st_jules_text_field('field_pdf_title_fr', 'title_fr', 'Titre FR'), cascapedia_st_jules_text_field('field_pdf_title_en', 'title_en', 'Titre EN'), cascapedia_st_jules_file_field('field_pdf_file', 'file', 'PDF')]), ]; } function cascapedia_st_jules_basic_copy_fields(): array { return [ cascapedia_st_jules_text_field('field_title_fr', 'title_fr', 'Titre FR'), cascapedia_st_jules_text_field('field_title_en', 'title_en', 'Titre EN'), cascapedia_st_jules_wysiwyg_field('field_body_fr', 'body_fr', 'Texte FR'), cascapedia_st_jules_wysiwyg_field('field_body_en', 'body_en', 'Texte EN'), ]; } function cascapedia_st_jules_layout( string $name, string $label, array $sub_fields ): array { return ['key' => 'layout_' . $name, 'name' => $name, 'label' => $label, 'display' => 'block', 'sub_fields' => $sub_fields]; } function cascapedia_st_jules_text_field($key, $name, $label): array { return ['key'=>$key,'label'=>$label,'name'=>$name,'type'=>'text']; } function cascapedia_st_jules_url_field($key, $name, $label): array { return ['key'=>$key,'label'=>$label,'name'=>$name,'type'=>'url']; } function cascapedia_st_jules_textarea_field($key, $name, $label): array { return ['key'=>$key,'label'=>$label,'name'=>$name,'type'=>'textarea','rows'=>3]; } function cascapedia_st_jules_wysiwyg_field($key, $name, $label): array { return ['key'=>$key,'label'=>$label,'name'=>$name,'type'=>'wysiwyg','tabs'=>'all','toolbar'=>'basic','media_upload'=>0]; } function cascapedia_st_jules_image_field($key, $name, $label): array { return ['key'=>$key,'label'=>$label,'name'=>$name,'type'=>'image','return_format'=>'array','preview_size'=>'medium']; } function cascapedia_st_jules_gallery_field($key, $name, $label): array { return ['key'=>$key,'label'=>$label,'name'=>$name,'type'=>'gallery','return_format'=>'array','preview_size'=>'medium']; } function cascapedia_st_jules_file_field($key, $name, $label): array { return ['key'=>$key,'label'=>$label,'name'=>$name,'type'=>'file','return_format'=>'array','mime_types'=>'pdf']; } function cascapedia_st_jules_link_field($key, $name, $label): array { return ['key'=>$key,'label'=>$label,'name'=>$name,'type'=>'link','return_format'=>'array']; } function cascapedia_st_jules_repeater_field($key, $name, $label): array { return ['key'=>$key,'label'=>$label,'name'=>$name,'type'=>'repeater','layout'=>'row','button_label'=>'Ajouter','sub_fields'=>[cascapedia_st_jules_text_field($key.'_label_fr','label_fr','Libellé FR'), cascapedia_st_jules_text_field($key.'_label_en','label_en','Libellé EN'), cascapedia_st_jules_wysiwyg_field($key.'_content_fr','content_fr','Contenu FR'), cascapedia_st_jules_wysiwyg_field($key.'_content_en','content_en','Contenu EN')]]; }