From 0c06125d5f7fffbe957f0746e0dda6ab6174a3aa Mon Sep 17 00:00:00 2001 From: erleibiazzio Date: Tue, 29 Aug 2023 16:14:39 -0300 Subject: [PATCH] Implementa nova taxonomia Segmento Cultural --- plugins/SettingsPa/Plugin.php | 64 +++++++++++++++++++ .../agent-fields-config.php | 20 ++++++ .../registration-fields/agent-fields-form.php | 3 + 3 files changed, 87 insertions(+) create mode 100644 plugins/SettingsPa/layouts/parts/registration-fields/agent-fields-config.php create mode 100644 plugins/SettingsPa/layouts/parts/registration-fields/agent-fields-form.php diff --git a/plugins/SettingsPa/Plugin.php b/plugins/SettingsPa/Plugin.php index be0c6bd..8c6e831 100644 --- a/plugins/SettingsPa/Plugin.php +++ b/plugins/SettingsPa/Plugin.php @@ -3,6 +3,8 @@ namespace SettingsPa; use MapasCulturais\App; +use MapasCulturais\Entities\Agent; +use MapasCulturais\i; class Plugin extends \MapasCulturais\Plugin { @@ -38,6 +40,35 @@ public function _init() $self = $this; + $app->hook("registrationFieldTypes.saveToEntity", function($entity_field, $value) use ($app){ + if($entity_field == '@terms:segmento') { + $this->terms['segmento'] = $value; + } + }); + + $app->hook("registrationFieldTypes.fetchFromEntity", function($entity_field, &$value){ + if($entity_field == '@terms:segmento') { + $value = $this->terms['segmento']; + } + }); + + $app->hook("registrationFieldTypes--agent-<>-field-config-fields_labels", function(&$fields_labels){ + $fields_labels['@terms:segmento'] = " " . i::__('Segmento cultural'); + }); + + $app->hook("template(embedtools.formbuilder.registrationFieldTypes--agent-<>-field-config):after", function($agent_fields){ + $this->part('registration-fields/agent-fields-config', ['agent_fields' => $agent_fields]); + }); + + $app->hook("template(embedtools.registrationform.registrationFieldTypes--agent-<>-field):after", function(){ + $this->part('registration-fields/agent-fields-form'); + }); + + $app->hook("template(agent.<>.header-content):after",function() use ($app){ + /** @var Theme $this */ + $this->addTaxonoyTermsToJs("segmento"); + }); + /** * Insere conteúdo na HOME */ @@ -63,5 +94,38 @@ public function _init() public function register() { + $this->registerTaxonomies(); + } + + public function registerTaxonomies() + { + $app = App::i(); + + $def = new \MapasCulturais\Definitions\Taxonomy(55, 'segmento','Segmento cultural', [ + i::__("Artes Visuais"), + i::__("Artesanato"), + i::__("Audiovisual"), + i::__("Cultura Alimentar"), + i::__("Culturas Afro-Brasileiras"), + i::__("Livro e Leitura"), + i::__("Culturas Populares"), + i::__("Moda e Design"), + i::__("Museus e Memoriais de Base Comunitária"), + i::__("Música"), + i::__("Circo"), + i::__("Cultura Digital"), + i::__("Cultura Urbana e Periférica"), + i::__("Culturas Indígenas"), + i::__("Dança"), + i::__("Patrimônio Cultural Imaterial"), + i::__("Patrimônio Cultural Material"), + i::__("Pontos e Pontões de Cultura"), + i::__("Teatro"), + i::__("Outros"), + ] + ); + + $app->registerTaxonomy(Agent::class, $def); + } } diff --git a/plugins/SettingsPa/layouts/parts/registration-fields/agent-fields-config.php b/plugins/SettingsPa/layouts/parts/registration-fields/agent-fields-config.php new file mode 100644 index 0000000..607297b --- /dev/null +++ b/plugins/SettingsPa/layouts/parts/registration-fields/agent-fields-config.php @@ -0,0 +1,20 @@ +getRegisteredTaxonomyBySlug('segmento'); +foreach ($agent_fields as $field) { + if ($field == "@terms:segmento") { + $segmento_options[] = $field; + } +} +?> +
+ +
+ + +
+ +
\ No newline at end of file diff --git a/plugins/SettingsPa/layouts/parts/registration-fields/agent-fields-form.php b/plugins/SettingsPa/layouts/parts/registration-fields/agent-fields-form.php new file mode 100644 index 0000000..db0e4c6 --- /dev/null +++ b/plugins/SettingsPa/layouts/parts/registration-fields/agent-fields-form.php @@ -0,0 +1,3 @@ +
+ part('registration-field-types/fields/checkboxes') ?> +
\ No newline at end of file