Форум → Программирование → PHP для идиотов → Нативно-хуетивный шаблонизатор
Нативно-хуетивный шаблонизатор
Страницы: ← Предыдущая страница • Следующая страница →
-
1 октября 2010 г. 0:23, спустя 1 минуту 29 секунд
так я отрисовал левую часть кольца твоего (то, что было уже сыграно). -
1 октября 2010 г. 0:31, спустя 8 минут 13 секунд
Да ни хуя, когда чемпионат еще не начался в левой части как и в правой будет все несыгранное.
так я отрисовал левую часть кольца твоего (то, что было уже сыграно).
Потом слева будет часть сыгранных часть несыгранных, потом в правой. Потом будет везде сыгранные. Кольцо вращается, а не просто слева сыгранные, справо несыгранные.
Так что цикла тут как минимум четыре - по два варианта в каждой колонке и все бы ничего, но еще вот проблема прибивки к низу возникает и поэтому нужен rowspan. -
1 октября 2010 г. 0:27, спустя 23 часа 55 минут 40 секунд
vasa_c, васяц, можешь еще раз объяснить мысль этой темы на примере AlexB. Я хочу лично твой вариант понять -
1 октября 2010 г. 0:30, спустя 3 минуты 26 секунд
я не понял почему в прошедших матчах счет пустой, а в будущих он есть :)
к постановке задачи это не относится, но все-таки интересноιιlllιlllι унц-унц -
-
1 октября 2010 г. 0:35, спустя 4 минуты 7 секунд
Дизайнер лажанулся, это же просто эскиз, должно быть наоборот. Он дизайнер - ему сказали два варианта матчей сделать, он сделал. Надо было мне картинку поправить, но я надеялся никто не заметит… )))
я не понял почему в прошедших матчах счет пустой, а в будущих он есть :)
Спустя 66 сек.
Со стрелками вопрос интересный, если они показывают течение времени, то они правильные, если направление вращения кольца то надо наоборот. Мы решили, что лучше время.
имхо на рисунке стрелка не в ту сторону -
1 октября 2010 г. 0:36, спустя 49 секунд
AlexB, да, время понятнее как то, это же календарь…
Ребята, дело не в коньяке и стрелочках - дело в смысле вопроса васяца! -
1 октября 2010 г. 1:24, спустя 47 минут 43 секунды
<?php
$blocks = array(
1, 2, 3, 4, 5, 6, 7 // отсортированы по дате, сегодня 3 число (1, 2 - игранные, 3 - сейчас играется, 4-7 - потом)
)
/*
такое гавно должно быть на выходе
3->* *
* *<-1
*
* *<-7
*/{# сколько элементов в диве и какой блок сечас играется #}
{% set t, now = 4, 3 %}
<div id="left">
{% set i = 0 %}
{% for b in blocks %}
{% if i < t and b >= now %}
{{ b }} {# левый блок, не игранные игры + сегодняшняя #}
{% set i = i + 1 %}
{% endif %}
{% endfor %}
</div>
<div id="right">
{% set i = 0 %}
{% for b in blocks %}
{% if i < t and b < now %}
{{ b }} {# правый блок, сыгранные игры #}
{% set i = i + 1 %}
{% endif %}
{% endfor %}
{% for b in blocks %}
{% if i < t and b > now %}
{{ b }} {# правый блок, не игранные игры, "хвост" #}
{% set i = i + 1 %}
{% endif %}
{% endfor %}
</div>
еще нужно хвост для левого дива, но мне леньСпустя 107 сек.ага, и еще хвост правый у меня будет без интервала как бы. Но это наверно можно через css решить -
1 октября 2010 г. 1:49, спустя 25 минут 18 секунд
Во первых, через css это решить сложно, поэтому позволю себе опять напомнить про таблицу с rowspan, которая это решает. Но при этом плохо поддается шаблонизации.
Во вторых, все циклы идут по массиву в одном направлении, что неверно в принципе. Некоторые части кольца строятся снизу вверх.
В третьих, уже шаблон превратился в мешанину из сложных условий, а это еще только начало. Что я собственно и хотел показать. -
1 октября 2010 г. 4:16, спустя 2 часа 26 минут 48 секунд
нако!
сделал в полунативном стиле. позже оформлю в какой-нибудь синтаксис :)
ключ ко всему - функция-хелпер roundSlice($today, $grid), которая режет массив с турнирной сеткой и закольцовывает его
один турнирный день офомлен в отдельный под-шаблон и инклудится
лэйаут отдельно, шаблон турнирной сетки найледует от него. вот главный шаблон:
<?php
$this->_extend('default-layout');
list($left, $middle, $right) = roundSlice($today, $grid);
?>
<table class="tournir">
<?php
if (!empty($middle)) {
?>
<tr>
<td colspan="2" id="today">
<?php
list($date, $item) = each($middle);
include $this->_prepare('day');
?>
</td>
</tr>
<?php
}
$iterator = count($left) > count($right) ? array_keys($left) : array_keys($right);
foreach ($iterator as $dummy) {
?>
<tr>
<td>
<?php
list($date, $item) = each($left);
include $this->_prepare('day');
?>
</td>
<td>
<?php
list($date, $item) = each($right);
include $this->_prepare('day');
?>
</td>
</tr>
<?php
}
?>
</table>
результат:
я ничего не оптимизировал до поры, просто заставил это работать
Спустя 151 сек.Шаблонизатор из этой темы: http://pyha.ru/forum/topic/4342.msg92930#msg92930
Там есть пример прикрутить любой НЕнативный синтаксис.ιιlllιlllι унц-унц -
1 октября 2010 г. 8:50, спустя 4 часа 34 минуты 46 секунд
сейчас roundSlice() сделан топорно через циклы. можно переделать на функции array_* если будет не лениво
а вот так выглядит контроллер:
<?php
$grid = array(
strtotime('2010-09-27') => array(
array('Бостон Брюинз', 'Вашингтон Кэпиталз', '1:4'),
),
strtotime('2010-09-28') => array(
array('Торонто Мейпл Ливз', 'Монреаль Канадиенс', '2:1'),
),
strtotime('2010-09-29') => array(
array('Колорадо Эвеланш', 'Сан-Хосе Шаркс', '4:5'),
),
//…
);
$data = array(
'pageTitle' => 'Турнир',
'today' => strtotime('2010-10-05'),
'grid' => $grid
);
$view = new View();
$view->render('round-grid', $data);
вся логика представления вшаблонепредставлении. красота!ιιlllιlllι унц-унц -
1 октября 2010 г. 8:08, спустя 23 часа 17 минут 15 секунд
Представлять в хитром виде - задача программиста. Он пишет каркас шаблона, верстальщик потом его разукрашивает.
Показывай … Ну на бутылку вискаря забиваемся?Пожалуйста.
Фишка в том, что все движется по кругу, и при разных датах таблица формируется по разному.
Иногда левая и правая колонка содержат одинаковое число дат.
Иногда разрыв между началом и концом соревнования слева, иногда справа.
Слабо все в один шаблон засунуть, да еще чтоб он был читаем?
На Blitz - элементарно.
Формировать правильный массив с данными нада заранее, а не через жопу, чтобы потом жопа была на шаблоне.
Данный пример схож по аналогии с выводом древовидного массива?
Чем-то схоже с темой одного человека как-то
У меня есть массив, шаблонизатор не позволяет мне производить операции с массивом чтобы он стал древовидным?
А вот спрашивается нахуя он пытался на шаблоне сделать древовидный массив, когда его нада было подготовить заранее. и рекурсией вывести?! -
-
-
1 октября 2010 г. 8:42, спустя 19 минут 37 секунд
кто-нибудь видит ЖОПУ в моём примере?Спустя 99 сек.pissflaps, надо вывести дерево? в твоем исходном массиве достаточно информации о структуре дерева? тогда это можно сделать в шаблонеιιlllιlllι унц-унц
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!