pp képe

Na belenéztem a database.inc-be.

90%, hogy Te nem megfelelően használod a db_query-t.

helytelen:

db_query("SELECT * FROM {tabla} WHERE id=$id and akarmi LIKE '%$akarmi%'");

helyes:

db_query("SELECT * FROM {tabla} WHERE id=%d and akarmi LIKE '%%%s%%'",$id,$akarmi);

Nézd meg a db_query-t, és látni fogod, hogy előbb a táblaneveket szedi ki(db_prefix_tables), majd a változókat cseréli(_db_query_callback) és megfelelően eszképeli. (pl. szövegnél mysql-nél ' helyett \' oracle-nél ' helyett '' kell.)

function db_query($query) {
  $args = func_get_args();
  array_shift($args);
  $query = db_prefix_tables($query);
  if (isset($args[0]) and is_array($args[0])) { // 'All arguments in one array' syntax
    $args = $args[0];
  }
  _db_query_callback($args, TRUE);
  $query = preg_replace_callback(DB_QUERY_REGEXP, '_db_query_callback', $query);
  return _db_query($query);
}

Ja és ne felejtsük el, hogy az SQL szabvánnyal szemben, Drupal-ban mindig nagybetűsek az SQL kulcsszavak.

Érdemes elolvasni a Drupal SQL kódolási szabályait
röviden a lényeg:

  • UPPERCASE reserved words
  • lowercase table, column and constraint names.
  • enclose each table name with {} (this allows Drupal to prefix table names).
  • all literal values should move out of query body, which escape as %d|%s|%%|%f|%b, when using db_query(), db_query_range(), and db_query_temporary().
  • Any string literal or %s placeholder must be enclosed by single quotes: ' Never use double quotes.

Magyar szerűen(nem vagyok egy műfordító alkat.):

  • A foglalt szavak/kulcsszavak mindig nagybetűsek
  • Kisbetűsek a tábla, oszlop és kényszer(? ezmiez constraint) nevek.
  • Minden tábla nevet {} jelek közé kell írnod (Ez teszi lehetőv a Drupal számára a prefixek használatát).
  • Az összes változó értéket ki kell szedni a query-ből és escapel-ni kell a következő jelekkel: %d|%s|%%|%f|%b, amikor a következő függvényeket használod: db_query(), db_query_range() és db_query_temporary().
  • Minden szöveg változót vagy %s jelölőt aposztrófok(') közé kell zárni. Soha ne használj idézőjelet/dupla aposztrófot (")

pp

0
0
thamas képe

Egész pontosan: képernyőfelvétel.

Már közzétette pp a tanarurkerem.hu-n.

Üdvözlettel:
Hajas Tamás

0
0

Üdvözlettel:
Hajas Tamás

chrispooh képe

Köszönöm a sok segítséget!
Lehet nem írtam le mindent, ezért is nem tudtatok nekem teljes mértékben választ adni. Jelenleg úgy épül fel a címlap, hogy az alapértelmezett egy page-front.tpl-php-ből van lekezelve, és oda régiókat csináltam, ahova blokkokba kötött listákat töltök be a régión keresztül. Ezzel eddig nincs gond, szépen megjelennek. Van egy napi kiemelt tartalom block is, amibe ugyancsak block és régió kombináción keresztül töltöm be a napi kiemelt teaser nézetét. Nos a helyzet az, hogy a node.tpl.php-ba átírtam a teaser-t, hogy ha $is_front, akkor ne legyen dátum és szerző sem, csakis a kép és a rövid szöveg. Na most ugye a $is_front csak akkor játszik, ha valóban címlapról beszélünk, viszont nekem lenne még 4 db címlapom, amiket meg is kreáltam panel-el, úgy régiókhoz hozzákötöttem a módosított listákat a címlapoknak megfelelően, viszont a napi kiemelttel gondban vagyok, mert egyszerűen normális teasert jelenít meg, tehát nem adja át értelemszerűen az $is_front-ot, így nem tudok rá hivatkozni, hogy ott ne jelenjen meg a szerző és a dátum. Arra meg sajna nem jöttem rá, hogyan tudnám a blokkban mezőnkként kezelni és teaser listámat :o(
Tudtok segíteni?
Krisz

0
0
chrispooh képe

Ha jól látom, csak egy egyszerű url átadást kéne alkalmaznom, azaz a node.tpl.php-ba, ahol kezelem a teasereket, meg kéne mondanom, hogy a xxx.com/cimlap2 oldalon a teaser a kért mezők nélkül jelenjen meg. (mert azt elfelejtettem leírni fent, hogy a node.tpl.php-ban már külön kezelem a címet, dátumot, képet, stb.)
Na és ezt az url átadós mókát nem csináltam még sosem.

Krisz

0
0
pp képe

Rossz felé indultál el. A címlap csak egy van, ezért hívják címlapnak. ;)
Neked az kell, hogy pár útvonalon máshogy nézzen ki valami. Tehát neked az útvonal kell.

0. verzió:

Csinálsz egy tömböt:

  $ami_mas = array(
             'utvonal1',
             'utvonal2',
             'utvonal3',
             'utvonal4',
  );

És azt nézed, hogy benne van-e az útvonal a tömbben.

  if($is_front || in_array($_GET['q'],$ami_mas)){
    ...
  }

1. számú megoldás
a változót beleteszed egy smink változóba és irsz egy icipici kódot, hogy a smink beállításainál ezeket az útvonalakat is lehessen állítani.

pp

0
0
jf képe

A title paraméterbe valamiért HTML kód került, ez okozza a problémát:

<a href="http://sandportal.extra.hu/files/kepek/image_073_KD_220Z.jpg" rel="lightbox[node_thumbnails]" title="Vörös égbolt<br /><a href="http://sandportal.extra.hu/?q=node/134" id="node_link_text">Kép nézet</a>"><img width="100" height="75" class="image image-thumbnail" title="Vörös égbolt" alt="Vörös égbolt" src="http://sandportal.extra.hu/files/kepek/image_073_KD_220Z.thumbnail.jpg"/></a>
0
0
aboros képe

az ötösre írt modulok és sminkek nem mennek a hatoson. nagyon sok hasznos modul hiányzik még a hatos alól, szerintem még nem érdemes azzal nekilátni oldalépítésnek.

a 300 html -t nem nagyon értem, de 300 node az nem mennyiség. ;)

0
0

-
clear: both;

aboros képe

az biztos. van olyan file benne, hogy template.tpl.php ? abban nézd meg, hogy nincs e beleégetve ez a 'links inline', szerintem ott lesz.

0
0

-
clear: both;

chrispooh képe

Köszi pp, ez az, ami kellett. Nagyszerű megoldás.

További szép napot mindenkinek: Krisz

0
0
Paal képe

Ilyenre gondoltál?

http://palocz.hu/irasok/2007/dinamikus_select

Üdv, Pali

0
0

--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan