Invenzzia »

Pages: [1]   Go Down
  Print  
Author Topic: OPTv2: Zagnieżdżone sekcje nie działają?  (Read 43 times)
Description: nic nie pokazuje w szablonie
0 Members and 1 Guest are viewing this topic.
kapitan_hak
User

OfflineOffline

Posts: 2

Zbanowany


View Profile
« on: April 05, 2008, 08:30:46 AM »

Witam, mam problem z zagnierzdżonymi sekcjami. Otórz gdy uruchmię skrypt który przekazuje do szablonu takie oto tablice(górna to arts, dolna to categories):
Code:

array(1) {
  [1]=>
  array(1) {
    [0]=>
    array(7) {
      ["titleen"]=>
      string(13) "Inglish title"
      ["titlepl"]=>
      string(12) "Polsky title"
      ["contentpl"]=>
      string(14) "Polsky content"
      ["contenten"]=>
      string(15) "inglish content"
      ["author"]=>
      string(11) "kapitan_hak"
      ["date"]=>
      string(11) "kapitan_hak"
      ["catid"]=>
      string(1) "1"
    }
  }
}
array(1) {
  [1]=>
  array(2) {
    ["name"]=>
    string(12) "inglish nejm"
    ["description"]=>
    string(12) "inglish desc"
  }
}

Pokazuje się tylko puste <ul>. Kod szablonu:
Code:
<?xml version="1.0" ?>
<opt:extend file="index.tpl">
   <opt:snippet name="content">
      <opt:section name="categories">
         <h2>{$categories.name}</h2>
         <p>{$categories.description}</p>
         <ul>
            <opt:section name="arts">
               <li>{$arts.author}</li>
            </opt:section>
         </ul>
      </opt:section>
   </opt:snippet>
</opt:extend>
To mój błąd? Z góry dzięki za pomoc.
« Last Edit: April 05, 2008, 11:47:34 AM by eXtreme » Logged
eXtreme
Invenzzia
Administrator
User
*****
OfflineOffline

Posts: 6


Jacek Jędrzejewski

246902004
View Profile WWW
« Reply #1 on: April 05, 2008, 11:47:01 AM »

Może dlatego, że indeksy tej tablicy zaczynają się od 1?
Sekcja iteruje tablicę zgodnie z automatycznymi indeksami liczonymi od 0. U ciebie indeks kategorii to 1. Zmień na 0 i następnym kategoriom nadawaj kolejne indeksy +1. Nie przypisuj im jakichś własnych ID, np z bazy danych bo nie będzie to działać.
Logged

Invenzzia Development Team
https://invenzzia.org/
http://exsite.edigo.pl/
kapitan_hak
User

OfflineOffline

Posts: 2

Zbanowany


View Profile
« Reply #2 on: April 05, 2008, 02:27:42 PM »

No cóż, troszke nieeleganco to musiałem zrobić(catid - 1), ale działa...
Logged
eXtreme
Invenzzia
Administrator
User
*****
OfflineOffline

Posts: 6


Jacek Jędrzejewski

246902004
View Profile WWW
« Reply #3 on: April 05, 2008, 03:15:51 PM »

A co, jeśli będziesz miał "lukę" w indentyfikatorach (bo np. skasujesz jakąś kategorię)?
Nie tak to powinieneś był zrobić. Nie wiem jak pobierasz dane z bazy ale zakładam, że masz jakieś "źródło" i robisz to np. tak: (przykład z kosmosu)

Code:
// pobieranie rekordów z bazy danych
// ...

$categories = array();
while($item = $resource->fetch())
{
$categories[] = array(
'id' => $item->id,
'name' => $item->name,
'description' => $item->description
);
}
Czy jakkolwiek, ale bądź co bądź zasadą jest by stworzyć tablicę wynikową, która zawiera kolejne rekordy numerowane od 0 (a powyższa metoda to gwarantuje).
Logged

Invenzzia Development Team
https://invenzzia.org/
http://exsite.edigo.pl/
Pages: [1]   Go Up
  Print  
 
Jump to:  

Subject Started by Replies Views Last post
PHP 5.2 Nesting level too deep - recursive dependency deallas 6 89 Last post March 09, 2008, 08:45:29 PM
by Zyx
OPD: Debug Przemek 2 87 Last post March 25, 2008, 03:53:06 AM
by Przemek
REGULAMIN Zyx 0 135 Last post January 30, 2008, 09:34:09 AM
by Zyx
JAK MĄDRZE ZADAWAĆ PYTANIA Zyx 0 53 Last post January 30, 2008, 10:28:40 AM
by Zyx
JAK MĄDRZE ZADAWAĆ PYTANIA Zyx 0 32 Last post January 30, 2008, 10:29:33 AM
by Zyx