public function initItem() { parent::initItem(); if (is_object($GLOBALS['user']) && $GLOBALS['user']->id != 'nobody') { if (WidgetHelper::hasWidget($GLOBALS['user']->id, 'News')) { $news = StudipNews::CountUnread(); } if (Config::get()->VOTE_ENABLE && WidgetHelper::hasWidget($GLOBALS['user']->id, 'Evaluations')) { $threshold = Config::get()->NEW_INDICATOR_THRESHOLD ? strtotime("-{" . Config::get()->NEW_INDICATOR_THRESHOLD . "} days 0:00:00") : 0; $statement = DBManager::get()->prepare("\n SELECT COUNT(*)\n FROM questionnaire_assignments\n INNER JOIN questionnaires ON (questionnaires.questionnaire_id = questionnaire_assignments.questionnaire_id)\n WHERE questionnaire_assignments.range_id = 'start'\n AND questionnaires.visible = 1\n AND questionnaires.startdate IS NOT NULL\n AND questionnaires.startdate > UNIX_TIMESTAMP()\n AND questionnaires.startdate > :threshold\n AND (questionnaires.stopdate IS NULL OR questionnaires.stopdate <= UNIX_TIMESTAMP())\n "); $statement->execute(array('threshold' => $threshold)); $vote = (int) $statement->fetchColumn(); $query = "SELECT COUNT(IF(chdate > IFNULL(b.visitdate, :threshold) AND d.author_id != :user_id, a.eval_id, NULL))\n FROM eval_range a\n INNER JOIN eval d ON (a.eval_id = d.eval_id AND d.startdate < UNIX_TIMESTAMP() AND\n (d.stopdate > UNIX_TIMESTAMP() OR d.startdate + d.timespan > UNIX_TIMESTAMP() OR (d.stopdate IS NULL AND d.timespan IS NULL)))\n LEFT JOIN object_user_visits b ON (b.object_id = d.eval_id AND b.user_id = :user_id AND b.type = 'eval')\n WHERE a.range_id = 'studip'\n GROUP BY a.range_id"; $statement = DBManager::get()->prepare($query); $statement->bindValue(':user_id', $GLOBALS['user']->id); $statement->bindValue(':threshold', ($threshold = Config::get()->NEW_INDICATOR_THRESHOLD) ? strtotime("-{$threshold} days 0:00:00") : 0); $statement->execute(); $vote += (int) $statement->fetchColumn(); } } $homeinfo = _('Zur Startseite'); if ($news) { $homeinfo .= ' - '; $homeinfo .= sprintf(ngettext('%u neue Ankündigung', '%u neue Ankündigungen', $news), $news); } if ($vote) { $homeinfo .= ' - '; $homeinfo .= sprintf(ngettext('%u neuer Fragebogen', '%u neue Fragebögen', $vote), $vote); } $this->setBadgeNumber($vote + $news); $this->setImage(Icon::create('home', 'navigation', ["title" => $homeinfo])); }
public function configuration_action() { $template_factory = new Flexi_TemplateFactory(__DIR__ . '/templates'); $template = $template_factory->open('edit'); $template->links = Navigation::getItem('/start'); $template->config = WidgetHelper::getWidgetUserConfig($GLOBALS['user']->id, 'QUICK_SELECTION'); $template->plugin = $this; header('X-Title: ' . _('Schnellzugriff konfigurieren')); echo studip_utf8encode($template->render()); }
/** * Set the last active Widget * @param string $activeWidget */ static function setActiveWidget($activeWidget) { self::$activeWidget = $activeWidget; }
/** * Action to store the widget placements * * @return void */ function storeNewOrder_action() { WidgetHelper::storeNewPositions(Request::get('widget'), Request::get('position'), Request::get('column')); $this->render_nothing(); }