/** * Extends this controller with neccessary infobox * * @param String $view Currently viewed group */ private function setSidebar($view) { $sidebar = Sidebar::Get(); $sidebar->setImage('sidebar/smiley-sidebar.png'); $sidebar->setTitle(PageLayout::getTitle() ?: _('Smileys')); // Render items $factory = new Flexi_TemplateFactory($this->dispatcher->trails_root . '/views/admin/smileys/'); $actions = new ActionsWidget(); $actions->addLink(_('Neues Smiley hochladen'), $this->url_for('admin/smileys/upload', $view), Icon::create('add', 'clickable'))->asDialog('size=auto'); $actions->addLink(_('Smileys zählen'), $this->url_for('admin/smileys/count', $view), Icon::create('code', 'clickable')); $actions->addLink(_('Tabelle aktualisieren'), $this->url_for('admin/smileys/refresh', $view), Icon::create('refresh', 'clickable')); $actions->addLink(_('Smiley-Übersicht öffnen'), URLHelper::getLink('dispatch.php/smileys'), Icon::create('smiley', 'clickable'))->asDialog(); $sidebar->addWidget($actions); $widget = new SidebarWidget(); $filter = $factory->render('selector', array('characters' => Smiley::getUsedCharacters(), 'controller' => $this, 'view' => $view)); $widget->setTitle(_('Filter')); $widget->addElement(new WidgetElement($filter)); $sidebar->addWidget($widget); $widget = new SidebarWidget(); $statistics = $factory->render('statistics', Smiley::getStatistics()); $widget->setTitle(_('Statistiken')); $widget->addElement(new WidgetElement($statistics)); $sidebar->addWidget($widget); }
/** * Back end for the smiley picker javascript module. * Renders a list of smileys very similar to the index action but * unfortunately still to different to be combined. * * @param mixed $view Subset to display, defaults to favorites if enabled * @param int $page Section of subset to display */ function picker_action($view = null, $page = 0) { $per_page = self::GRID_WIDTH * self::GRID_HEIGHT; $this->view = $view ?: ($this->default === 'favorites' ? 'favorites' : 'all'); $smileys = $this->view == 'favorites' ? Smiley::getByIds($this->favorites->get()) : Smiley::getGrouped($this->view); $this->page = $page; $this->pages = floor(count($smileys) / $per_page); array_walk($smileys, function ($smiley) { $smiley->link = Smiley::getURL($smiley->name); $smiley->html = Smiley::img($smiley->name); }); $this->smileys = array_slice($smileys, $page * $per_page, $per_page); $this->characters = Smiley::getUsedCharacters(); }