/** * Converts the wiki [[page]] and [[text|page]] to HTML links. * * @param string $text * * @return string */ public static function wikiLinks($text) { return preg_replace_callback("|\\[\\[(?P<page>[\\w\\d\\-_]+)(\\|(?P<text>[\\s\\w\\d\\-_]+))?\\]\\]|", function ($matches) { $project = currentProject(); if (!$project) { return $matches[0]; } if (!isset($matches['text'])) { $matches['text'] = $matches['page']; } return HTML::link($matches['text'], routePath('wiki_page', ['slug' => $matches['page']])); }, $text); }
<?php $ticket = db()->prepare(' SELECT t.*, u.username AS user_username, s.name AS status_name, tp.name AS type_name, m.name AS milestone_name, m.slug AS milestone_slug, c.name AS component_name FROM ' . PREFIX . 'tickets t LEFT JOIN ' . PREFIX . 'users u ON u.id = t.user_id LEFT JOIN ' . PREFIX . 'statuses s ON s.id = t.status_id LEFT JOIN ' . PREFIX . 'types tp ON tp.id = t.type_id LEFT JOIN ' . PREFIX . 'milestones m ON m.id = t.milestone_id LEFT JOIN ' . PREFIX . 'components c ON c.id = t.component_id WHERE t.ticket_id = ? AND t.project_id = ? LIMIT 1 '); $ticket->bindValue(1, Request::$properties->get('id'), PDO::PARAM_INT); $ticket->bindValue(2, currentProject()['id'], PDO::PARAM_INT); $ticket->execute(); return view('tickets/show.phtml', ['ticket' => $ticket->fetch()]);
<?php /*! * Traq Lite * Copyright (c) 2009-2016 Jack P. * https://github.com/nirix/traq-lite * * Licensed under the BSD 3-Clause license. */ $tickets = db()->prepare(' SELECT t.*, u.username AS user_username, s.name AS status_name, tp.name AS type_name, m.name AS milestone_name, m.slug AS milestone_slug, c.name AS component_name FROM ' . PREFIX . 'tickets t LEFT JOIN ' . PREFIX . 'users u ON u.id = t.user_id LEFT JOIN ' . PREFIX . 'statuses s ON s.id = t.status_id LEFT JOIN ' . PREFIX . 'types tp ON tp.id = t.type_id LEFT JOIN ' . PREFIX . 'milestones m ON m.id = t.milestone_id LEFT JOIN ' . PREFIX . 'components c ON c.id = t.component_id WHERE t.project_id = ? '); $tickets->execute([currentProject()['id']]); return view('tickets/index.phtml', ['tickets' => $tickets->fetchAll()]);
<?php /*! * Traq Lite * Copyright (c) 2009-2016 Jack P. * https://github.com/nirix/traq-lite * * Licensed under the BSD 3-Clause license. */ if (!currentProject()) { return show404(); } return view('projects/show.phtml', ['project' => currentProject()]);
<?php /*! * Traq Lite * Copyright (c) 2009-2016 Jack P. * https://github.com/nirix/traq-lite * * Licensed under the BSD 3-Clause license. */ $milestones = db()->prepare(' SELECT name, slug, description FROM ' . PREFIX . 'milestones WHERE project_id = ? ORDER BY display_order '); $milestones->execute([currentProject()['id']]); return view('roadmap/index.phtml', ['milestones' => $milestones->fetchAll()]);
/** * @param string $append * * @return string */ function projectUrl($append = null) { return baseUrl(currentProject()['slug']) . rtrim('/' . ltrim($append, '/'), '/'); }
*/ use Traq\Models\Ticket; $ticket = new Ticket(['status_id' => 1]); if (Request::$method == 'POST') { $ticketId = currentProject()->get('next_ticket_id'); $ticket->set(['ticket_id' => $ticketId, 'summary' => Request::$post['summary'], 'body' => Request::$post['body'], 'project_id' => currentProject()->get('id'), 'user_id' => currentUser()->get('id'), 'type_id' => Request::$post['type_id'], 'status_id' => Request::$post['status_id'], 'milestone_id' => Request::$post['milestone_id'], 'component_id' => Request::$post['component_id']]); if ($ticket->validate()) { db()->beginTransaction(); $query = db()->prepare(' INSERT INTO ' . PREFIX . 'tickets (ticket_id, summary, body, project_id, user_id, type_id, status_id, milestone_id, component_id, created_at) VALUES (:ticket_id, :summary, :body, :project_id, :user_id, :type_id, :status_id, :milestone_id, :component_id, NOW()) '); $query->bindValue(':ticket_id', $ticket['ticket_id'], PDO::PARAM_INT); $query->bindValue(':summary', $ticket['summary']); $query->bindValue(':body', $ticket['body']); $query->bindValue(':project_id', $ticket['project_id'], PDO::PARAM_INT); $query->bindValue(':user_id', $ticket['user_id'], PDO::PARAM_INT); $query->bindValue(':type_id', $ticket['type_id'], PDO::PARAM_INT); $query->bindValue(':status_id', $ticket['status_id'], PDO::PARAM_INT); $query->bindValue(':milestone_id', $ticket['milestone_id'], PDO::PARAM_INT); $query->bindValue(':component_id', $ticket['component_id'] ?: null); $query->execute(); $update = db()->prepare('UPDATE ' . PREFIX . 'projects SET next_ticket_id = next_ticket_id + 1 WHERE id = ? LIMIT 1'); $update->bindValue(1, currentProject()->get('id'), PDO::PARAM_INT); $update->execute(); db()->commit(); return redirect('/' . currentProject()->get('slug') . '/tickets/' . $ticketId); } } return view('tickets/new.phtml', ['ticket' => $ticket]);
<?php $milestone = db()->prepare(' SELECT * FROM ' . PREFIX . 'milestones WHERE slug = ? AND project_id = ? LIMIT 1 '); $milestone->bindValue(1, Request::$properties->get('slug')); $milestone->bindValue(2, currentProject()['id'], PDO::PARAM_INT); $milestone->execute(); return view('roadmap/show.phtml', ['milestone' => $milestone->fetch()]);