Вход Регистрация
Файл: silawar.ru/protected/models/Guilds.php
Строк: 107
<?php
class Guilds extends CActiveRecord {

    public 
$text;
    public 
$price 100;
    
    public function 
tableName() {
        return 
'guilds';
    }

    public function 
rules() {
        return array(
            array(
'level, iron, xp, money''numerical''integerOnly' => true),
            array(
'money''checkMoney''on' => 'insert'),
            array(
'name''unique''className' => 'Guilds''caseSensitive' => false),
            array(
'name''match''pattern' => '/^[а-яА-ЯёЁa-zA-Z][а-яА-ЯёЁa-zA-Z0-9-_s]{2,16}$/u''allowEmpty'=>false'message' => 'Название гильдии содержит запрещённые символы'),
            array(
'name''length''min' => 3'max' => 16'tooShort' => 'Название гильдии должно быть длиной от 3 до 16 символов''tooLong' => 'Название гильдии должно быть длиной от 3 до 16 символов'),
            array(
'text''length''max' => 64'tooLong' => 'Объявление гильдии должно быть больше 64 символов'),
            array(
'id_guild, logo, created, side''safe'),
        );
    }

    public function 
checkMoney($attribute,$params) {
        if(
$this->$attribute $this->price*100)
            
$this->addError('name',Yii::t('layout','У Вас недостаточно золота чтобы создать гильдию'));
    }
        
    public function 
relations() {
        return array(
            
'users' => array(self::HAS_MANY'Users''guild_id''order'=>'users.guild_rank DESC, users.guild_xp DESC'),
            
'buildings' => array(self::HAS_MANY'GuildsBuildings''id_guild'),
        );
    }

    public function 
behaviors() {
        return array(
'CAdvancedArBehavior' => array(
            
'class' => 'application.extensions.CAdvancedArBehavior.CAdvancedArBehavior'));
    }
    
    public function 
attributeLabels() {
        return array(
            
'id_guild' => 'Id Guild',
            
'name' => 'Название гильдии:',
            
'info' => 'Новое объявление:',
            
'text' => 'Новое объявление:',
            
'level' => 'Уровень',
            
'xp' => 'Опыт',
            
'money' => 'Золото',
            
'iron' => 'Железо',
            
'rank_invite' => 'Приглашать в гильдию может:',
            
'rank_kick' => 'Выгонять из гильдии может:',
        );
    }

    protected function 
beforeSave() {
        if (
parent::beforeSave()) {
            if (
$this->isNewRecord) {
                
$this->created time();
            }
            return 
true;
        } else {
            return 
false;
        }
    }
    
    
/**
     * Проверяет состоит ли человек в клане и есть ли у него новые объявления
     * @return boolean
     */
    
public static function checkGuildInfo() {
        if (!
Yii::app()->user->isGuest) {
            
$user Users::checkForGuild();
            if (
$user && Yii::app()->controller->id != 'guild') {
                
$criteria = new CDbCriteria;
                
$criteria->select = array('info''info_time''info_creator');
                if (
Yii::app()->request->cookies['guild_info_time'])
                    
$criteria->addCondition('info_time > '.Yii::app()->request->cookies['guild_info_time']);
                
$criteria->compare('id_guild'$user->guild_id);
                return 
self::model()->find($criteria); 
            } 
        }
        return 
false;
    }
    
    
/**
     * Выводим название клана
     * @param type $id_guild
     * @return null
     */
    
public static function getName($id_guild) {
        
$guild self::model()->findByPk($id_guild);
        return 
'<img src="/images/icons/guild_'.$guild->side.'.png" alt="*"> '.$guild->name;
    }
    
    public function 
search() {
        
$criteria = new CDbCriteria;

        
$criteria->compare('id_guild'$this->id_guild);
        
$criteria->compare('name'$this->nametrue);
        
$criteria->compare('info'$this->infotrue);
        
$criteria->compare('level'$this->level);
        
$criteria->compare('xp'$this->xp);
        
$criteria->compare('money'$this->money);
        
$criteria->compare('iron'$this->iron);
        
$criteria->compare('logo'$this->logo);

        return new 
CActiveDataProvider($this, array(
            
'criteria' => $criteria,
        ));
    }

    public static function 
model($className __CLASS__) {
        return 
parent::model($className);
    }
}
Онлайн: 2
Реклама