Example #1
0
 /**
  * Single tag route (/tag/@tag)
  * @param \Base $f3
  * @param array $params
  */
 public function single($f3, $params)
 {
     $tag = new \Model\Issue\Tag();
     $tag->load(array("tag = ?", $params["tag"]));
     if (!$tag->id) {
         $f3->error(404);
         return;
     }
     $issue = new \Model\Issue\Detail();
     $issue_ids = implode(',', $tag->issues());
     $f3->set("title", "#" . $params["tag"] . " - " . $f3->get("dict.issue_tags"));
     $f3->set("tag", $tag);
     $f3->set("issues.subset", $issue->find("id IN ({$issue_ids})"));
     $this->_render("tag/single.html");
 }
Example #2
0
 public function tag_single($f3, $params)
 {
     $tag = new \Model\Issue\Tag();
     $issueIds = $tag->issues($params['tag']);
     $return = array();
     if ($issueIds) {
         $issue = new \Model\Issue\Detail();
         $issues = $issue->find(array("id IN (" . implode(",", $issueIds) . ") AND deleted_date IS NULL"));
         foreach ($issues as $item) {
             $return[] = $this->_issueMultiArray($item);
         }
     }
     $this->_printJson($return);
 }
Example #3
0
 /**
  * Finds and saves the current issue's tags
  * @return Issue
  */
 function saveTags()
 {
     $tag = new \Model\Issue\Tag();
     $issue_id = $this->get("id");
     $str = $this->get("description");
     $count = preg_match_all("/(?<=\\W#|^#)[a-z][a-z0-9_-]*[a-z0-9]+(?=\\W|\$)/i", $str, $matches);
     $tag->deleteByIssueId($issue_id);
     if ($count) {
         foreach ($matches[0] as $match) {
             $tag->reset();
             $tag->tag = str_replace("_", "-", $match);
             $tag->issue_id = $issue_id;
             $tag->save();
         }
     }
     return $this;
 }
Example #4
0
 /**
  * Finds and saves the current issue's tags
  * @return Issue
  */
 function saveTags()
 {
     $tag = new \Model\Issue\Tag();
     $issue_id = $this->id;
     $str = $this->description;
     $count = preg_match_all("/(?<=[^a-z\\/&]#|^#)[a-z][a-z0-9_-]*[a-z0-9]+(?=[^a-z\\/]|\$)/i", $str, $matches);
     if ($issue_id) {
         $tag->deleteByIssueId($issue_id);
     }
     if ($count) {
         foreach ($matches[0] as $match) {
             $tag->reset();
             $tag->tag = preg_replace("/[_-]+/", "-", ltrim($match, "#"));
             $tag->issue_id = $issue_id;
             $tag->save();
         }
     }
     return $this;
 }