| | <?php |
| |
|
| | namespace Kanboard\Model; |
| |
|
| | use PDO; |
| | use Kanboard\Core\Base; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | class LinkModel extends Base |
| | { |
| | |
| | |
| | |
| | |
| | |
| | const TABLE = 'links'; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function getById($link_id) |
| | { |
| | return $this->db->table(self::TABLE)->eq('id', $link_id)->findOne(); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function getByLabel($label) |
| | { |
| | return $this->db->table(self::TABLE)->eq('label', $label)->findOne(); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function getOppositeLinkId($link_id) |
| | { |
| | return $this->db->table(self::TABLE)->eq('id', $link_id)->findOneColumn('opposite_id') ?: $link_id; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | public function getAll() |
| | { |
| | return $this->db->table(self::TABLE)->findAll(); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | public function getMergedList() |
| | { |
| | return $this->db |
| | ->execute(' |
| | SELECT |
| | links.id, links.label, opposite.label as opposite_label |
| | FROM links |
| | LEFT JOIN links AS opposite ON opposite.id=links.opposite_id |
| | ') |
| | ->fetchAll(PDO::FETCH_ASSOC); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function getList($exclude_id = 0, $prepend = true) |
| | { |
| | $labels = $this->db->hashtable(self::TABLE)->neq('id', $exclude_id)->asc('id')->getAll('id', 'label'); |
| |
|
| | foreach ($labels as &$value) { |
| | $value = t($value); |
| | } |
| |
|
| | return $prepend ? array('') + $labels : $labels; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function create($label, $opposite_label = '') |
| | { |
| | $this->db->startTransaction(); |
| |
|
| | if (! $this->db->table(self::TABLE)->insert(array('label' => $label))) { |
| | $this->db->cancelTransaction(); |
| | return false; |
| | } |
| |
|
| | $label_id = $this->db->getLastId(); |
| |
|
| | if (! empty($opposite_label)) { |
| | $this->db |
| | ->table(self::TABLE) |
| | ->insert(array( |
| | 'label' => $opposite_label, |
| | 'opposite_id' => $label_id, |
| | )); |
| |
|
| | $this->db |
| | ->table(self::TABLE) |
| | ->eq('id', $label_id) |
| | ->update(array( |
| | 'opposite_id' => $this->db->getLastId() |
| | )); |
| | } |
| |
|
| | $this->db->closeTransaction(); |
| |
|
| | return (int) $label_id; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function update(array $values) |
| | { |
| | return $this->db |
| | ->table(self::TABLE) |
| | ->eq('id', $values['id']) |
| | ->update(array( |
| | 'label' => $values['label'], |
| | 'opposite_id' => $values['opposite_id'], |
| | )); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function remove($link_id) |
| | { |
| | $this->db->table(self::TABLE)->eq('opposite_id', $link_id)->update(array('opposite_id' => 0)); |
| | return $this->db->table(self::TABLE)->eq('id', $link_id)->remove(); |
| | } |
| | } |
| |
|