255), array('pagina_web', 'url', 'defaultScheme' => 'http'), array('email', 'email'), array('descripcion, ficheroLogotipo', 'safe'), array('ficheroLogotipo', 'file', 'types' => 'jpg', 'maxSize' => 1024 * 1024 * 1, // 1MB como máximo 'tooLarge' => Yii::t('profind', 'La imagen es demasiado pesada. Elija otra más pequeña.'), 'wrongType' => Yii::t('profind', 'Sólo se permiten imágenes en formato JPG.'), 'allowEmpty' => 'true', ), array('id, cif, nombre, email, pagina_web, empleados, direccion, descripcion', 'safe', 'on' => 'search'), ); } /** * @return array relational rules. */ public function relations() { // NOTE: you may need to adjust the relation name and the related // class name for the relations automatically generated below. return array( 'usuarios' => array(self::HAS_MANY, 'Usuario', 'id_empresa'), ); } /** * @return array customized attribute labels (name=>label) */ public function attributeLabels() { return array( 'id' => 'ID', 'ficheroLogotipo' => 'Logotipo', 'cif' => 'CIF', 'nombre' => 'Nombre', 'email2' => 'Email', 'pagina_web' => 'Página web', 'empleados' => 'Nº de empleados', 'direccion' => 'Dirección', 'descripcion' => 'Descripción', ); } /** * Retrieves a list of models based on the current search/filter conditions. * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions. */ public function search() { // Warning: Please modify the following code to remove attributes that // should not be searched. $criteria = new CDbCriteria; $criteria->compare('id',$this->id); $criteria->compare('cif',$this->cif,true); $criteria->compare('nombre',$this->nombre,true); $criteria->compare('email',$this->email,true); $criteria->compare('pagina_web',$this->pagina_web,true); $criteria->compare('empleados',$this->empleados); $criteria->compare('direccion',$this->direccion,true); $criteria->compare('descripcion',$this->descripcion,true); return new CActiveDataProvider($this, array( 'criteria' => $criteria, )); } protected function afterFind() { parent::afterFind(); $this->logotipo = new FotografiaPerfil(); $this->logotipo->modelo = $this; } protected function afterConstruct() { parent::afterConstruct(); $this->logotipo = new FotografiaPerfil(); $this->logotipo->modelo = $this; } protected function afterSave() { parent::afterSave(); if ($this->isNewRecord) $this->createUploadDir(); } protected function afterDelete() { parent::afterDelete(); $this->deleteUploadDir(); } /* * Devuelve la ruta con los ficheros de la empresa. * Incluye el separador de directorios al final de la ruta. * @return string ruta */ public function getUploadPath() { return Yii::getPathOfAlias('application.uploads.empresas') . DIRECTORY_SEPARATOR . $this->id . DIRECTORY_SEPARATOR; } /* * Crea un directorio para almacenar ficheros de la empresa * @return boolean */ private function createUploadDir() { $upload = $this->getUploadPath(); if(!is_dir($upload)) { return mkdir($upload); } else return false; } /* * Elimina el directorio de la empresa y todos sus ficheros * @return boolean */ private function deleteUploadDir() { $upload = $this->getUploadPath(); if(is_dir($upload)) { require_once( Yii::getPathOfAlias('application.helpers') . DIRECTORY_SEPARATOR . 'recursive_remove_directory.php'); return recursive_remove_directory($upload); } else return false; } }