/** * @return array */ public static function initManagementData() { $tmpWidgets = Model::getAvailableWidgetObjects(); $tmpWidgets = Model::sortWidgets($tmpWidgets); $tags = array('Core' => array()); $uncategorizedWidgets = array(); unset($tmpWidgets['Columns']); foreach ($tmpWidgets as $key => $widget) { if ($widget->isCore()) { $tags['Core'][$key] = $widget->getName(); } else { $pluginName = $widget->getPluginName(); if (!array_key_exists($pluginName, $tags)) { $tags[$pluginName] = array(); } $tags[$pluginName][] = $widget->getName(); } } // Filter out single widget categories foreach ($tags as $key => $widget) { $widgetCount = count($tags[$key]); if ($widgetCount === 1) { $uncategorizedWidgets[] = $widget[0]; unset($tags[$key]); } } if (count($uncategorizedWidgets) > 0) { $tags['Other'] = $uncategorizedWidgets; } //these two tranlsations appear here just to make translations engine to find these dynamic translations __('Other', 'Ip-admin', false); __('Core', 'Ip-admin', false); $revision = \Ip\ServiceLocator::content()->getCurrentRevision(); $revisions = \Ip\Internal\Revision::getPageRevisions(ipContent()->getCurrentPage()->getId()); $manageableRevision = isset($revisions[0]['revisionId']) && $revisions[0]['revisionId'] == $revision['revisionId']; $page = ipContent()->getCurrentPage(); $tags = ipFilter('ipAdminWidgets', $tags); $data = array('widgets' => $tmpWidgets, 'tags' => $tags, 'page' => $page, 'currentRevision' => $revision, 'manageableRevision' => $manageableRevision, 'categorySplit' => 3, 'mobile' => Browser::isMobile()); $controlPanelHtml = ipView('view/adminPanel.php', $data)->render(); $data = array('tags' => $tags, 'controlPanelHtml' => $controlPanelHtml, 'manageableRevision' => $manageableRevision); return $data; }
public static function ipAdminNavbarCenterElements($elements, $info) { if (ipContent()->getCurrentPage() && ipAdminPermission('Content')) { $revision = \Ip\ServiceLocator::content()->getCurrentRevision(); $revisions = \Ip\Internal\Revision::getPageRevisions(ipContent()->getCurrentPage()->getId()); $managementUrls = array(); $currentPageLink = ipContent()->getCurrentPage()->getLink(); foreach ($revisions as $value) { $managementUrls[] = $currentPageLink . '?_revision=' . $value['revisionId']; } $data = array('revisions' => $revisions, 'currentRevision' => $revision, 'managementUrls' => $managementUrls, 'isPublished' => !\Ip\Internal\Content\Model::isRevisionModified($revision['revisionId']) && ipContent()->getCurrentPage()->isVisible(), 'isVisible' => ipContent()->getCurrentPage()->isvisible()); $elements[] = ipView('view/publishButton.php', $data); } return $elements; }