igy fogtam neki felepiteni egy oldalt:
taxonomy:
- country (orszagok)
- currency (penznemek)
- language (nyelvek)
- type (casino poker sportsbook bingo skill-gaming)
phpmyadmin-nal beimportaltam a 'term_data' tablaba az adatokat, 'sequences'-ben modositottam a 'term_data_tid' erteket az aktualisra.
content type:
- page
- gambling
admin/content/types/gambling/fields oldalon, felvettem egy mar letezo mysql adatbazis tablajanak ertekeit:
- id
- displayposition
- name_out
- name
- link_title
- ...
majd, mivel ezt mar nem tudtam phpmyadmin-nal importalni, (gyorsabb kiadni parancsba egy fikanak mint megirni a scriptet ;) rakenyszerultem egyenkent feltoltogetni az adatokat.
egy content pelda:
- name: casinotropez
- name_out: Casino Tropez
- link_title: Casino Tropez
- url: http://casinotropez.com
- type: casino
- country: canada
- currencies: eur, usd, gbp
- languages: dutch, english, french, german
- body: firstdeposit 100% max 100$
- URL path settings: Casino Tropez
fooldalra letrehozok egy node-ot az orszaglistaval:
- canada
- united states
- ...
ezek a nevvel azonos url-re mutatnak, admin/build/path oldalon egyenkent atiranyitom az osszes orszagot a megfelelo taxonomy/term-ekre
views modullal letrehozok egy szurot, amely a taxonomy/term/8-ra csak a Taxonomy: Terms for country 'canada', Node: Type 'gambling', Node: Title-jet listazza ki, szepen mukodik DE,
minden egyes orszagnak kulon letre kell hozzak egy views-t?
letrehozok egy menut, a 'type' ertekekkel: casino poker sportsbook bingo skill-gaming
page content-eket hozok letre minden egyes menu ala
- title: !h casino, !h poker,...
- body: this is the casino site
- Sticky at top of lists
meghekkelem a page.tpl.php-t, node.tpl.php-t a kovetkezo sorral:
<?php if (stristr($title, '!h') === FALSE && $page == 0) { echo "<h1 class=\"title\">"; print ucwords($title); echo "</h1>" }; ?>
.htaccess-hez hozzaadom az alabi sort
RewriteRule ^(casino|poker|sportsbook|bingo|skill-gaming) /q?search=$1$2
letrehozok egy contentet:
- title: search
- URL path settings: q
- content:
<?php //keresesi valtozok az urlbol $params = explode('/',$_GET['search']); unset($sql,$tcountry,$tcurrency,$tlanguage,$ttype); //feltoltom a valtozoka az adatbazisbol foreach ($params as $v) { $term = db_fetch_object(db_query('select * from term_data where name = "%s"',$v)); $sql[] = sprintf('( field_country_tid = %1$d or field_currencies_tid = %1$d or field_languages_tid = %1$d or field_type_tid = %1$d )',$term->tid); switch($term->vid) { case 1: $tcountry = $term->name; break; case 2: $tcurrency = $term->description; break; case 3: $tlanguage = $term->name; break; case 4: $ttype = $term->name; break; } } //kiiratok egy szep cimet a keresesi ertekek alapjan echo '<h2>'; echo ucfirst(preg_replace('/^ /','',$ttype.' sites offering ')); if ($tlanguage && !$tcurrency) {echo ucwords($tlanguage).' language ';} if ($tcurrency) { if ($tlanguage) echo ucwords($tlanguage).' language and '; echo ucwords($tcurrency); } echo ' gameplay '; if ($tcountry) echo "in ".ucwords(str_replace('-',' ',$tcountry)); echo '</h2>'; if (!is_array($sql)) $sql[] = 1; //kilistazom az adatbazisbol a kereses eredmenyeit $sqlquery = 'select distinct(node.nid) from node left join content_field_country c on node.nid = c.nid left join content_field_currencies u on node.nid = u.nid left join content_field_languages l on node.nid = l.nid left join content_type_gambling g on node.nid = g.nid where node.type="gambling" and '.implode(' and ',$sql); //kiiratom az eredmenyeket $result = db_query($sqlquery); while($row = db_fetch_object($result)) { $node = node_load($row->nid); print(l($node->title,'node/'.$node->nid)); echo "<br>"; } ?>
barmilyen hozzaszolast, egyszerusitest varok. es a kerdes marad: minden orszag kilistazasahoz (taxonomy/term/x) letre kell hozzak egy views-et h csak a Node: Title-t kapjam?
argumentumként átadható
Először is néhány kérés:
Végül a kérdésedre válaszolva: nem muszáj minden egyes kategóriára (taxonomy term) külön nézetet készíteni. Megteheted, hogy argumentumként átadod a Views által készített nézet-oldalnak a kategória azonosítót az URL-ben, valamint azt is, hogy kategória helyett CCK-s node-okat hozol létre, és ezekhez node reference segítségével kapcsolod a tartalmakat – erről részletesebben lásd a kézikönyvet (konrét megoldás leírása a hozzászólások között).