Exemple #1
0
 /**
  * Pre-execute function
  *
  * @param framework\Request     $request
  * @param string        $action
  */
 public function preExecute(framework\Request $request, $action)
 {
     if (!$request->hasParameter('section')) {
         return;
     }
     // forward 403 if you're not allowed here
     if ($request->isAjaxCall() == false) {
         $this->forward403unless(framework\Context::getUser()->canAccessConfigurationPage($request['section']));
     }
     $this->access_level = $this->getAccessLevel($request['section'], 'core');
     if (!$request->isAjaxCall()) {
         $this->getResponse()->setPage('config');
         framework\Context::loadLibrary('ui');
         $this->getResponse()->addBreadcrumb(framework\Context::getI18n()->__('Configure %thebuggenie_name', array('%thebuggenie_name' => framework\Settings::getSiteHeaderName())), framework\Context::getRouting()->generate('configure'), $this->getResponse()->getPredefinedBreadcrumbLinks('configure'));
     }
 }
fonts/open_sans_bold_italic.woff') format('woff'), url('<?php 
echo $webroot;
?>
fonts/open_sans_bold_italic.ttf') format('truetype');
            }
        </style>
        <link rel="shortcut icon" href="<?php 
if (\thebuggenie\core\framework\Settings::isUsingCustomFavicon()) {
    echo \thebuggenie\core\framework\Settings::getFaviconURL();
} else {
    echo image_url('favicon.png');
}
?>
">
        <link title="<?php 
echo \thebuggenie\core\framework\Context::isProjectContext() ? __('%project_name search', array('%project_name' => \thebuggenie\core\framework\Context::getCurrentProject()->getName())) : __('%site_name search', array('%site_name' => \thebuggenie\core\framework\Settings::getSiteHeaderName()));
?>
" href="<?php 
echo \thebuggenie\core\framework\Context::isProjectContext() ? make_url('project_opensearch', array('project_key' => \thebuggenie\core\framework\Context::getCurrentProject()->getKey())) : make_url('opensearch');
?>
" type="application/opensearchdescription+xml" rel="search">
        <?php 
foreach ($tbg_response->getFeeds() as $feed_url => $feed_title) {
    ?>
            <link rel="alternate" type="application/rss+xml" title="<?php 
    echo str_replace('"', '\'', $feed_title);
    ?>
" href="<?php 
    echo $feed_url;
    ?>
">
 protected function _parse_insert_template($matches)
 {
     switch ($matches[1]) {
         case 'CURRENTMONTH':
             return date('m');
         case 'CURRENTMONTHNAMEGEN':
         case 'CURRENTMONTHNAME':
             return date('F');
         case 'CURRENTDAY':
             return date('d');
         case 'CURRENTDAYNAME':
             return date('l');
         case 'CURRENTYEAR':
             return date('Y');
         case 'CURRENTTIME':
             return date('H:i');
         case 'NUMBEROFARTICLES':
             return 0;
         case 'PAGENAME':
             return framework\Context::getResponse()->getPage();
         case 'NAMESPACE':
             return 'None';
         case 'TOC':
             return isset($this->options['included']) ? '' : '{{TOC}}';
         case 'SITENAME':
         case 'SITETAGLINE':
             return \thebuggenie\core\framework\Settings::getSiteHeaderName();
         default:
             $details = explode('|', $matches[1]);
             $template_name = array_shift($details);
             if (substr($template_name, 0, 1) == ':') {
                 $template_name = substr($template_name, 1);
             }
             $template_name = Article::doesArticleExist($template_name) ? $template_name : 'Template:' . $template_name;
             $template_article = Articles::getTable()->getArticleByName($template_name);
             $parameters = array();
             if (count($details)) {
                 foreach ($details as $parameter) {
                     $param = explode('=', $parameter);
                     if (count($param) == 2) {
                         $parameters[$param[0]] = $param[1];
                     } else {
                         $parameters[] = $parameter;
                     }
                 }
             }
             if ($template_article instanceof Article) {
                 return tbg_parse_text($template_article->getContent(), false, null, array('included' => true, 'parameters' => $parameters));
             } else {
                 return $matches[0];
             }
     }
 }
            <url><?php 
    echo \thebuggenie\core\framework\Context::getUrlHost() . \thebuggenie\core\framework\Context::getWebroot() . 'header.png';
    ?>
</url>
        <?php 
} else {
    ?>
            <url><?php 
    echo image_url('logo_24.png', false, null, false);
    ?>
</url>
        <?php 
}
?>
            <title><?php 
echo \thebuggenie\core\framework\Settings::getSiteHeaderName() . ' ~ ' . $searchtitle;
?>
</title>
            <link><?php 
echo make_url('home', array(), false);
?>
</link>
        </image>
<?php 
if ($issues != false) {
    foreach ($issues as $issue) {
        ?>
        
        <item>
            <title><?php 
        echo $issue->getFormattedIssueNo(true) . ' - ' . strip_tags($issue->getTitle());
Exemple #5
0
<footer>
    <?php 
echo image_tag('footer_logo.png');
?>
    <?php 
echo link_tag(make_url('about'), 'The Bug Genie') . '&nbsp;' . \thebuggenie\core\framework\Settings::getVersion();
?>
    <?php 
if ($tbg_user->canAccessConfigurationPage()) {
    ?>
        | <b><?php 
    echo link_tag(make_url('configure'), __('Configure %thebuggenie_name', array('%thebuggenie_name' => \thebuggenie\core\framework\Settings::getSiteHeaderName())));
    ?>
</b>
    <?php 
}
?>
    | <a href="http://www.thebuggenie.com/support">Support</a>
    | <a href="http://www.thebuggenie.com/feedback">Feedback</a>
    <?php 
if (\thebuggenie\core\framework\Context::isDebugMode() && \thebuggenie\core\framework\Logging::isEnabled()) {
    ?>
        <script>
            function tbg_debug_show_menu_tab(tab, clicked) {
                $('debug-bar').childElements().each(function (unclicked) {
                    unclicked.removeClassName('selected');
                });
                clicked.addClassName('selected');
                $('debug-frames-container').childElements().each(function (container) {
                    (container.id == tab) ? container.addClassName('selected') : container.removeClassName('selected');
                });
Exemple #6
0
 public static function populateBreadcrumbs()
 {
     $childbreadcrumbs = array();
     if (self::$_selected_project instanceof Project) {
         $t = self::$_selected_project;
         $hierarchy_breadcrumbs = array();
         $projects_processed = array();
         while ($t instanceof Project) {
             if (array_key_exists($t->getKey(), $projects_processed)) {
                 // We have a cyclic dependency! Oh no!
                 // If this happens, throw an exception
                 throw new \Exception(self::geti18n()->__('A loop has been found in the project heirarchy. Go to project configuration, and alter the subproject setting for this project so that this project is not a subproject of one which is a subproject of this one.'));
             }
             $projects_processed[$t->getKey()] = $t;
             $itemsubmenulinks = self::getResponse()->getPredefinedBreadcrumbLinks('project_summary', $t);
             if ($t->hasChildren()) {
                 $itemsubmenulinks[] = array('separator' => true);
                 foreach ($t->getChildren() as $child) {
                     if (!$child->hasAccess()) {
                         continue;
                     }
                     $itemsubmenulinks[] = array('url' => self::getRouting()->generate('project_dashboard', array('project_key' => $child->getKey())), 'title' => $child->getName());
                 }
             }
             $hierarchy_breadcrumbs[] = array($t, $itemsubmenulinks);
             if ($t->hasParent()) {
                 $parent = $t->getParent();
                 $t = $t->getParent();
             } else {
                 $t = null;
             }
         }
         if (self::$_selected_project->hasClient()) {
             self::setCurrentClient(self::$_selected_project->getClient());
         }
         if (mb_strtolower(Settings::getSiteHeaderName()) != mb_strtolower(self::$_selected_project->getName()) || self::isClientContext()) {
             self::getResponse()->addBreadcrumb(Settings::getSiteHeaderName(), self::getRouting()->generate('home'), self::getResponse()->getPredefinedBreadcrumbLinks('main_links', self::$_selected_project));
             if (self::isClientContext()) {
                 self::getResponse()->addBreadcrumb(self::getCurrentClient()->getName(), self::getRouting()->generate('client_dashboard', array('client_id' => self::getCurrentClient()->getID())), self::getResponse()->getPredefinedBreadcrumbLinks('client_list'));
             }
         }
         // Add root breadcrumb first, so reverse order
         $hierarchy_breadcrumbs = array_reverse($hierarchy_breadcrumbs);
         foreach ($hierarchy_breadcrumbs as $breadcrumb) {
             $class = null;
             if ($breadcrumb[0]->getKey() == self::getCurrentProject()->getKey()) {
                 $class = 'selected_project';
             }
             self::getResponse()->addBreadcrumb($breadcrumb[0]->getName(), self::getRouting()->generate('project_dashboard', array('project_key' => $breadcrumb[0]->getKey())), $breadcrumb[1], $class);
         }
     } else {
         self::getResponse()->addBreadcrumb(Settings::getSiteHeaderName(), self::getRouting()->generate('home'), self::getResponse()->getPredefinedBreadcrumbLinks('main_links'));
     }
 }
        <?php 
\thebuggenie\core\framework\Event::createNew('core', 'header_before_logo')->trigger();
?>
        <span class="mobile_menuanchor" onclick="$('body').toggleClassName('mobile_leftmenu_visible');">&nbsp;</span>
        <?php 
$link = \thebuggenie\core\framework\Settings::getHeaderLink() == '' ? \thebuggenie\core\framework\Context::getWebroot() : \thebuggenie\core\framework\Settings::getHeaderLink();
?>
        <a class="logo" href="<?php 
print $link;
?>
"><?php 
echo image_tag(\thebuggenie\core\framework\Settings::getHeaderIconUrl(), array('style' => 'max-height: 24px;'), \thebuggenie\core\framework\Settings::isUsingCustomHeaderIcon());
?>
</a>
        <div class="logo_name"><?php 
echo \thebuggenie\core\framework\Settings::getSiteHeaderName();
?>
</div>
    </div>
    <?php 
if (!\thebuggenie\core\framework\Settings::isMaintenanceModeEnabled()) {
    ?>
        <div id="topmenu-container">
            <?php 
    if (\thebuggenie\core\framework\Event::createNew('core', 'header_mainmenu_decider')->trigger()->getReturnValue() !== false) {
        ?>
                <?php 
        require THEBUGGENIE_CORE_PATH . 'templates/headermainmenu.inc.php';
        ?>
            <?php 
    }
<table style="clear: both; width: 700px; margin-top: 5px;" class="padded_table" cellpadding=0 cellspacing=0>
    <tr>
        <td style="width: 200px;"><label for="b2_name"><?php 
echo __('The Bug Genie custom name');
?>
</label></td>
        <td style="width: auto;">
            <input type="text" name="<?php 
echo \thebuggenie\core\framework\Settings::SETTING_TBG_NAME;
?>
" id="b2_name"
                   value="<?php 
echo str_replace('"', '&quot;', \thebuggenie\core\framework\Settings::getSiteHeaderName());
?>
"
                   style="width: 90%;"<?php 
if ($access_level != \thebuggenie\core\framework\Settings::ACCESS_FULL) {
    ?>
 disabled<?php 
}
?>
            >
            <?php 
echo config_explanation(__('This is the name appearing in the headers and several other places, usually displaying "The Bug Genie"'));
?>
        </td>
    </tr>
    <tr>
        <td>
            <label><?php 
echo __('Custom header and favicons');
Exemple #9
0
<?php

$tbg_response->setTitle(__('About %sitename', array('%sitename' => \thebuggenie\core\framework\Settings::getSiteHeaderName())));
$tbg_response->addBreadcrumb(__('About %sitename', array('%sitename' => \thebuggenie\core\framework\Settings::getSiteHeaderName())), make_url('about'), tbg_get_breadcrumblinks('main_links'));
?>
<div class="rounded_box borderless mediumgrey" style="margin: 10px auto 0 auto; width: 500px; padding: 5px 5px 15px 5px; font-size: 13px; text-align: center;">
    <div style="text-align: left; padding: 10px;">
        <h1 style="font-size: 25px; margin-bottom: 0px; padding-bottom: 3px;">
            The Bug Genie
            <span style="font-size: 14px; font-weight: normal; color: #888;">
                <?php 
echo __('Version %thebuggenie_version', array('%thebuggenie_version' => \thebuggenie\core\framework\Settings::getVersion(true)));
?>
            </span>
        </h1>
        <h3 style="margin-top: 0; padding-top: 0;">Beautiful issue tracking and project management</h3>
        <?php 
echo __('The Bug Genie is an issue tracking system with a strong focus on being friendly &ndash; both for regular users and power users');
?>
.<br>
        <br>
        <?php 
echo __('The Bug Genie follows an open development model, and is released under an open source software license called the MPL (Mozilla Public License). This license gives you the freedom to pick up the sourcecode for The Bug Genie and work with it any way you need.');
?>
<br>
        <br>
        <?php 
echo __('Extend, develop and change The Bug Genie in any way you want, and do whatever you want with the new piece of software (The only thing you cannot do is call your software The Bug Genie). Please do send us your modifications for inclusion in The Bug Genie.');
?>
<br>
        <br>
Exemple #10
0
 public function runStatus(framework\Request $request)
 {
     $status_info = array('api_version' => $this->getApiVersion(), 'version' => framework\Settings::getVersion(), 'version_long' => framework\Settings::getVersion(true, true), 'site_name' => framework\Settings::getSiteHeaderName(), 'host' => framework\Settings::getURLhost(), 'urls' => array('site' => framework\Settings::getHeaderLink() == '' ? framework\Context::getWebroot() : framework\Settings::getHeaderLink(), 'logo' => framework\Settings::getHeaderIconURL(), 'icon' => framework\Settings::getFaviconURL()), 'online' => !(bool) framework\Settings::isMaintenanceModeEnabled());
     if (framework\Settings::hasMaintenanceMessage()) {
         $status_info['maintenance_msg'] = framework\Settings::getMaintenanceMessage();
     }
     $this->status_info = $status_info;
 }
            <url><?php 
    echo \thebuggenie\core\framework\Context::getUrlHost() . \thebuggenie\core\framework\Context::getWebroot() . 'header.png';
    ?>
</url>
        <?php 
} else {
    ?>
            <url><?php 
    echo image_url('logo_24.png', false, null, false);
    ?>
</url>
        <?php 
}
?>
            <title><?php 
echo \thebuggenie\core\framework\Settings::getSiteHeaderName() . ' ~ ' . __('%project_name project timeline', array('%project_name' => \thebuggenie\core\framework\Context::getCurrentProject()->getName()));
?>
</title>
            <link><?php 
echo make_url('project_timeline', array('project_key' => \thebuggenie\core\framework\Context::getCurrentProject()->getKey()), false);
?>
</link>
        </image>
<?php 
foreach ($recent_activities as $timestamp => $activities) {
    foreach ($activities as $activity) {
        if (array_key_exists('target_type', $activity) && $activity['target_type'] == 1 && ($issue = \thebuggenie\core\entities\Issue::getB2DBTable()->selectById($activity['target'])) && $issue instanceof \thebuggenie\core\entities\Issue) {
            if ($issue->isDeleted()) {
                continue;
            }
            ?>
Exemple #12
0
 public static function populateBreadcrumbs()
 {
     $childbreadcrumbs = array();
     if (self::$_selected_project instanceof Project) {
         $t = self::$_selected_project;
         $hierarchy_breadcrumbs = array();
         $projects_processed = array();
         while ($t instanceof Project) {
             if (array_key_exists($t->getKey(), $projects_processed)) {
                 // We have a cyclic dependency! Oh no!
                 // If this happens, throw an exception
                 throw new \Exception(self::geti18n()->__('A loop has been found in the project heirarchy. Go to project configuration, and alter the subproject setting for this project so that this project is not a subproject of one which is a subproject of this one.'));
             } else {
                 $all_projects = array_merge(Project::getAllRootProjects(true), Project::getAllRootProjects(false));
                 // If this is a root project, display a list of other root projects, then t is null
                 if (!$t->hasParent() && count($all_projects) > 1) {
                     $itemsubmenulinks = array();
                     foreach ($all_projects as $child) {
                         if (!$child->hasAccess()) {
                             continue;
                         }
                         $itemsubmenulinks[] = array('url' => self::getRouting()->generate('project_dashboard', array('project_key' => $child->getKey())), 'title' => $child->getName());
                     }
                     $hierarchy_breadcrumbs[] = array($t, $itemsubmenulinks);
                     $projects_processed[$t->getKey()] = $t;
                     $t = null;
                     continue;
                 } elseif (!$t->hasParent()) {
                     $hierarchy_breadcrumbs[] = array($t, null);
                     $projects_processed[$t->getKey()] = $t;
                     $t = null;
                     continue;
                 } else {
                     // What we want to do here is to build a list of the children of the parent unless we are the only one
                     $parent = $t->getParent();
                     $children = $parent->getChildren();
                     $itemsubmenulinks = null;
                     if ($parent->hasChildren() && count($children) > 1) {
                         $itemsubmenulinks = array();
                         foreach ($children as $child) {
                             if (!$child->hasAccess()) {
                                 continue;
                             }
                             $itemsubmenulinks[] = array('url' => self::getRouting()->generate('project_dashboard', array('project_key' => $child->getKey())), 'title' => $child->getName());
                         }
                     }
                     $hierarchy_breadcrumbs[] = array($t, $itemsubmenulinks);
                     $projects_processed[$t->getKey()] = $t;
                     $t = $parent;
                     continue;
                 }
             }
         }
         $clientsubmenulinks = null;
         if (self::$_selected_project->hasClient()) {
             $clientsubmenulinks = array();
             foreach (Client::getAll() as $client) {
                 if ($client->hasAccess()) {
                     $clientsubmenulinks[] = array('url' => self::getRouting()->generate('client_dashboard', array('client_id' => $client->getID())), 'title' => $client->getName());
                 }
             }
             self::setCurrentClient(self::$_selected_project->getClient());
         }
         if (mb_strtolower(Settings::getSiteHeaderName()) != mb_strtolower(self::$_selected_project->getName()) || self::isClientContext()) {
             self::getResponse()->addBreadcrumb(Settings::getSiteHeaderName(), self::getRouting()->generate('home'));
             if (self::isClientContext()) {
                 self::getResponse()->addBreadcrumb(self::getCurrentClient()->getName(), self::getRouting()->generate('client_dashboard', array('client_id' => self::getCurrentClient()->getID())), $clientsubmenulinks);
             }
         }
         // Add root breadcrumb first, so reverse order
         $hierarchy_breadcrumbs = array_reverse($hierarchy_breadcrumbs);
         foreach ($hierarchy_breadcrumbs as $breadcrumb) {
             $class = null;
             if ($breadcrumb[0]->getKey() == self::getCurrentProject()->getKey()) {
                 $class = 'selected_project';
             }
             self::getResponse()->addBreadcrumb($breadcrumb[0]->getName(), self::getRouting()->generate('project_dashboard', array('project_key' => $breadcrumb[0]->getKey())), $breadcrumb[1], $class);
         }
     } else {
         self::getResponse()->addBreadcrumb(Settings::getSiteHeaderName(), self::getRouting()->generate('home'));
     }
 }