Version: current

     1 <?php
     2
     3 /**
     4  * Записи о голосованиях
     5  *
     6  * @author inxo, menedem
     7  */
     8 class RatingDataObject extends DataObject {
     9
    10     static $db = array(
    11         'Author' => 'Varchar(100)',
    12         'Comment' => 'Text',
    13         'Rate' => 'Int',
    14         'RatingID' => 'Varchar(255)',
    15         'ObjectClass' => 'Varchar(255)',
    16         'ObjectID' => 'Int'
    17     );
    18
    19     static $has_one = array(
    20           'VotedUser' => 'Member'
    21     );
    22
    23     /**
    24      * Получения родителя для этого результата голосования
    25      * @return DataObject
    26      */
    27     public function getParent() {
    28         return DataObject::get_by_id($this->ObjectClass, $this->ObjectID);
    29     }
    30
    31     /**
    32      * Проверка уникальности голосования
    33      * @param String $session Сессия пользователя
    34      * @param String $class Класс объекта
    35      * @param Int $id Идентифиактор объекта
    36      * @param bool $check_parents Проверка родительские голосования TODO: реализовать, не реализовано по причине, что нет всегда четкой структуры родителя и надо что-то придумывать
    37      * @return bool
    38      */
    39     static public function is_unique($ratingID, $class, $id, $check_parents = false) {
    40         if(DataObject::get('RatingDataObject', 'RatingID LIKE \'' . Convert::raw2sql($ratingID) . '\' AND ObjectID =' . $id . ' AND ObjectClass LIKE \'' . $class . '\''))
    41             return false;
    42         return true;
    43     }
    44
    45     // Итератор для вывода оценки
    46     public function RatingIteration() {
    47         $rs = new DataObjectSet();
    48         $rating = $this->Rate;
    49         for($i = 0; $i < $rating; $i++) {
    50             $rs->push(new DataObject(array($i)));
    51         }
    52         return $rs;
    53     }
    54
    55 }
    56

[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the Silverstripe Forums to ask development related questions. -