A free, self-hostable aggregator…
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

113 lines
2.1 KiB

<?php
class Category extends Model {
private $id;
private $name;
private $color;
public function __construct ($name = '', $color = '#0062BE') {
$this->_name ($name);
$this->_color ($color);
}
public function id () {
return small_hash ($this->name . Configuration::selApplication ());
}
public function name () {
return $this->name;
}
public function color () {
return $this->color;
}
public function _name ($value) {
$this->name = $value;
}
public function _color ($value) {
if (preg_match ('/^#([0-9a-f]{3}|[0-9a-f]{6})$/i', $value)) {
$this->color = $value;
} else {
$this->color = '#0062BE';
}
}
}
class CategoryDAO extends Model_array {
public function __construct () {
parent::__construct (PUBLIC_PATH . '/data/db/Categories.array.php');
}
public function addCategory ($values) {
$id = $values['id'];
unset ($values['id']);
if (!isset ($this->array[$id])) {
$this->array[$id] = array ();
foreach ($values as $key => $value) {
$this->array[$id][$key] = $value;
}
} else {
return false;
}
}
public function updateCategory ($id, $values) {
foreach ($values as $key => $value) {
$this->array[$id][$key] = $value;
}
}
public function deleteCategory ($id) {
if (isset ($this->array[$id])) {
unset ($this->array[$id]);
}
}
public function searchById ($id) {
$list = HelperCategory::daoToCategory ($this->array);
if (isset ($list[$id])) {
return $list[$id];
} else {
return false;
}
}
public function listCategories () {
$list = $this->array;
if (!is_array ($list)) {
$list = array ();
}
return HelperCategory::daoToCategory ($list);
}
public function count () {
return count ($this->array);
}
public function save () {
$this->writeFile ($this->array);
}
}
class HelperCategory {
public static function daoToCategory ($listDAO) {
$list = array ();
if (!is_array ($listDAO)) {
$listDAO = array ($listDAO);
}
foreach ($listDAO as $key => $dao) {
$list[$key] = new Category (
$dao['name'],
$dao['color']
);
}
return $list;
}
}