Saluti Non sono abbastanza sicuro su come realizzare la mia visione verso il mio progetto.Controller Design - multi sottomenu - tentativo di aggiungere un master
Iniziare, consente solo di concentrarsi sul controller Ordine.
Quindi il mio ordine è composto da molte sottoview. Ad esempio, dettagli, cronologia, indirizzo, file allegati, note, ecc. Li ho messi su un'interfaccia della scheda jQuery.
Mostriamo un po 'di codice.
layout.php
<div class="page-content">
<div class="row">
<div class="col-md-12">
<ul class="nav nav-tabs responsive hidden-xs hidden-sm">
<li class="<?php echo ($activeTabSub === "1") ? "active" : ""; ?>">
<a href="<?PHP echo base_url();?>x/y/<?PHP echo $zgl; ?>">Master details</a>
</li>
<li class="<?php echo ($activeTabSub === "2") ? "active" : ""; ?>">
<a href="<?PHP echo base_url();?>x/y/<?PHP echo $zgl; ?>">History</a>
</li>
<li class="<?php echo ($activeTabSub === "wyk") ? "active" : ""; ?>">
<a href="<?PHP echo base_url();?>x/y/<?PHP echo $zgl; ?>">Address</a>
</li>
<li class="<?php echo ($activeTabSub === "3") ? "active" : ""; ?>">
<a href="<?PHP echo base_url();?>x/y/<?PHP echo $zgl; ?>">Files</a>
</li>
<li class="<?php echo ($activeTabSub === "4") ? "active" : ""; ?>">
<a href="<?PHP echo base_url();?>x/y/<?PHP echo $zgl; ?>">Notes</a>
</li>
<li class="<?php echo ($activeTabSub === "7") ? "active" : ""; ?>">
<a href="<?PHP echo base_url();?>x/y/<?PHP echo $zgl; ?>">ETC</a>
</li>
<li class="<?php echo ($activeTabSub === "8") ? "active" : ""; ?>">
<a href="<?PHP echo base_url();?>x/y/<?PHP echo $zgl; ?>">ETC</a>
</li>
<li class="<?php echo ($activeTabSub === "9") ? "active" : ""; ?>"><a href="<?PHP echo base_url();?>x/y/<?PHP echo $zgl; ?>">ETC</a>
</li>
</ul>
</div>
</div>
<?PHP $this->load->view($widget,$activeTabSub); ?>
<?PHP $this->load->view($main_content,$activeTabSub); ?>
</div>
Nel mio esempio, la vista $ widget è una visualizzazione secondaria, che è un widget con gli strumenti, come diverso modificare/aggiungere i pulsanti per ogni singolo activeTabSub. $ Main_content è una vista html per ogni individuo.
E ora per il controller [Ordine]
public function functiontolink1()
{
$data['main_content'] = 'x/y';
$data['widget'] = 'x/widget';
$data['heading'] = "";
$data['activeTab'] = 'pzlec';
$data['activeTabSub'] = '2';
$data['strona'] = 'text';
$data['dzial'] = 'text';
$seg= $this->uri->segment(3);
$data['zgl'] = $seg;
if(isset($seg)){
$data['pracownicy'] = $this->Zlecenia_model->pracownicy($zgloszenie);
switch($this->userGroup){
case 1 :
$data['main_content'] = 'x/y';
break;
case 2 :
$data['main_content'] = 'x/y';
break;
case 3 :
$data['widget'] = 'Client/x/widget';
$data['main_content'] = 'Client/x/y';
break;
default: show_404(); break;
}
$this->load->view('Client/x/layout',$data);
}else{
show_404();
}
}
public function functiontolink2()
{
$data['widget'] = 'x/widget';
$data['heading'] = "";
$data['activeTab'] = 'pzlec';
$data['activeTabSub'] = '2';
$data['strona'] = 'text';
$data['dzial'] = 'text';
$seg= $this->uri->segment(3);
if(isset($seg)){
$data['zgl'] = $seg;
$data['json'] = $this->Zlecenia_model->getSingle($zgloszenie);
$vvv= json_decode($data['json']);
$data['client'] = $this->Order_model->getclient($vvv[0]->klient);
switch($this->userGroup){
case 1 :
$data['main_content'] = 'x/y';
break;
case 2 :
$data['main_content'] = 'x/y';
break;
case 3 :
$data['widget'] = 'Client/x/widget';
$data['main_content'] = 'Client/x/y';
break;
default: show_404(); break;
}
$this->load->view('Client/x/layout',$data);
$this->load->view('zgloszenie/layout',$data);
}else{
show_404();
}
}
Come potete immaginare, io ho 9 di queste funzioni di visualizzazione per ogni link. Il problema inizia quando desidero avere alcuni dati i dati dei clienti in tutte queste 9 sottoview - chiamato solo una volta non tutte le pagine colpite [scheda]. Non sono del tutto sicuro se il mio tentativo di progettazione è buono. Hai qualche suggerimento?
Puoi cancellare questo con un esempio. È difficile da capire. –
Purtroppo nop, questo è il meglio che potrei descrivere –
Generalmente un'idea di più sottopagine che possono ereditare i dati dal contenuto principale senza eseguire la query principale su ogni sottopagina direi così –