2012-04-05 2 views
0

Я печатаю это на iPad, так что простите меня, если краткость немного грубо. Мой вопрос:Новый (относительно) код воспламенителя: некоторые основные вопросы

Всегда ли у вас простая логика в представлении? Например,

<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 */ 

Выше было просто пережитком комментарий в коде, который сделал бы ограниченное использование PHP выглядеть некрасиво. Я хотел, чтобы это было видно.

В любом случае, на вопрос № 2:

ли вообще уместно использовать простой условный, как это в представлении?

Спасибо за чтение и привет.

ответ

1

В ответ на первый вопрос: Это правильное использование endif, все это действительный и рекомендуемый способ с помощью codeigniter.

Что касается второго вопроса, этот метод можно использовать в файле вида; однако я бы рекомендовал использовать его в массиве $data, переданном на страницу, означающий, что к нему будут доступны: $authorised; Я говорю об этом, поскольку это будет иметь смысл для дизайнера интерфейса.

Информация о массиве $data может быть найдена here, просто перейдите к разделу «Добавление логики в контроллер».

Надеюсь, это поможет вам.

+0

Спасибо за ответы. Определенная помощь. – STONEYFTW

1

Используйте Language class, чтобы сохранить свои «Уполномоченные» и «Вы не авторизованы». Проверьте свою сессию в контроллере и передайте правильное значение языка в представление массива данных.

Edit: Дополнительный вопрос от STONYFTW:

Какой подход следует взять с собой немного более сложного кода, такие как :?

<?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

Тот же подход? Я никогда не использовал языковой класс. – STONEYFTW

+0

В этом случае, я думаю, было бы лучше пойти с отдельным предложением предложения в ответе porquero. – AndrewR

+0

Спасибо за дальнейшую помощь. Я ценю это. – STONEYFTW

1

Я рекомендую вам использовать представления дифферент в контроллере для каждого случая:

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

Таким образом, вы получите чистый закодировать вид.

+0

Не могли бы вы предложить просмотр каждой части «визуального» на странице? Я имею в виду, допустимо ли одновременно вызывать множество разных представлений? – STONEYFTW

+0

+1. Вероятно, вы захотите вернуть содержимое представления и передать его в другое представление как переменную, содержащую содержимое html (т. Е. ''), Которое вы можете выводить вслепую. – landons

+0

Да приемлемо для вызова нескольких видов. Вы должны подумать, что для просмотра нет необходимости в html-странице. Это может быть любой файл. – porquero

Смежные вопросы