SQL karbantartás keresés opcióval
hi!
Adott egy korábbi kódminta:
<?php function listazas() { $header = array( array('data' => t('User name'), 'field' => 'u.name', 'sort' => 'asc'), array('data' => t('Mail'), 'field' => 'u.mail'), array('data' => t('Operations'), 'colspan' => 2), ); $form['header'] = array( '#type' => 'value', '#value' => $header, ); $sql = 'SELECT * FROM {users} u WHERE u.uid > 0'; $sql .= tablesort_sql($header); $result = pager_query($sql, 50, 0); $form['user']['#tree'] = TRUE; while ($user = db_fetch_object($result)) {
contextual filterrel is megy, de csak php kóddal
a nézeted tartalmakat listáz, nem szűr tartalom típusra. közzétettre azért érdemes szűrni így is. egy contextual filtert használ, content: type. provide default value -ra van állítva és php code. máshogy tisztán views modullal nem megy, kivéve persze ha csinálsz annyi nézetet ahány tartalom típusod van és valahogy bevuduzod, hogy mindig csak egyik blokk jelenjen meg (pl a validálós trükkel amit már írtak)
esetleg azt is lehetne még, hogy pathauto modullal olyan útvonal álneveket generálsz a nodeoknak, hogy szerepeljen benne a tartalom típusuk neve, article, news, event, akármi és akkor azt eszi majd meg a contextual filter és akkor nem is kell php kód, simán visszadhatod az útvonal egy részét direktbe.
itt egy ilyen nézet lent, importáld be és nézd meg hogyan működik. persze nem igazán szép és elegáns, mert php kód van benne, ezt nem szoktuk szeretni. page manager modullal könnyű lenne mindig az adott node típusát átadni a contextual filternek, php kód nélkül, de akkor ahhoz kéne még panels modul is, ráadásul ha ezt sidebarba akarod, akkor az külön macera lesz. persze érdemes ismerkedni a lehetőségekkel azért, ha van időd.
szóval a nézet:
-
clear: both;