Witamy na polskiej stronie wsparcia CodeIgniter. Nie zapomnij odwiedzić naszej strony głównej
Nie jesteś zalogowany na forum.
Strony: 1
Witam,
Od jakiego czasu zacząłem stosować bibliotekę. Moim jedynym problemem z którym nie mogę sobie poradzić to metoda set_breadcrumb.
Stosuje ją w sposób(kontroler):
$data['page_list'] = $this->Pages_model->get_list_limit(9, 0, $this->active_lang);
$this->template
->set_breadcrumb('Start', 'start/index')
->build('start/index', $data);
wywołanie w layout(view):
<?php echo $template['breadcrumbs']; ?>
jednak wywala błąd(view):
A PHP Error was encountered
Severity: Notice
Message: Array to string conversion
Filename: layouts/layout.php
Line Number: 22
Nie wiem czy dobrze kombinuję. Przeszukałem już chyba wszystkie możliwości w tym temacie
Prośba o podesłanie jakiego pomysłu/przykładu wywołania tej metody od strony kontrolera.
Offline
Ta zmienna jest tablicą. Proponuję wykonać print_r() - wszystko stanie się jasne.
Do wyświetlania przyda się foreach().
Offline
Niestety coś robię nie tak.
Próbowałem twojej podpowiedzi "renholder", ale nic nie wychodzi.
Poniżej podsyła kodzik z jakiego próbuję zrobić set_breadcrumb.
public function index($slug = null)
{
$this->output->cache($this->config->item('cache'));
// set lang use
$data['lang'] = $this->active_lang;
// loading page
if ($slug === null)
{
$data['page'] = $this->Cms_model->get_page_by_id($this->config->item('page_first_'.$this->active_lang));
}
else
{
$data['page'] = $this->Cms_model->get_page_by_slug($slug);
}
if (!isset($data['page']['page_title']))
{
show_error('This page is not found!');
}
// set layout
$this->template->set_theme('default')
->set_layout('layout');
$this->page_active = $data['page']['page_id'];
// set menu list
foreach ($this->config->item('menu_list') as $k => $v)
{
$this->menu_list[$k] = $this->Cms_model->get_menu($this->active_lang, $k);
$data['menu_'.$k] = $this->_generate_menu($k);
}
// check in module load
if ($data['page']['page_module'] != '0')
{
$this->config->set_item('module_uri', $this->active_lang.'/'.$data['page']['page_slug']);
$module_name = $data['page']['page_module'];
if ($this->load->module($module_name))
{
$this->load->library('parser');
$parse = array('content' => $this->$module_name->render());
$data['page']['page_text'] = $this->parser->parse_string($data['page']['page_text'], $parse, true);
}
}
else
{
if ($this->auth->is_login())
{
$permissions = explode(',', $data['page']['page_permissions_group']);
if($this->auth->is_super_admin() OR in_array($this->auth->get_user_group_id(), $permissions))
{
if ($this->uri->segment('3') === 'edit')
{
$data['page']['page_text'] = $this->_edit($data);
}
else
{
$edit = $this->template->set('edit_page', array('edit_url' => $this->active_lang.'/'.$data['page']['page_slug'].'/edit'), true);
$data['page']['page_text'] .= $this->_edit($data);
}
}
}
}
$this->template
->title('testt', $data['page']['page_title'])
->set_metadata('description', $data['page']['page_description'])
->set_metadata('keywords', $data['page']['page_keywords'])
->set_breadcrumb('')
->build('index', $data);
}
Ostatnio edytowany przez arti (28-02-2014 16:43:40)
Offline
Cześć,
sam używam tej biblioteki z powodzeniem, jednak set_breadcrumb jeszcze nie ruszałem. Po przyjrzeniu się tej funkcji nie widzę tam nic specjalnego. Ta metoda wydaje się jakby niedokończona. Bo ustawiamy sobie set_breadcrumb('tekst linka','uri segment czy coś tam, może href') dla każdego odcinka breadcrumb osobno i co dostajemy to zmienna $template['breadcrumbs'], którą i tak musimy ziterować za pomocą foreach, bo jest to array.
<?php
//controller
$this->template
->set_breadcrumb('pierwszy segment','/pages/index')
->set_breadcrumb('drugi segment','/pages/add')
->build('pages/index',array('pages' => $pages));
//view
foreach ($template['breadcrumbs'] as $value) {
echo '<a href="'.$value['uri'].'">'.$value['name'].'</a> >>';
}
?>
Daj znać, jak masz inne spostrzeżenia. Pozdrawiam.
Offline
Dzięki za sugestię "cssBlaster21895".
Tak ta funkcja faktycznie nie robi nic specjalnego, ale chciałem używać jednej biblioteki do templatek
"renholder" tobie też dziękuje za nakierowanie na właściwy trop
Offline
Strony: 1