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

gergely képe

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:

&lt;?php<br />function foobar_views_api() {<br />  return array(<br />    'api' =&gt; 2,<br />    'path' =&gt; drupal_get_path('module',foobar) . '/views/*.inc',<br />  );<br />}
<p>function foobar_views_default_views() {<br />  $path = './'. drupal_get_path('module',foobar) . '/views/*.inc';<br />  <br />  foreach (glob($path) as $views_filename) {<br />     require_once($views_filename);<br />  }<br />  return $views;<br />}</p>
  • Modul nem létezhet .info file nélkül:

name = "FooBar"<br />description = "Stores the view in code, idea from sgergely.hu"<br />core = "6.x"<br />version = "6.x-dev"<br />project = "foobar"<br />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:

&lt;?php<br />//Ennek a sornak a helyére kell bemásolni az első pontban megkapott hosszú php kódot.<br />$views[$view-&gt;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.

Címkék: drupaldrupal6views