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, 2 months ago) by roma7
Branches: MAIN
CVS tags: HEAD
Missing Authors field is added to print version

<?php

require_once(dirname(__FILE__)."/DbDatabase.class.php");
require_once(dirname(__FILE__)."/DbPackage/DbPackageGroup.class.php");
require_once(dirname(__FILE__)."/DbPackage/DbPackageTour.class.php");
require_once(dirname(__FILE__)."/DbPackage/DbPackageChamp.class.php");
require_once(dirname(__FILE__)."/DbPackage/DbPackageError.class.php");

class DbPackage {

  protected $tour;
  protected $db;

  public function __construct($row) {
    $this->db = new DbDatabase();

    if (is_object($row)) {
      $this->tour = $row;
      $this->setId();
    } else {
      $this->id = $row;
      $this->loadFromDatabase();
    }
  }    

  protected function setId() {
    $this->id = $this->tour->FileName;
  }

  public static function newFromRow() {
    $tour = new self;
    $tour->tour = $row;
  }    
  
  public static function newFromDb($id) { 
    $db = new DbDatabase;
    $row = $db->getTournament($id);
    if (!$row) {
      return new DbPackageError($id);
    } elseif ($row->Type == 'Г' ) {
      return new DbPackageGroup($row);
    } elseif ($row->Type == 'Ч' ) {
      return new DbPackageChamp($row);
    } elseif ($row->Type == 'Т' ) {
      return new DbPackageTour($row);
    }    
  }

  public function loadFromDatabase() {
    $this->tour = $this->db->getTournament($this->id);
  }
  public function getAll() {
    return false;
  }
  
  protected function getDbId() {
    return $this->tour->Id;
  }
  
  public function getTitle() {
    return $this->tour->Title;
  }
  
  public function getPrintVersion() {
    return 'Please override this function';
  }
  
  public function getLongTitle() {
    return $this->getTitle();
  }
  public function getInfo() {
    return $this->tour->Info;
  }
public function hasEditor() {
    return $this->tour->Editors?TRUE:FALSE;
  }
public function hasInfo() {
    return $this->tour->Editors?TRUE:FALSE;
  }

  public function getEditor() {
    return $this->tour->Editors;
  }

  public function getEditorHtml() {
    $ed = $this->tour->Editors;
    if (preg_match('/\,/', $ed))  {
      $ob = 'Редакторы: ';
    } else {
      $ob = 'Редактор: ';
    }
    return $ob.$ed;
  }
}

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