<?php

Goweb::loadClass('Goweb_Setup');

/**
 * Goweb Sitemanager 5 Framework
 * @version    5.0.20
 * @category   Frontoffice
 * @package    Form
 * @subpackage Setup
 * @author     I&D <dev@goweb.pt>, Pedro Pinto <ppinto@goweb.pt>
 * @copyright  2010 (c) Goweb (http://www.goweb.pt)
 *
 * As classes _Setup sao utilizadas para a criacao das tabelas
 * relativas aos Models dos Modulos.
 * Para cada Modulo existente no sistema existem ficheiros (Models)
 * que modelam a base de dados.
 * A partir destes Models que o Setup cria as tabelas referentes
 * aos modulos do sistema a ser instalado.
 *
 */
class Form_Setup extends Goweb_Setup {

    /**
     * Nome do modulo
     *
     * @var string
     */
    protected $_nome       = 'Form';

    /**
     * Titulo do modulo
     *
     * @var string
     */
    protected $_titulo;

    /**
     * Modulo pertence ao menu do backoffice
     *
     * @var boolean
     */
    protected $_menu       = true;

    /**
     * Permitir inclusao de componentes
     *
     * @var boolean
     */
    protected $_componente = true;

    /**
     * Permitir pesquisa no modulo
     *
     * @var boolean
     */
    protected $_pesquisa   = false;

    /**
     * Modulo sujeito a permissoes de utilizadores
     *
     * @var boolean
     */
    protected $_permissao  = true;

    /**
     * Contructor
     */
    public function __construct() {
        $this->_titulo     = translate('Formul&aacute;rios');
    }
    /**
     * Este metodo adiciona os Models necessarios ao
     * setup do modulo.
     */
    public function initModels() {
        $this->addModel('Form_Model_Form');
        $this->addModel('Form_Model_Element');
    }

    /*
     * Este metodo faz uma inicializacao default dos dados necessaria
     * ao funcionamento do Modulo e/ou com intuito de
     * facilitar o Cliente.
     */
    public function initDefaultData() {
        $sqlDir = APPLICATION_PATH . '/Form/sql/';
        if (is_dir($sqlDir)) {
            $formModel = Goweb::getModelInstance('Form_Model_Form', 'db');
            foreach (array(1, 2, 3, 4) as $formId) {
                if (!$formModel->find($formId)) {
                    $formSqlFile = $sqlDir . 'form_id_' . $formId;
                    if (is_file($formSqlFile . '.sql')) {
                        $formModel->getAdapter()->query(file_get_contents($formSqlFile . '.sql'));
                    }
                    foreach ($formModel->getLangs() as $lang){
                        if (is_file($formSqlFile . '_' . $lang . '.sql')) {
                            $formModel->getAdapter()->query(file_get_contents($formSqlFile . '_' . $lang . '.sql'));
                        } else if (is_file($formSqlFile . '_en.sql')) {
                            $formModel->getAdapter()->query(str_replace('_en', '_' . $lang, file_get_contents($formSqlFile . '_en.sql')));
                        }
                    }
                }

            }
        }

    }
}
