1. Мы продолжаем публиковать интересные статьи на тему SocialEngine 4. Одна из статей посвящена правильному выбору сервера для вашей социальной сети, а другая содержит советы по увеличению производительности платформы. Также мы добавили большую статью о пользовательских уровнях. Ознакомиться со статьями вы можете в разделе Вопросы и Ответы SocialEngine 4.
  2. Вам кажется, что ваша версия SocialEngine 4, работает медленно?

    Голосуйте. Пишите свою версию системы, железо на чем работает и количество пользователей. Будем увеличивать производительность :-) Подробнее

  3. В связи с участившимися случаями попыток продажи пользователями форума различных "сборок" коммерческих социальных платформ, обычно основанных на SocialEngine 3, вводится новое правило для форума. Запрещается создание тем или размещение в уже созданных предложений о продаже или размещение ссылок на сайты, где происходит продажа "сборок". Пользователи, которые продолжат свою коммерческую деятельность в данном направлении, будут заблокированы. Подробнее.

Занятие №2

Discussion in 'Подготовка' started by SpartakuS, Mar 22, 2011.

  1. SpartakuS Thread starter User


    Offline
    • Знаменитый
    Message Count:
    797
    Likes Received:
    82
    Вернемся к работе, которую не осилили.
    Конкретная задача.
    К примеру есть код:
    PHP:
    <?php
    for($i=1;$i<=10;$i++){
        echo 
    "<div>" $i "</div>";
    }
    Простой скрипт. Выводит квадраты чисел от 1 до 10 включительно. Мог накосячить ибо фором пользуюсь редко.
    Что из этого надо получить.
    index.php
    PHP:
    <?php
    //Создаем массив вида число=>результат
    for($i=1;$i<=10;$i++){
        
    $array[$i] = $i 2;
    }

    loadTpl('template.php'); //Говорим, что будем юзать файл template.php
    setVar('math'$array); //Передаем перменную $array в шаблон
    displayTpl(); //Ну и прорисовываем шаблон
    template.php
    HTML:
    <div>Какой нибудь хеадер с кавычками `"' и не экранируем :)</div>
    <ul>
    <?php
    foreach ($match as $key=>$value) {
    ?>
        <li>Квадрат числа <?php echo $key; ?> равен <?php echo $value; ?></li>
    <?php
    }
    ?>
    </ul>
    а тут и футер
    Это код, который я хочу видеть и писать. Вам нужно сделать так, что бы я мог этот код написать. То есть сейчас эти функции нужно написать.
    loadTpl('template.php'); //Говорим, что будем юзать файл template.php
    setVar('math', $array); //Передаем перменную $array в шаблон
    displayTpl(); //Ну и прорисовываем шаблон

    Что не понятно спрашиваем, обсуждаем.
  2. Gooos абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    Не совсем ясна конечная цель. Надо создать страницу, где введя число мы получим результат работы скрипта над этим числом?
  3. Red Rabbit Tough member


    Offline
    Message Count:
    898
    Likes Received:
    193
    Нужно написать шаблонизатор, который позволит отделять код от логики, в принципе неважно что он будет выводить, лишь бы в шаблоне не было php-кода.
  4. SpartakuS Thread starter User


    Offline
    • Знаменитый
    Message Count:
    797
    Likes Received:
    82
    не было :)
    На самом деле ничего страшного в шаблоне вполне может быть пхп код. Но это должны быть простейшие конструкции, которые работают с имеющимися переменными, а не логика приложения.
  5. Red Rabbit Tough member


    Offline
    Message Count:
    898
    Likes Received:
    193
    Исправил. :)

    Ну да, типа <?php $varname; ?>. Так даже немного быстрее скорость обработки будет, чем set->tplVar('display', $varname); а потом просто в шаблоне {varname}. Хотя второй вариант проще читается.
  6. SpartakuS Thread starter User


    Offline
    • Знаменитый
    Message Count:
    797
    Likes Received:
    82
    Ну начнем мы с пхп шаблонизатора. Потом сделаем класс. Потом сделаем его со своим синтаксисом.

    ---------- Сообщение добавлено 24.03.2011 в 11:00 ---------- Предыдущее сообщение было 23.03.2011 в 10:20 ----------

    Будующих программистов тут нет, как я понимаю?)
  7. Gooos абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    что-то не могу въехать в логику работы шаблонизатора, единственный пример перед глазами и в голове это шаблоны от SE. Исходя из этого я почему-то представляю это так - отдельно php, отдельно tpl и какой-то мистический для меня Смарти, который и позволяет логику держать в php, а результат отдавать в tpl. Как это приложить на это задание я не соображу. Поставьте меня на путь истинный, а то мой не подготовленный мозг начинает тупить.
  8. nikolas25 Novice member


    Offline
    Message Count:
    21
    Likes Received:
    0
    Такой должен быть результат или нет?
    primer1.png
    Правда я это сделал через одну функцию
  9. SpartakuS Thread starter User


    Offline
    • Знаменитый
    Message Count:
    797
    Likes Received:
    82
    Да. Такой. Выкладывай.
  10. nikolas25 Novice member


    Offline
    Message Count:
    21
    Likes Received:
    0
    Код?я просто сомневаюсь что всё правильно)
    index.php
    PHP:
    <?php
    require_once 'template.function.php';
    //Создаем массив вида число=>результат
    for($i=1;$i<=10;$i++){
        
    $array[$i] = pow($i2);//возведение в степень
    }

    loadTpl('template.php',$array); //Говорим, что будем юзать файл template.php

    ?>
    template.php
    PHP:
    <div>Какой нибудь хеадер с кавычками `"' и не экранируем :)</div>
    <ul>
    <?php
    foreach ($match as $key=>$value) {
    ?>
        <li>Квадрат числа <?php echo $key?> равен <?php echo $value?></li>
    <?php
    }
    ?>
    </ul>
    а тут и футер
    template.function.php
    PHP:
    <?php
        
        
    function loadTpl$template$match) {
            include(
    $template);  
        }
        
    ?>

Share This Page

All rights reserved SocEngine.ru ©