В общем мелочь, но думаю кому то пригодся
При написании модуля, допустим когда у модуля не одна страница а 2 или 3 раздражает писать постоянно вот это (со стороны админки)
$breadcrumbs = array();
$breadcrumbs[] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/dashboard', 'user_token=' . $user_token, true)
);
$breadcrumbs[] = array(
'text' => $this->language->get('text_extension'),
'href' => $this->url->link('marketplace/extension', 'user_token=' . $user_token . '&type=module', true)
);
и т.д
причем даже если одна страница, как по мне, в одном методе генерации страницы целая каша, и получение и обработка данных, и навигация и т.д.
Поэтому решил вынести эту навигацию в отдельный метод
protected function setBreadcrumbs( $user_token, $module_id, $setting = false ) {
$breadcrumbs = array();
$breadcrumbs[] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/dashboard', 'user_token=' . $user_token, true)
);
$breadcrumbs[] = array(
'text' => $this->language->get('text_extension'),
'href' => $this->url->link('marketplace/extension', 'user_token=' . $user_token . '&type=module', true)
);
if( !$setting ) {
if( !isset($module_id) ) {
$breadcrumbs[] = array(
'text' => $this->language->get('head_title'),
'href' => $this->url->link('extension/module/модуль', 'user_token=' . $user_token, true)
);
} else {
$breadcrumbs[] = array(
'text' => $this->language->get('head_title'),
'href' => $this->url->link('extension/module/модуль', 'user_token=' . $user_token . '&module_id=' . $module_id, true)
);
}
} else {
$breadcrumbs[] = array(
'text' => $this->language->get('head_title'),
'href' => $this->url->link('extension/module/модуль', 'user_token=' . $user_token . '&module_id=' . $module_id, true)
);
$breadcrumbs[] = array(
'text' => $this->language->get('settigs_title'),
'href' => $this->url->link('extension/module/модуль' . '/доп стр модуля', 'user_token=' . $user_token, true)
);
}
return $breadcrumbs;
}
Касаемо $setting = false - у меня в модуле две страницы, поэтому использовал вот такой подход
на главной странице модуля
$data['breadcrumbs'] = $this->setBreadcrumbs( $user_token, $module_id );
на второй странице
$data['breadcrumbs'] = $this->setBreadcrumbs( $user_token, false, true );
думаю сами разберетесь что/где можно поменять