2012-04-05 23 views
0

Ich tippe dies auf einem iPad so verzeihen Sie mir, wenn prägnant ist ein bisschen unhöflich. Meine Frage ist:Neu (relativ) Code-Zünder: einige grundlegende Fragen

Ist es jemals ok, einfache Logik in einer Ansicht zu haben? Zum Beispiel

<HTML> 
<!-- ... Stuff 
--> 
<?php if($this->session->userdata('authorized'): ?> 
<p>You are authorized</p> 
<?php else: ?> 
<p>You are not authorized</p> 
<?php endif; ?> // Question 1, is this the proper use of an endif:? 
<!-- .. Stuff 
->> 
</HTML> 

/* Starting to type the rest of message on my laptop. Big thank yous to the coders on 
    this site who made my pc login transfer my unsaved, half typed iPad post */ 

Die oben war nur ein Überbleibsel Kommentar in dem Code, den Gebrauch gemacht hätte, der begrenzte php hässlich aussehen. Ich wollte es aber sehen lassen.

Anyways, auf die Frage # 2:

Ist es auch richtig, einen einfachen bedingten wie dies in einer Ansicht zu benutzen?

Vielen Dank für das Lesen und wieder Hallo.

Antwort

1

In Antwort auf die erste Frage: Das ist die ordnungsgemäße Verwendung eines endif, alles ist gültig und empfohlen Weg durch Codeigniter.

In Bezug auf die zweite Frage kann diese Methode in einer Ansichtsdatei verwendet werden; jedoch würde ich empfehlen, es in dem $data Array zu verwenden, das an die Seite übergeben wird, was bedeutet, dass es als $authorised zugegriffen wird; Ich sage das, weil es für einen Frontend-Designer mehr Sinn macht.

Informationen über das $data Array finden Sie here, navigieren Sie einfach zu "Hinzufügen von Logik zum Controller".

Ich hoffe, dass dies für Sie hilfreich ist.

+0

Danke für die Antworten. Eine definitive Hilfe. – STONEYFTW

1

Verwenden Sie die Language class, um Ihren Text "Sie sind berechtigt" und "Sie sind nicht berechtigt" zu speichern. Überprüfen Sie die Sitzung, indem Sie den Controller überprüfen, und übergeben Sie den korrekten Sprachwert an die Ansicht im Datenarray.

Edit: Weitere Frage von STONYFTW:

Welchen Ansatz sollte man mit etwas komplexeren Code nehmen, wie :?

<?php if(!$this->session->userdata('isLoggedIn')): ?> 
      <div id="login_form"> 
       <?php echo form_open('login/validateCredentials'); ?> 
       <?php echo form_input('username', 'Username'); ?> 
       <?php echo form_password('password', 'Password'); ?> 
       <?php echo form_submit('submit', 'Log In'); ?> 
       <div id="login_form_link_container"> 
        <?php echo anchor('login/register', 'Register')." ".anchor('login/recover','Forgot Pass?'); ?> 
       </div> 
      </div> 
    <?php endif; ?> 
+0

Gleicher Ansatz? Ich habe den Sprachkurs nie benutzt. – STONEYFTW

+0

In diesem Fall denke ich, es wäre besser, mit dem separaten Ansichtsvorschlag in porqueros Antwort zu gehen. – AndrewR

+0

Danke für die weitere Hilfe. Ich schätze es. – STONEYFTW

1

Ich empfehle Ihnen differents Ansichten in der Steuerung für jeden Fall zu verwenden:

// In the controller 
if($this->session->userdata('authorized') 
    $this->load->view('not_autorized.php'); 
else 
    $this->load->view('view.php'); 

So erhalten Sie sauberen Code ein Blick.

+0

Würden Sie dann vorschlagen, für jedes Stück "visual" auf der Seite eine Ansicht zu haben? Ich meine, ist es akzeptabel, viele verschiedene Ansichten gleichzeitig zu nennen? – STONEYFTW

+0

+1. Wahrscheinlich möchten Sie den Inhalt der Ansicht zurückgeben und ihn in eine andere Ansicht als Variable mit HTML-Inhalt (d. H. '') Übergeben, die Sie blind ausgeben können. – landons

+0

Ja ist zulässig, mehrere Ansichten aufzurufen. Sie müssen denken, dass eine Ansicht keine HTML-Seite ist. Es kann jede Datei sein. – porquero