taxonomy, content type, mysql, phpmyadmin, views, .htaccess, php

eaposztrof képe

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:

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?

Fórum: 
Illyés Edit képe

Először is néhány kérés:

  1. Adj normális címet a témádnak.
  2. Légy szíves használj írásjeleket és nagybetűket. (Ha te lusta vagy lenyomni a Shift billentyűt, én miért ne legyek lusta elolvasni a kérdésedet?)
  3. Kódbevitel esetén használd a <code> jelölőt.
  4. Ha nem ismered a HTML jelölőkódokat, akkor inkább ne használd őket! Mivel több helyen is hibás jelölőket alkalmaztál, szétesett az egész oldal. 10 percig tartott, amíg nagyjából kitakarítottam utánad a beküldött szövegedet – legközelebb ezt nem fogom megtenni, hanem egyszerűen törlöm a témát!

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).

0
0