<?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() {
$info = $this->tour->Info;
$info = preg_replace('/(\s+)-+(\s+)/','\1—$2', $info);
return $info;
}
public function hasEditor() {
return $this->tour->Editors?TRUE:FALSE;
}
public function hasInfo() {
return $this->tour->Info?TRUE:FALSE;
}
public function getEditor() {
return $this->tour->Editors;
}
public function getEditorHtml() {
$ed = $this->tour->Editors;
$ed = preg_replace('/(\s+)-+(\s+)/','\1—$2', $ed);
if (preg_match('/\,/', $ed)) {
$ob = 'Редакторы: ';
} else {
$ob = 'Редактор: ';
}
return $ob.$ed;
}
}
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>