private function prepareContentMenu($menu, $modern)
{
$translator = $this->container->get('translator');
$this->addChild($menu, $translator->trans('Publications'), array('uri' => $this->container->get('router')->generate('newscoop_newscoop_publications_index'), 'resource' => 'publication', 'privilege' => 'manage'));
if ($menu[$translator->trans('Publications')]) {
$publicationId = $this->container->get('request')->get('id', 1);
if (!is_numeric($publicationId)) {
$publicationId = 1;
}
$this->addChild($menu[$translator->trans('Publications')], $translator->trans('publications.title.edit', array(), 'pub'), array('route' => 'newscoop_newscoop_publications_edit', 'routeParameters' => array('id' => $publicationId), 'resource' => 'publication', 'privilege' => 'manage'))->setDisplay(false);
$this->addChild($menu[$translator->trans('Publications')], $translator->trans('publications.title.remove', array(), 'pub'), array('route' => 'newscoop_newscoop_publications_remove', 'routeParameters' => array('id' => $publicationId), 'resource' => 'publication', 'privilege' => 'manage'))->setDisplay(false);
}
$this->addChild($menu, $translator->trans('comments.label.menu', array(), 'new_comments'), array('uri' => $this->container->get('router')->generate('newscoop_newscoop_comments_index'), 'resource' => 'comment', 'privilege' => 'moderate'));
$this->addChild($menu, $translator->trans('Feedback', array(), 'home'), array('zend_route' => array('module' => 'admin', 'controller' => 'feedback', 'action' => 'index'), 'resource' => 'feedback', 'privilege' => 'manage'));
$this->addChild($menu, $translator->trans('Media Archive', array(), 'home'), array('zend_route' => array('module' => 'admin', 'controller' => 'media-archive', 'action' => 'index.php')));
$this->addChild($menu, $translator->trans('Search'), array('zend_route' => array('module' => 'admin', 'controller' => 'universal-list', 'action' => 'index.php')));
$this->addChild($menu, $translator->trans('Pending articles', array(), 'home'), array('zend_route' => array('module' => 'admin', 'controller' => 'pending_articles', 'action' => 'index.php')));
$this->addChild($menu, $translator->trans('Featured Article Lists', array(), 'home'), array('uri' => $this->container->get('router')->generate('newscoop_newscoop_playlists_index'), 'resource' => 'playlist', 'privilege' => 'manage'));
// add content/publications
$publicationService = $this->container->get('content.publication');
foreach ($publicationService->getPublicationsForMenu()->getArrayResult() as $publication) {
$pubId = $publication['id'];
$this->addChild($menu, $publication['name'], array('uri' => $this->generateZendRoute('admin') . "/issues/?Pub={$pubId}"))->setAttribute('rightdrop', true)->setLinkAttribute('data-toggle', 'rightdrop');
$query = $this->container->get('em')->getRepository('Newscoop\\Entity\\Issue')->getLatestByPublication($pubId, 11);
if ($query) {
$issues = $query->getArrayResult();
} else {
$issues = array();
}
$moreIssues = count($issues) > 10 ? true : false;
if ($moreIssues) {
unset($issues[10]);
}
// add content/publication/issue
$latestPublished = false;
foreach ($issues as $issue) {
$issueId = $issue['number'];
$languageId = $issue['language']['id'];
$issueName = sprintf('%d. %s (%s)', $issue['number'], $issue['name'], $issue['language']['name']);
$issueChild = $this->addChild($menu[$publication['name']], $issueName, array('uri' => $this->generateZendRoute('admin', array('zend_route' => array('reset_params' => true))) . "/sections/?Pub={$pubId}&Issue={$issueId}&Language={$languageId}"))->setAttribute('rightdrop', true)->setLinkAttribute('data-toggle', 'rightdrop');
if (($issue['workflowStatus'] === 'Y' ? true : false) && !$latestPublished) {
$issueChild->setLinkAttribute('class', 'latest-published');
$latestPublished = true;
}
// add content/publication/issue/section
$firstSections = array();
foreach ($issue['sections'] as $section) {
$firstSections[$section['number']] = $section;
}
ksort($firstSections);
$sectionsCounter = 0;
foreach ($firstSections as $section) {
if ($sectionsCounter < 10) {
$sectionId = $section['number'];
$sectionName = sprintf('%d. %s', $section['number'], $section['name']);
$this->addChild($menu[$publication['name']][$issueName], $sectionName, array('uri' => $this->generateZendRoute('admin', array('zend_route' => array('reset_params' => true))) . "/articles/?f_publication_id={$pubId}&f_issue_number={$issueId}&f_language_id={$languageId}&f_section_number={$sectionId}"));
$sectionsCounter++;
}
}
if (count($issue['sections']) > 0) {
if (!$modern) {
$this->addChild($menu[$publication['name']][$issueName], null, array())->setAttribute('class', 'divider');
$this->addChild($menu[$publication['name']][$issueName], $translator->trans('More...'), array('uri' => $this->generateZendRoute('admin', array('zend_route' => array('reset_params' => true))) . "/sections/?Pub={$pubId}&Issue={$issueId}&Language={$languageId}"));
} else {
$this->addChild($menu[$publication['name']][$issueName], $translator->trans('More...'), array('uri' => $this->generateZendRoute('admin', array('zend_route' => array('reset_params' => true))) . "/sections/?Pub={$pubId}&Issue={$issueId}&Language={$languageId}"))->setAttribute('divider_prepend', true);
}
}
}
if ($moreIssues) {
if (!$modern) {
$this->addChild($menu[$publication['name']], null, array())->setAttribute('class', 'divider');
$this->addChild($menu[$publication['name']], $translator->trans('More...'), array('uri' => $this->generateZendRoute('admin', array('zend_route' => array('reset_params' => true))) . "/issues/?Pub={$pubId}"));
} else {
$this->addChild($menu[$publication['name']], $translator->trans('More...'), array('uri' => $this->generateZendRoute('admin', array('zend_route' => array('reset_params' => true))) . "/issues/?Pub={$pubId}"))->setAttribute('divider_prepend', true);
}
}
}
}