Minden oldalon amit egy időre befejezek - mert ugye weboldalt csak elkezdeni lehet befejezni nem - megpróbálom a legjobb teljesítményt kicsikarni a rendszerből, hogy gyors legyen.
Ennek egyik legjobb módszere ha a nézetünket nem adatbázisban eltárolt adatok alapján kérdeztetjük le az adatbázisból, hanem mindezt kiexportáljuk egy modulba és az intézi csak a lekérdezés eredményét.
Elég elavult dolognak számít 2011 vége felé 6.x-2.x verziójú Views modulról írni, de hátha valaki még nem csinálta ezt. (7.x-3.x-en nem jöttem még rá, hogy kell.)
Tehát a lépések a következők:
- Nyomjuk meg a nézeten az export linket
- Ez ki fog adni egy hosszú php kódot.
- Készítsünk egy modult melynek neve viewskodba.module tartalma pedig a következő legyen:
<?php
function foobar_views_api() {
return array(
'api' => 2,
'path' => drupal_get_path('module',foobar) . '/views/*.inc',
);
}
function foobar_views_default_views() {
$path = './'. drupal_get_path('module',foobar) . '/views/*.inc';
foreach (glob($path) as $views_filename) {
require_once($views_filename);
}
return $views;
}
- Modul nem létezhet .info file nélkül:
name = "FooBar"
description = "Stores the view in code, idea from sgergely.hu"
core = "6.x"
version = "6.x-dev"
project = "foobar"
package = "Custom"- Hozzunk létre a modul könyvtárán belül egy views könyvtárat, ebben fogjuk tárolni az exportált nézetet. A file neve legyen mondjuk nezetem.inc amelynek a tartalma a következőképpen nézzen ki:
<?php
//Ennek a sornak a helyére kell bemásolni az első pontban megkapott hosszú php kódot.
$views[$view->name] = $view;- Még nem végeztünk mert a felületen be kell állítani, hogy a Views tudja, hogy kódba raktuk a nézetet.
- A Tools oldalon ( /admin/build/views/tools ) töröljük a Views Cache-t
- A nézet list oldalon ( /admin/build/views/list ) kattintsunk a Visszaállít linkre
- Töröljük mégegyszer a Views Cache-t.
- Kész.
Új hozzászólás