разнос массива по html шаблону

craz

Нестандартное звание
Я, наверное, кого-то сейчас поражу глупостью своего вопроса... но блин, что-то я давно не "расчихлял" IDE...
имеется такой массив переданный в шаблон смарти
PHP:
Smarty_Variable Object (3)
->value = Array (10)
  191 => Array (15)
    oid => "191"
    name => "Сочная редиска"
    parent_oid => "189"
    master_oid => "3"
    content => Array (14)
      annotate => "В пищу обычно употребляют корнеплоды,..."
      articul => "REDISKA"
      images => Array (1)
        0 => Array (4)
          id => "0"
          name => "Сочная редиска"
          path => "/alboms/3/191/00007.jpeg"
          thumb => "/alboms/3/191/.80x80/00007.jpeg"
      name => "Сочный редис"
      text => "<p>Редис применяется в качестве овощн..."
      title => "Сочный редис"    
  1116 => Array (15)
    oid => "1116"
    name => "Красный помидор"
    parent_oid => "189"
    master_oid => "3"
    content => Array (18)
      annotate => "Название помидор происходит от итал. ..."
      articul => "ПОМИК-КР"
      images => Array (4)
        0 => Array (3)
          name => "Красный"
          path => "/alboms/3/1116/1.png"
          thumb => "/alboms/3/1116/.80x80/1.png"
      name => "Красный помидор"
      text => "<p>Родина &mdash; Южная Америка, где ..."
      title => "Красный помидор"
HTML:
<div class="row">
    <div class="grid_12">
        <div id="owl">
            <div class="item">
                <div class="row">
                    <div class="grid_6">
                        <div class="box_1 bg_1">
                            ...контент 1 элемента
                        </div>
                    </div>
                    <div class="grid_6">
                        <div class="row">
                            <div class="grid_3">
                                <div class="box_1 bg_1">
                                    ...контент 2 элемента
                                </div>

                                <div class="box_1 bg_1">
                                    ...контент 3 элемента
                                </div>
                            </div>
                            <div class="grid_3">
                                <div class="box_1 bg_1">
                                    ...контент 4 элемента
                                </div>

                                <div class="box_1 bg_1">
                                    ...контент 5 элемента
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <div class="item">
                <div class="row">
                    <div class="grid_6">
                        <div class="box_1 bg_1">
                            ...контент 6 элемента
                        </div>
                    </div>
                    <div class="grid_6">
                        <div class="row">
                            <div class="grid_3">
                                <div class="box_1 bg_1">
                                  ...контент 7 элемента
                                </div>

                                <div class="box_1 bg_1">
                                    ...контент 8 элемента
                                </div>
                            </div>
                            <div class="grid_3">
                                <div class="box_1 bg_1">
                                    ...контент 9 элемента
                                </div>

                                <div class="box_1 bg_1">
                                    ...контент 10 элемента
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
<!--........................Еще N раз-- блок class='item'............................-->
</div>
</div>
</div>
Как правильно этот одномерный считай массив разложить в данную верстку?
 

Adelf

Administrator
Команда форума
Да. Отстойное решение, но раз уж такой говнокод, что не имеешь доступа к коду, то пофиг. юзать надо поле first foreach обьекта. @WMix, правильную ссылку дал.
 

craz

Нестандартное звание
блин мне бы тупо алгоритм без вспомогательных функций пхп, то есть реально только через форич, можно брать просто массив $testArray = range(1000,2000,2); для чистоты.
 

AnrDaemon

Продвинутый новичок
Я не вижу у тебя тут одномерного массива.
Дай два файла, шаблон и код с ассигном, его вызывающий.
 

craz

Нестандартное звание
Ну образно говоря пускай он будет одномерным, так как в остальных измерениях нужной инфы нет, там только уточнения самого объекта - то есть одномерный в смысле "неиерархический". До кода с ассигном нет у меня доступа. шаблон я приложил. Массив называется $directrories_pubs
 

AnrDaemon

Продвинутый новичок
По сути в Smarty доступны многие из тех трюков, что ты можешь применить в PHP. Можно напрямую использовать функции PHP во многих местах.
Как бы ты написал этот код на PHP?

шаблон я приложил. Массив называется $directrories_pubs
Да не нужен доступ до кода, просто тупо массив с примером данных. чтобы я не гадал, правильно ли я его реконструировал по твоим описаниям.
 

craz

Нестандартное звание
По сути в Smarty доступны многие из тех трюков, что ты можешь применить в PHP. Можно напрямую использовать функции PHP во многих местах.
Как бы ты написал этот код на PHP?


Да не нужен доступ до кода, просто тупо массив с примером данных. чтобы я не гадал, правильно ли я его реконструировал по твоим описаниям.
Будем честными я не люблю такие задачи, я не знаю как это сделать даже на чистом php.
 

Adelf

Administrator
Команда форума
какая нахер "задача"? в двух соснах заблудился... и ноет что карты нет.

Делаешь контент первого элемента через $articles[0] с проверкой
PHP:
<div class="grid_6">
<div class="box_1 bg_1">
...контент 1 элемента
</div>
</div>
Остальные делаешь в foreach но с условием if(!foreachname.first)

Из хелпа: {$smarty.foreach.name.property}
 

craz

Нестандартное звание
я не буду говорить, что 1000 сайтов сделал, но 50-100, но блин вопрос распределения эл-ов массива по заданным условиям бывает редко, 3-5 раз было такое, и это самый сложный, я понимаю что где-то там надо break, где-то continue, но поскольку все таки даже удобное для меня решение на php мне пришлось бы переписывать на смарти - это и ввергает меня в ступор.
Ну не люблю я такого рода задачи - они редки! Если сложно помочь по тем данным которые дал я, то давайте я дам больше инфы.

P.s. Еще раз скажу мне достаточно алгоритма!
 

AnrDaemon

Продвинутый новичок
У него там в примере вроде больше отступов.
Но если он действительно только один, то у Смарти есть более прямое решение.
Код:
{foreach $array as $value}
{if $value@first}
…
{/if}
{/foreach}
P.S.
Ещё раз кто-нибудь сошлётся на документацию по Smarty v2 - буду бить обижусь. Сильно.
 

craz

Нестандартное звание
Это означает, что исходные данные переданы в шаблон через задницу.
ну вы же можете понять, что НЕ Я их в массив передал?((( Я бы на стороне php если бы это был единичный сайт сделал бы по-другому.
Я работаю с тем что мне дали...
 

AnrDaemon

Продвинутый новичок
Да, я могу понять. Это не изменит помего мнения о том, кто проектировал бэк.
 

craz

Нестандартное звание
Да, я могу понять. Это не изменит помего мнения о том, кто проектировал бэк.
Это конструктор сайтов, если бы не вот эта задача, а она очень частная, то вроде все всех устраивает в данных отдаваемых шаблону, можно конечно именно для этого аккаунта попросить какие-то свои настройки вывода именно этого массива... но тогда что просить? array_chunk($array,5)? мне же этого будет достаточно правильно?
 

craz

Нестандартное звание
Это конструктор сайтов, если бы не вот эта задача, а она очень частная, то вроде все всех устраивает в данных отдаваемых шаблону, можно конечно именно для этого аккаунта попросить какие-то свои настройки вывода именно этого массива... но тогда что просить? array_chunk($array,5)? мне же этого будет достаточно правильно?
хрен там, а не настройки данного массива)
 
Сверху