Views 2 nézet kódba exportálása

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