src/articles/classes/Entity/Article.php
public function beforeSave(ezcQuery $query)
    {
        $query = parent::beforeSave($query);

        /*
         * Если это новая статья — вычисляем новый порядковый номер
         */
        if ($query instanceof ezcQueryInsert)
        {
            $q = $this->getTable()->createSelectQuery(false);
            $q->select('*');
            $e = $q->expr;
            $q->where($e->eq('section', $q->bindValue($this->section, null, PDO::PARAM_INT)));
            $q->orderBy('position', $q::DESC);
            /** @var self $max */
            $max = $this->getTable()->loadOneFromQuery($q);
            $query->set('position',
                $query->bindValue($max->position + 1, ":position", PDO::PARAM_INT));
            /*
             * Обновляем краткое описание, если надо
             */
            if (!$this->preview)
            {
                $this->createPreviewFromText();
                /** @var ezcQueryInsert|ezcQueryUpdate $query */
                $query->set('preview', $query->bindValue($this->preview, ':preview'));
            }
        }

        return $query;
    }
public function beforeSave(ezcQuery $query)
    {
        $query = parent::beforeSave($query);

        /*
         * Если это новая статья — вычисляем новый порядковый номер
         */
        if ($query instanceof ezcQueryInsert)
        {
            $q = $this->getTable()->createSelectQuery(false);
            $q->select('*');
            $e = $q->expr;
            $q->where($e->eq('section', $q->bindValue($this->section, null, PDO::PARAM_INT)));
            $q->orderBy('position', $q::DESC);
            /** @var self $max */
            $max = $this->getTable()->loadOneFromQuery($q);
            $query->set('position',
                $query->bindValue($max->position + 1, ":position", PDO::PARAM_INT));
            /*
             * Обновляем краткое описание, если надо
             */
            if (!$this->preview)
            {
                $this->createPreviewFromText();
                /** @var ezcQueryInsert|ezcQueryUpdate $query */
                $query->set('preview', $query->bindValue($this->preview, ':preview'));
            }
        }

        return $query;
    }
public function beforeSave ( ezcQuery $ query ) { $ query = parent :: beforeSave ( $ query ) ; /*
         * Если это новая статья — вычисляем новый порядковый номер
         */ if ( $ query instanceof ezcQueryInsert ) { $ q = $ this -> getTable ( ) -> createSelectQuery ( false ) ; $ q -> select ( '*' ) ; $ e = $ q -> expr ; $ q -> where ( $ e -> eq ( 'section' , $ q -> bindValue ( $ this -> section , null , PDO :: PARAM_INT ) ) ) ; $ q -> orderBy ( 'position' , $ q :: DESC ) ; /** @var self $max */ $ max = $ this -> getTable ( ) -> loadOneFromQuery ( $ q ) ; $ query -> set ( 'position' , $ query -> bindValue ( $ max -> position + 1 , ":position" , PDO :: PARAM_INT ) ) ; /*
             * Обновляем краткое описание, если надо
             */ if ( ! $ this -> preview ) { $ this -> createPreviewFromText ( ) ; /** @var ezcQueryInsert|ezcQueryUpdate $query */ $ query -> set ( 'preview' , $ query -> bindValue ( $ this -> preview , ':preview' ) ) ; } } return $ query ; }
Действия перед сохранением объекта в БД

@param ezcQuery $query

@return ezcQuery

@since 3.01
Действия перед сохранением объекта в БД