<commit_before><?php

namespace MapasCulturais\Themes\BaseV1;

use MapasCulturais;
use MapasCulturais\App;
use MapasCulturais\Entities;
use MapasCulturais\Entities\Notification;

class Theme extends MapasCulturais\Theme {

    protected $_libVersions = array(
        'leaflet' => '0.7.3',
        'angular' => '1.5.5',
        'jquery' => '2.1.1',
        'jquery-ui' => '1.11.4',
        'select2' => '3.5.0',
        'magnific-popup' => '0.9.9',
        'x-editable' => 'jquery-editable-dev-1.5.2'
    );

    static function getThemeFolder() {
        return __DIR__;
    }

    protected static function _getTexts(){
        return array(
            'site: name' => App::i()->config['app.siteName'],
            'site: description' => App::i()->config['app.siteDescription'],
            'site: in the region' => 'na região',
            'site: of the region' => 'da região',
            'site: owner' => 'Secretaria',
            'site: by the site owner' => 'pela Secretaria',

            'home: title' => "Bem-vind@!",
            'home: abbreviation' => "MC",
            'home: colabore' => "Colabore com o Mapas Culturais",
            'home: welcome' => "O Mapas Culturais é uma plataforma livre, gratuita e colaborativa de mapeamento cultural.",
            'home: events' => "Você pode pesquisar eventos culturais nos campos de busca combinada. Como usuário cadastrado, você pode incluir seus eventos na plataforma e divulgá-los gratuitamente.",
            'home: agents' => "Você pode colaborar na gestão da cultura com suas próprias informações, preenchendo seu perfil de agente cultural. Neste espaço, estão registrados artistas, gestores e produtores; uma rede de atores envolvidos na cena cultural da região. Você pode cadastrar um ou mais agentes (grupos, coletivos, bandas instituições, empresas, etc.), além de associar ao seu perfil eventos e espaços culturais com divulgação gratuita.",
            'home: spaces' => "Procure por espaços culturais incluídos na plataforma, acessando os campos de busca combinada que ajudam na precisão de sua pesquisa. Cadastre também os espaços onde desenvolve suas atividades artísticas e culturais.",
            'home: projects' => "Reúne projetos culturais ou agrupa eventos de todos os tipos. Neste espaço, você encontra leis de fomento, mostras, convocatórias e editais criados, além de diversas iniciativas cadastradas pelos usuários da plataforma. Cadastre-se e divulgue seus projetos.",
            'home: saas' => "Reúne as instalações de Mapas Culturais que estão como SaaS.",
            'home: home_devs' => 'Existem algumas maneiras de desenvolvedores interagirem com o Mapas Culturais. A primeira é através da nossa <a href="https://github.com/hacklabr/mapasculturais/blob/master/doc/api.md" target="_blank">API</a>. Com ela você pode acessar os dados públicos no nosso banco de dados e utilizá-los para desenvolver aplicações externas. Além disso, o Mapas Culturais é construído a partir do sofware livre <a href="http://institutotim.org.br/project/mapas-culturais/" target="_blank">Mapas Culturais</a>, criado em parceria com o <a href="http://institutotim.org.br" target="_blank">Instituto TIM</a>, e você pode contribuir para o seu desenvolvimento através do <a href="https://github.com/hacklabr/mapasculturais/" target="_blank">GitHub</a>.',

            'search: verified results' => 'Resultados Verificados',
            'search: verified' => "Verificados",


            'entities: Spaces of the agent'=> 'Espaços do agente',
            'entities: Space Description'=> 'Descrição do Espaço',
            'entities: Agent children'=> 'Agentes',
            'entities: My Spaces'=> 'Meus Espaços',
            'entities: My spaces'=> 'Meus espaços',

            'entities: SaaS Description'=> 'Descrição do SaaS',
            'entities: My SaaS'=> 'Meus SaaS',
            'entities: My saas'=> 'Meus Saas',
            'entities: Saas' => 'Saas',
            'entities: SaaS' => 'SaaS',
            'entities: no registered saas'=> 'nenhum saas cadastrado',
            'entities: no saas'=> 'nenhum saas',

            'entities: no registered spaces'=> 'nenhum espaço cadastrado',
            'entities: no spaces'=> 'nenhum espaço',

            'entities: Space' => 'Espaço',
            'entities: Spaces' => 'Espaços',
            'entities: space' => 'espaço',
            'entities: spaces' => 'espaços',
            'entities: parent space' => 'espaço pai',
            'entities: a space' => 'um espaço',
            'entities: the space' => 'o espaço',
            'entities: of the space' => 'do espaço',
            'entities: In this space' => 'Neste espaço',
            'entities: in this space' => 'neste espaço',
            'entities: registered spaces' => 'espaços cadastrados',
            'entities: new space' => 'novo espaço',

            'entities: space found' => 'espaço encontrado',
            'entities: spaces found' => 'espaços encontrados',
            'entities: event found' => 'evento encontrado',
            'entities: events found' => 'eventos encontrados',
            'entities: agent found' => 'agente encontrado',
            'entities: agents found' => 'agentes encontrados',
            'entities: project found' => 'projeto encontrado',
            'entities: project found' => 'projetos encontrados'
        );
    }

    function getSearchAgentsUrl(){
        return App::i()->createUrl('site', 'search')."##(global:(enabled:(agent:!t),filterEntity:agent))";
    }

    function getSearchSpacesUrl(){
        return App::i()->createUrl('site', 'search')."##(global:(enabled:(space:!t),filterEntity:space))";
    }

    function getSearchEventsUrl(){
        return App::i()->createUrl('site', 'search')."##(global:(enabled:(event:!t),filterEntity:event))";
    }

    function getSearchProjectsUrl(){
        return App::i()->createUrl('site', 'search')."##(global:(filterEntity:project,viewMode:list))";;
    }

    protected function _init() {
        $app = App::i();



        $app->hook('mapasculturais.body:before', function() {
            if($this->controller && ($this->controller->action == 'single' || $this->controller->action == 'edit' )): ?>
                <!--facebook compartilhar-->
                    <div id="fb-root"></div>
                    <script>(function(d, s, id) {
                      var js, fjs = d.getElementsByTagName(s)[0];
                      if (d.getElementById(id)) return;
                      js = d.createElement(s); js.id = id;
                      js.src = "//connect.facebook.net/pt_BR/all.js#xfbml=1";
                      fjs.parentNode.insertBefore(js, fjs);
                    }(document, 'script', 'facebook-jssdk'));</script>
                <!--fim do facebook-->
                <?php
            endif;
        });

        $this->jsObject['notificationsInterval'] = $app->config['notifications.interval'];

        $this->jsObject['infoboxFields'] = 'id,singleUrl,name,subTitle,type,shortDescription,terms,project.name,project.singleUrl';

        $this->jsObject['EntitiesDescription'] = [
        		"agent" => \MapasCulturais\Entities\Agent::getPropertiesMetadata(),
        		"event" => \MapasCulturais\Entities\Event::getPropertiesMetadata(),
        		"space" => \MapasCulturais\Entities\Space::getPropertiesMetadata(),
        		"project" => \MapasCulturais\Entities\Project::getPropertiesMetadata(),
            "saas" => \MapasCulturais\Entities\SaaS::getPropertiesMetadata()
        ];

        $app->hook('view.render(<<*>>):before', function() use($app) {
            $this->assetManager->publishAsset('css/main.css.map', 'css/main.css.map');

            $this->jsObject['assets'] = array();
            $this->jsObject['templateUrl'] = array();
            $this->jsObject['spinnerUrl'] = $this->asset('img/spinner.gif', false);

            $this->jsObject['assets']['fundo'] = $this->asset('img/fundo.png', false);
            $this->jsObject['assets']['instituto-tim'] = $this->asset('img/instituto-tim-white.png', false);
            $this->jsObject['assets']['verifiedIcon'] = $this->asset('img/verified-icon.png', false);
            $this->jsObject['assets']['avatarAgent'] = $this->asset('img/avatar--agent.png', false);
            $this->jsObject['assets']['avatarSpace'] = $this->asset('img/avatar--space.png', false);
            $this->jsObject['assets']['avatarEvent'] = $this->asset('img/avatar--event.png', false);
            $this->jsObject['assets']['avatarProject'] = $this->asset('img/avatar--project.png', false);

            $this->jsObject['isEditable'] = $this->isEditable();
            $this->jsObject['isSearch'] = $this->isSearch();

            $this->jsObject['angularAppDependencies'] = [
                'entity.module.relatedAgents',
                'entity.module.changeOwner',
                'entity.directive.editableMultiselect',
                'entity.directive.editableSingleselect',

                'mc.directive.singleselect',
                'mc.directive.multiselect',
                'mc.directive.editBox',
                'mc.directive.mcSelect',
                'mc.module.notifications',
                'mc.module.findEntity',

                'ngSanitize',
            ];

            $mapConfigs = [ 'zoomMax'             => 'maps.zoom.max',
                            'zoomMin'             => 'maps.zoom.min',
                            'zoomDefault'         => 'maps.zoom.default',
                            'zoomPrecise'         => 'maps.zoom.precise',
                            'zoomApproximate'     => 'maps.zoom.approximate',
                            //'includeGoogleLayers' => 'maps.includeGoogleLayers'
                          ];

            foreach ($mapConfigs as $cfg => $jsCfg) {
              if($app->isEnabled('saas') && isset($jsCfg,$app->config['saas'])) {
                $this->jsObject['mapsDefaults'][$cfg] = $app->config['saas'][$jsCfg];
              } else {
                $this->jsObject['mapsDefaults'][$cfg] = $app->config[$jsCfg];
              }
            }
            $this->jsObject['mapsDefaults']['includeGoogleLayers'] = $app->config['maps.includeGoogleLayers'];

            if($app->isEnabled('saas') && in_array('latitude',$app->config['saas'])) {
              $this->jsObject['mapsDefaults']['latitude'] = $app->config['saas']['maps.center'][0];
              $this->jsObject['mapsDefaults']['longitude'] = $app->config['saas']['maps.center'][1];
            } else {<commit_msg>Fix not found maps.zoom.max properties reading saas config, it will take default config if a configurations is empty.<commit_after><?php

namespace MapasCulturais\Themes\BaseV1;

use MapasCulturais;
use MapasCulturais\App;
use MapasCulturais\Entities;
use MapasCulturais\Entities\Notification;

class Theme extends MapasCulturais\Theme {

    protected $_libVersions = array(
        'leaflet' => '0.7.3',
        'angular' => '1.5.5',
        'jquery' => '2.1.1',
        'jquery-ui' => '1.11.4',
        'select2' => '3.5.0',
        'magnific-popup' => '0.9.9',
        'x-editable' => 'jquery-editable-dev-1.5.2'
    );

    static function getThemeFolder() {
        return __DIR__;
    }

    protected static function _getTexts(){
        return array(
            'site: name' => App::i()->config['app.siteName'],
            'site: description' => App::i()->config['app.siteDescription'],
            'site: in the region' => 'na região',
            'site: of the region' => 'da região',
            'site: owner' => 'Secretaria',
            'site: by the site owner' => 'pela Secretaria',

            'home: title' => "Bem-vind@!",
            'home: abbreviation' => "MC",
            'home: colabore' => "Colabore com o Mapas Culturais",
            'home: welcome' => "O Mapas Culturais é uma plataforma livre, gratuita e colaborativa de mapeamento cultural.",
            'home: events' => "Você pode pesquisar eventos culturais nos campos de busca combinada. Como usuário cadastrado, você pode incluir seus eventos na plataforma e divulgá-los gratuitamente.",
            'home: agents' => "Você pode colaborar na gestão da cultura com suas próprias informações, preenchendo seu perfil de agente cultural. Neste espaço, estão registrados artistas, gestores e produtores; uma rede de atores envolvidos na cena cultural da região. Você pode cadastrar um ou mais agentes (grupos, coletivos, bandas instituições, empresas, etc.), além de associar ao seu perfil eventos e espaços culturais com divulgação gratuita.",
            'home: spaces' => "Procure por espaços culturais incluídos na plataforma, acessando os campos de busca combinada que ajudam na precisão de sua pesquisa. Cadastre também os espaços onde desenvolve suas atividades artísticas e culturais.",
            'home: projects' => "Reúne projetos culturais ou agrupa eventos de todos os tipos. Neste espaço, você encontra leis de fomento, mostras, convocatórias e editais criados, além de diversas iniciativas cadastradas pelos usuários da plataforma. Cadastre-se e divulgue seus projetos.",
            'home: saas' => "Reúne as instalações de Mapas Culturais que estão como SaaS.",
            'home: home_devs' => 'Existem algumas maneiras de desenvolvedores interagirem com o Mapas Culturais. A primeira é através da nossa <a href="https://github.com/hacklabr/mapasculturais/blob/master/doc/api.md" target="_blank">API</a>. Com ela você pode acessar os dados públicos no nosso banco de dados e utilizá-los para desenvolver aplicações externas. Além disso, o Mapas Culturais é construído a partir do sofware livre <a href="http://institutotim.org.br/project/mapas-culturais/" target="_blank">Mapas Culturais</a>, criado em parceria com o <a href="http://institutotim.org.br" target="_blank">Instituto TIM</a>, e você pode contribuir para o seu desenvolvimento através do <a href="https://github.com/hacklabr/mapasculturais/" target="_blank">GitHub</a>.',

            'search: verified results' => 'Resultados Verificados',
            'search: verified' => "Verificados",


            'entities: Spaces of the agent'=> 'Espaços do agente',
            'entities: Space Description'=> 'Descrição do Espaço',
            'entities: Agent children'=> 'Agentes',
            'entities: My Spaces'=> 'Meus Espaços',
            'entities: My spaces'=> 'Meus espaços',

            'entities: SaaS Description'=> 'Descrição do SaaS',
            'entities: My SaaS'=> 'Meus SaaS',
            'entities: My saas'=> 'Meus Saas',
            'entities: Saas' => 'Saas',
            'entities: SaaS' => 'SaaS',
            'entities: no registered saas'=> 'nenhum saas cadastrado',
            'entities: no saas'=> 'nenhum saas',

            'entities: no registered spaces'=> 'nenhum espaço cadastrado',
            'entities: no spaces'=> 'nenhum espaço',

            'entities: Space' => 'Espaço',
            'entities: Spaces' => 'Espaços',
            'entities: space' => 'espaço',
            'entities: spaces' => 'espaços',
            'entities: parent space' => 'espaço pai',
            'entities: a space' => 'um espaço',
            'entities: the space' => 'o espaço',
            'entities: of the space' => 'do espaço',
            'entities: In this space' => 'Neste espaço',
            'entities: in this space' => 'neste espaço',
            'entities: registered spaces' => 'espaços cadastrados',
            'entities: new space' => 'novo espaço',

            'entities: space found' => 'espaço encontrado',
            'entities: spaces found' => 'espaços encontrados',
            'entities: event found' => 'evento encontrado',
            'entities: events found' => 'eventos encontrados',
            'entities: agent found' => 'agente encontrado',
            'entities: agents found' => 'agentes encontrados',
            'entities: project found' => 'projeto encontrado',
            'entities: project found' => 'projetos encontrados'
        );
    }

    function getSearchAgentsUrl(){
        return App::i()->createUrl('site', 'search')."##(global:(enabled:(agent:!t),filterEntity:agent))";
    }

    function getSearchSpacesUrl(){
        return App::i()->createUrl('site', 'search')."##(global:(enabled:(space:!t),filterEntity:space))";
    }

    function getSearchEventsUrl(){
        return App::i()->createUrl('site', 'search')."##(global:(enabled:(event:!t),filterEntity:event))";
    }

    function getSearchProjectsUrl(){
        return App::i()->createUrl('site', 'search')."##(global:(filterEntity:project,viewMode:list))";;
    }

    protected function _init() {
        $app = App::i();



        $app->hook('mapasculturais.body:before', function() {
            if($this->controller && ($this->controller->action == 'single' || $this->controller->action == 'edit' )): ?>
                <!--facebook compartilhar-->
                    <div id="fb-root"></div>
                    <script>(function(d, s, id) {
                      var js, fjs = d.getElementsByTagName(s)[0];
                      if (d.getElementById(id)) return;
                      js = d.createElement(s); js.id = id;
                      js.src = "//connect.facebook.net/pt_BR/all.js#xfbml=1";
                      fjs.parentNode.insertBefore(js, fjs);
                    }(document, 'script', 'facebook-jssdk'));</script>
                <!--fim do facebook-->
                <?php
            endif;
        });

        $this->jsObject['notificationsInterval'] = $app->config['notifications.interval'];

        $this->jsObject['infoboxFields'] = 'id,singleUrl,name,subTitle,type,shortDescription,terms,project.name,project.singleUrl';

        $this->jsObject['EntitiesDescription'] = [
        		"agent" => \MapasCulturais\Entities\Agent::getPropertiesMetadata(),
        		"event" => \MapasCulturais\Entities\Event::getPropertiesMetadata(),
        		"space" => \MapasCulturais\Entities\Space::getPropertiesMetadata(),
        		"project" => \MapasCulturais\Entities\Project::getPropertiesMetadata(),
            "saas" => \MapasCulturais\Entities\SaaS::getPropertiesMetadata()
        ];

        $app->hook('view.render(<<*>>):before', function() use($app) {
            $this->assetManager->publishAsset('css/main.css.map', 'css/main.css.map');

            $this->jsObject['assets'] = array();
            $this->jsObject['templateUrl'] = array();
            $this->jsObject['spinnerUrl'] = $this->asset('img/spinner.gif', false);

            $this->jsObject['assets']['fundo'] = $this->asset('img/fundo.png', false);
            $this->jsObject['assets']['instituto-tim'] = $this->asset('img/instituto-tim-white.png', false);
            $this->jsObject['assets']['verifiedIcon'] = $this->asset('img/verified-icon.png', false);
            $this->jsObject['assets']['avatarAgent'] = $this->asset('img/avatar--agent.png', false);
            $this->jsObject['assets']['avatarSpace'] = $this->asset('img/avatar--space.png', false);
            $this->jsObject['assets']['avatarEvent'] = $this->asset('img/avatar--event.png', false);
            $this->jsObject['assets']['avatarProject'] = $this->asset('img/avatar--project.png', false);

            $this->jsObject['isEditable'] = $this->isEditable();
            $this->jsObject['isSearch'] = $this->isSearch();

            $this->jsObject['angularAppDependencies'] = [
                'entity.module.relatedAgents',
                'entity.module.changeOwner',
                'entity.directive.editableMultiselect',
                'entity.directive.editableSingleselect',

                'mc.directive.singleselect',
                'mc.directive.multiselect',
                'mc.directive.editBox',
                'mc.directive.mcSelect',
                'mc.module.notifications',
                'mc.module.findEntity',

                'ngSanitize',
            ];

            $mapConfigs = [ 'zoomMax'             => 'maps.zoom.max',
                            'zoomMin'             => 'maps.zoom.min',
                            'zoomDefault'         => 'maps.zoom.default',
                            'zoomPrecise'         => 'maps.zoom.precise',
                            'zoomApproximate'     => 'maps.zoom.approximate',
                            //'includeGoogleLayers' => 'maps.includeGoogleLayers'
                          ];
            $cfgValue = "";
            foreach ($mapConfigs as $cfg => $jsCfg) {
              if($app->isEnabled('saas') && isset($jsCfg,$app->config['saas'])) {
                if(isset($app->config['saas'][$jsCfg])) {
                  $cfgValue = $app->config['saas'][$jsCfg];
                } else {
                  $cfgValue = $app->config[$jsCfg];
                }
              } else {
                $cfgValue = $app->config[$jsCfg];
              }
                $this->jsObject['mapsDefaults'][$cfg] = $cfgValue;
            }
            $this->jsObject['mapsDefaults']['includeGoogleLayers'] = $app->config['maps.includeGoogleLayers'];

            if($app->isEnabled('saas') && in_array('latitude',$app->config['saas'])) {
              $this->jsObject['mapsDefaults']['latitude'] = $app->config['saas']['maps.center'][0];
              $this->jsObject['mapsDefaults']['longitude'] = $app->config['saas']['maps.center'][1];
            } else {
{'fraction_non_alphanumeric': 0.15457916725343848, 'fraction_numerical': 0.002628737736469042, 'mean_word_length': 2.4787720444154147, 'pattern_counts': {'":': 0, '<': 39, '<?xml version=': 0, '>': 292, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6713654', 'n_tokens_mistral': 6457, 'n_tokens_neox': 6463, 'n_words': 1394}