File:  [Local Repository] / db / prgsrc / drupal / modules / chgk_db / classes / DbPackage.class.php
Revision 1.3: download - view: text, annotated - select for diffs - revision graph
Tue Mar 9 21:08:33 2010 UTC (14 years, 3 months ago) by roma7
Branches: MAIN
CVS tags: HEAD
Missing Authors field is added to print version

    1: <?php
    2: 
    3: require_once(dirname(__FILE__)."/DbDatabase.class.php");
    4: require_once(dirname(__FILE__)."/DbPackage/DbPackageGroup.class.php");
    5: require_once(dirname(__FILE__)."/DbPackage/DbPackageTour.class.php");
    6: require_once(dirname(__FILE__)."/DbPackage/DbPackageChamp.class.php");
    7: require_once(dirname(__FILE__)."/DbPackage/DbPackageError.class.php");
    8: 
    9: class DbPackage {
   10: 
   11:   protected $tour;
   12:   protected $db;
   13: 
   14:   public function __construct($row) {
   15:     $this->db = new DbDatabase();
   16: 
   17:     if (is_object($row)) {
   18:       $this->tour = $row;
   19:       $this->setId();
   20:     } else {
   21:       $this->id = $row;
   22:       $this->loadFromDatabase();
   23:     }
   24:   }    
   25: 
   26:   protected function setId() {
   27:     $this->id = $this->tour->FileName;
   28:   }
   29: 
   30:   public static function newFromRow() {
   31:     $tour = new self;
   32:     $tour->tour = $row;
   33:   }    
   34:   
   35:   public static function newFromDb($id) { 
   36:     $db = new DbDatabase;
   37:     $row = $db->getTournament($id);
   38:     if (!$row) {
   39:       return new DbPackageError($id);
   40:     } elseif ($row->Type == 'Г' ) {
   41:       return new DbPackageGroup($row);
   42:     } elseif ($row->Type == 'Ч' ) {
   43:       return new DbPackageChamp($row);
   44:     } elseif ($row->Type == 'Т' ) {
   45:       return new DbPackageTour($row);
   46:     }    
   47:   }
   48: 
   49:   public function loadFromDatabase() {
   50:     $this->tour = $this->db->getTournament($this->id);
   51:   }
   52:   public function getAll() {
   53:     return false;
   54:   }
   55:   
   56:   protected function getDbId() {
   57:     return $this->tour->Id;
   58:   }
   59:   
   60:   public function getTitle() {
   61:     return $this->tour->Title;
   62:   }
   63:   
   64:   public function getPrintVersion() {
   65:     return 'Please override this function';
   66:   }
   67:   
   68:   public function getLongTitle() {
   69:     return $this->getTitle();
   70:   }
   71:   public function getInfo() {
   72:     return $this->tour->Info;
   73:   }
   74: public function hasEditor() {
   75:     return $this->tour->Editors?TRUE:FALSE;
   76:   }
   77: public function hasInfo() {
   78:     return $this->tour->Editors?TRUE:FALSE;
   79:   }
   80: 
   81:   public function getEditor() {
   82:     return $this->tour->Editors;
   83:   }
   84: 
   85:   public function getEditorHtml() {
   86:     $ed = $this->tour->Editors;
   87:     if (preg_match('/\,/', $ed))  {
   88:       $ob = 'Редакторы: ';
   89:     } else {
   90:       $ob = 'Редактор: ';
   91:     }
   92:     return $ob.$ed;
   93:   }
   94: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>