Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Views ›

Views automatisiert erstellen

Eingetragen von binki@drupal.org (42)
am 23.06.2008 - 12:37 Uhr in
  • Views
  • Drupal 5.x

Hi,

ich würde gerne Views automatisiert erzeugen. Ich habe da auch schon etwas recherchiert:
http://drupal.org/node/223404.
Zuerst habe ich eine bereits vorhandene View (View Objekt) exportiert und in PHP einegefügt.

<?php

// Bootstrap Drupal
include_once "includes/bootstrap.inc";
include_once(
"includes/common.inc");
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

 
$view = new stdClass();
 
$view->name = 'Kat_View_Test';
 
$view->description = 'Test';
 
$view->access = array (
 
0 => '1',
);
 
$view->view_args_php = '';
 
$view->page = TRUE;
 
$view->page_title = 'Test';
 
$view->page_header = '';
 
$view->page_header_format = '1';
 
$view->page_footer = '';
 
$view->page_footer_format = '1';
 
$view->page_empty = '';
 
$view->page_empty_format = '1';
 
$view->page_type = 'teaser';
 
$view->url = 'Test';
 
$view->use_pager = TRUE;
 
$view->nodes_per_page = '10';
 
$view->menu = TRUE;
 
$view->menu_title = 'Test';
 
$view->menu_tab = FALSE;
 
$view->menu_tab_weight = '9';
 
$view->menu_tab_default = FALSE;
 
$view->menu_tab_default_parent = NULL;
 
$view->menu_tab_default_parent_type = 'tab';
 
$view->menu_parent_tab_weight = '0';
 
$view->menu_parent_title = '';
 
$view->sort = array (
  );
 
$view->argument = array (
  );
 
$view->field = array (
  );
 
$view->filter = array (
    array (
     
'tablename' => 'node_data_field_kategorie',
     
'field' => 'field_kategorie_value_like',
     
'operator' => '=',
     
'options' => '',
     
'value' => 'Wirtschaft',
    ),
  );
 
$view->exposed_filter = array (
  );
 
$view->requires = array(node_data_field_kategorie);
 
$views[$view->name] = $view;

views_sanitize_view($view);
_views_save_view($view);
?>

Die neue View soll den Namen Test tragen und auch im Menü erscheinen.
Nun zu meinen Problemen. Ich habe eine Page erstellt in der ich o.g. Code ausführe.

Wenn ich den Code ausführe bekomme ich folgende Meldung:

Zitat:

Fatal error: Call to undefined function: views_sanitize_view() in /home/httpd/vhosts/mydomain.com/httpdocs/includes/common.inc(1342) : eval()'d code on line 58

Hm, die Funktion existiert aber... in views_cache.inc. Wozu brauche ich views_sanitize_view()???

Entferne ich die Funktion läuft es glatt durch,..dachte ich!

Leider taucht im Menü meine neue View nicht auf, unter Administrator Views ist sie jedoch vorhanden. Wenn ich dort auf View Edit gehe, nichts verändere, die View speichere ist alles in Ordnung (Im Menü sichtbar). Darüberhinaus werden die Filter die ich für diese View definiere nicht übernommen. :-(

Vielleicht hatte jemand schon ein ähnlichen Problem?

Vielen Dank!

Cheers,

Ralph

‹ Felder von Nodetype beim Erstellen von Inhalt in Anordnung und Darstellung ändern argument (ative) hilfe benötigt ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Warum benutzt du nicht

Eingetragen von dawehner (2639)
am 23.06.2008 - 12:52 Uhr

Warum benutzt du nicht einfach hook_views_default_views? http://drupal.org/node/99568

<?php
function hook_views_default_views() {
$view = new stdClass();
 
$view->name = 'Kat_View_Test';
 
$view->description = 'Test';
 
$view->access = array (
 
0 => '1',
);
 
$view->view_args_php = '';
 
$view->page = TRUE;
 
$view->page_title = 'Test';
 
$view->page_header = '';
 
$view->page_header_format = '1';
 
$view->page_footer = '';
 
$view->page_footer_format = '1';
 
$view->page_empty = '';
 
$view->page_empty_format = '1';
 
$view->page_type = 'teaser';
 
$view->url = 'Test';
 
$view->use_pager = TRUE;
 
$view->nodes_per_page = '10';
 
$view->menu = TRUE;
 
$view->menu_title = 'Test';
 
$view->menu_tab = FALSE;
 
$view->menu_tab_weight = '9';
 
$view->menu_tab_default = FALSE;
 
$view->menu_tab_default_parent = NULL;
 
$view->menu_tab_default_parent_type = 'tab';
 
$view->menu_parent_tab_weight = '0';
 
$view->menu_parent_title = '';
 
$view->sort = array (
  );
 
$view->argument = array (
  );
 
$view->field = array (
  );
 
$view->filter = array (
    array (
     
'tablename' => 'node_data_field_kategorie',
     
'field' => 'field_kategorie_value_like',
     
'operator' => '=',
     
'options' => '',
     
'value' => 'Wirtschaft',
    ),
  );
 
$view->exposed_filter = array (
  );
 
$view->requires = array(node_data_field_kategorie);
 
$views[$view->name] = $view;

}
?>

--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Nicht wirklich was ich suche...

Eingetragen von binki@drupal.org (42)
am 23.06.2008 - 15:25 Uhr

@dereine Vielen Dank für deine schnelle Antwort!

Leider löst das nicht mein Problem.

Etwas mehr details:

ich erzeuge dynamisch nodes(node_save), diese nodes haben Attribute die ich gerne über views abbilden möchte.
Beispiel: Ich habe eine node die ein CCK field Hersteller hat.
Wenn für diesen Hersteller (Attribut) noch keine View besteht, möchte ich diese erzeugen.

Ich dachte mit:

views_sanitize_view($view);
_views_save_view($view);

wäre das zu lösen.

Vielen Dank für eure Hilfe.

Cheers,

Ralph

  • Anmelden oder Registrieren um Kommentare zu schreiben

Lösung1: Warum gibts du den

Eingetragen von dawehner (2639)
am 23.06.2008 - 16:07 Uhr

Lösung1: Warum gibts du den Hersteller nicht einfach als Argument der View an?

Lösungs2:
Genauso wie du dynamisch Nodes erzeugen kannst, ist es natürlich auch möglich dynamisch Views zu erzeugen.
Nimm dazu z.B. eine vorhandene View und füge folgendes in ein Modul ein

<?php
function hook_views_pre_query(&$view) {
if (
$view->name == 'test') {
 
$view->filter[] = array (
   
'tablename' => 'node_data_field_kategorie',
   
'field' => 'field_kategorie_value_like',
   
'operator' => '=',
   
'options' => '',
   
'value' => 'Wirtschaft',
  );
}
?>

Damit kannste Felder dynamisch zur View hinzufügen
// Aber Lösung eins ist definitiv der bessere/einfachere Weg
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING

  • Anmelden oder Registrieren um Kommentare zu schreiben

hm immer noch nicht

Eingetragen von binki@drupal.org (42)
am 23.06.2008 - 16:23 Uhr

hm immer noch nicht wirklich, warscheinlich fehlt mir der Durchblick.(zu warm)
Ziel ist es eine View zu erzeugen, analog zur GUI.
Ich möchte mir die Arbeit sparen xhundert views manuell zu erzeugen.
Ganz dynamisch wie in Lösung zwei ist mir nicht sicher genug.

Einfach nur ne view via script erzeugen, die dann im Views - Adminbereich auftaucht.

Cheers,

Ralph

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • электромонтажные работы москва прайс или dog-house.sbs
  • Canvas Palette: Eine fertige Komponentenbibliothek für Drupal Canvas
  • Bitte mein Bentzerkonto löschen
  • Beim Aufruf einiger Inhalte erhalte ich folgende Fehlermeldung
  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
Weiter

Neue Kommentare

  • Hab ich installiert find ich
    vor 3 Tagen 19 Stunden
  • Gefunden
    vor 9 Wochen 4 Tagen
  • Vielen Dank für die ausführlichen Hinweise...
    vor 10 Wochen 1 Tag
  • Mögliche Ursachen und nächste Schritte
    vor 10 Wochen 1 Tag
  • Was für einen Server benutzt
    vor 12 Wochen 4 Tagen
  • Wenn die Subdomain auf
    vor 12 Wochen 6 Tagen
  • ordnerstruktur
    vor 13 Wochen 6 Stunden
  • Die Subdomain muß auf den
    vor 13 Wochen 2 Tagen
  • Verwende doch das Tag dafür,
    vor 16 Wochen 4 Tagen
  • Guckst du hier: step by step
    vor 16 Wochen 4 Tagen

Statistik

Beiträge im Forum: 250298
Registrierte User: 20551

Neue User:

  • Ndexihic
  • Roberttop
  • levmyshkin

» Alle User anzeigen

User nach Punkten sortiert:
wla9466
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 9 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association