ФорумПрограммированиеPHP для идиотов → Подмена шаблона при асинхронном запросе

Подмена шаблона при асинхронном запросе

  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 16 июня 2010 г. 20:50, спустя 7 минут 47 секунд

    интересная мысля…
    Спустя 226 сек.
    слушай, а что это за `'template' => 'templates/main.tpl',` ? У меня около 10 блоков на странице, для каждого свой шаблон. Это какой именно шаблон?
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 17 июня 2010 г. 0:37, спустя 3 часа 47 минут 1 секунду

    у меня на каждый экшен был свой шаблон зоны, ну относительно, просто логические блоки:
    шаблон ошибки:
    <span class="error"><?php echo Escape::Html($Data->Text)?></span>

    шаблон сообщения:
    <span class="message"><?php echo Escape::Html($Data->Text)?></span>

    шаблон пейджера:
    <div id="pager" class="pl">
    <?php foreach($Data->Pages as $Page): ?>
    <div class="pagenum <?php echo ($Page['number'] == $Data->CurrNumber) ? 'currnum' : '';?>">
    <a href="<?php echo Escape::Url($Page['url'])?>" class="nochange" onclick="return Update('pager', this);"><?php echo Escape::Html($Page['number'])?></a>
    </div>
    <?php endforeach;?>
    </div>

    и так везде. Обычные модули страницы. Для каждого динамически подгружаемого блока свой шаблон, в который сетаются такие подшаблоны. Очень круто! )))
    Клац бац, отправил ошибку, как раз под то поле в котором она есть, или сообщение туда куда надо. Допустим идём по комментам. Опа на другую страницу,
    а там шаблон списка комментов, а внутри тот же пейджер с другими данными. Ваще супер.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 17 июня 2010 г. 4:40, спустя 4 часа 2 минуты 11 секунд

    лолололоЛ!!!! аякс без жсона != аякс, это костыль.

    зачем менять два? оОоОлолол!! сделай шаблонизатор, котрый будет одинаково работать с жсон данными и пхп да и все. проблем = 0
    Сапожник без сапог
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 17 июня 2010 г. 5:29, спустя 48 минут 59 секунд

    что это за `'template' => 'templates/main.tpl',` ? У меня около 10 блоков на странице, для каждого свой шаблон. Это какой именно шаблон?

    который содержит <html>…</html>, т.е. всю страницу целиком. блоки можно указывать в виде блоков или сниппетов

    $routes = array(
    '/foo/' => array(
    'type' => 'html',
    'template' => 'templates/main.tpl',
    'snippets' => array(
    'top' => 'Common:menu:tpls/menu.tpl',
    'right' => 'Basket:basketinfo:tpls/basketinfo.tpl',
    'main' => 'Foo:foo1:tpls/foo1.tpl',
    ),
    ),
    );


    сниппетами называются блоки в MODx, отсюда и название

    top, right, main - это зоны в main.tpl, и в них вставляются подшаблоны. "Класс : метод : шаблон", либо "функция : шаблон"

    я так делаю и схема вполне рабочая. единственное "но" - много кода на каждый роут, хотя это в общем не проблема

    зоны можно описать отдельно, например

    $snippets = array(
    'snippets' => array(
    'top' => 'Common:menu:tpls/menu.tpl',
    'right' => 'Basket:basketinfo:tpls/basketinfo.tpl',
    );

    $routes = array(
    '/foo/' => array(
    'type' => 'html',
    'template' => 'templates/main.tpl',
    'inherit_snippets' => array('top', 'right'),
    'snippets' => array(
    'main' => 'Foo:foo1:tpls/foo1.tpl',
    ),
    ),
    ),
    );
    Спустя 79 сек.
    аякс без жсона != аякс

    ajax - асинхронный xml, ajaj - асинхронный json.
    можно подгружать сразу html и вставлять в нужное место в DOM
    не всё полезно, что в swap полезло
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 17 июня 2010 г. 5:35, спустя 6 минут 13 секунд

    ajax - асинхронный xml, ajaj - асинхронный json.
    можно подгружать сразу html и вставлять в нужное место в DOM

    не ну это не америка)) это не в счет :)

    да по сути похуй :)

    Сапожник без сапог
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 17 июня 2010 г. 9:26, спустя 3 часа 51 минуту 33 секунды

    можно и ифреймом грузить дивы внычку и копировать их потом в нужное место…
    чем в принципе и занимаются некоторые аджакс аплоадеры файлов…

    Спустя 111 сек.
    это я к тому, что да по сути похуй :)
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 17 июня 2010 г. 10:29, спустя 1 час 2 минуты 31 секунду

    сделай шаблонизатор, котрый будет одинаково работать с жсон данными и пхп да и все.

    эт как? ну один хуй придется в яваскриптовом шаблоне менять что-то и в серверном
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 17 июня 2010 г. 11:05, спустя 35 минут 53 секунды

    шаблонизатор для json:

    echo json_encode($data);
    не всё полезно, что в swap полезло
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 17 июня 2010 г. 11:11, спустя 6 минут 14 секунд

    master, лол)
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 17 июня 2010 г. 11:30, спустя 18 минут 51 секунду

    не знаю че и сказать даже. Ну вот у тебя json:

    [
    {
    date : '11.11.2010',
    text : 'Господа, вы хуйня'
    }, {
    date : '12.11.2010',
    text : 'дада!'
    }
    ]


    это пришло на клиент. Что дальше с этим делаешь?
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 17 июня 2010 г. 11:30, спустя 37 секунд

    Абырвалг, js templates и в путь!
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 17 июня 2010 г. 11:40, спустя 9 минут 13 секунд

    ну и? теперь у тебя 2 шаблона: js template и html template. Меняем че-то в дизайне/верстке - редактируем 2 шаблона.

    В чем преимущество рендеринга на клиенте? Кроме того, что мы чуточку меньше будем нагружать серв.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 17 июня 2010 г. 11:49, спустя 8 минут 57 секунд

    Абырвалг, ну ты нудный) отстань от меня :D

    я счастливый, мне кабель новый протянули и есть интернет.
    Сапожник без сапог
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 17 июня 2010 г. 13:22, спустя 1 час 33 минуты 6 секунд

    В чем преимущество рендеринга на клиенте?

    ни в чём. я так делал (форум написал), очень сложно вносить изменения в оформление
    не всё полезно, что в swap полезло
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 17 июня 2010 г. 15:05, спустя 1 час 43 минуты 28 секунд

    Дуд, ты понял?!
    Спустя 81 сек.
    так что возвращай html/json+html и не выябуйся.

    А вариант с прописыванием в роутере типа отпета - это на API похоже. Я еще не дорос до создания своего API

Пожалуйста, авторизуйтесь, чтобы написать комментарий!