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

übersicht wie in admin/content/node erstellen

Eingetragen von teyhan (13)
am 31.07.2009 - 13:18 Uhr in
  • Modul-Entwicklung
  • Drupal 6.x

Hallo @all,

um mir eine übersicht wie in 'admin/content/node' zu proggen habe ich mir natürlich das modul mal näher angeschaut.

Dann meinen ersten test gemacht und man sehe da tabellen erstellen ist nicht schwierig.

$irgendwas="Hello World";
  $sql = "SELECT * FROM expro_tour_operator";
  $res = pager_query($sql);
  while ($row = db_fetch_object($res)) {
//    $rows[] = $row;  ersetzt durch untere Zeile
    $rows[] = array($row->nid, $row->vid, $row->operator, $irgendwas);
  }
  
  $form = theme('table', $header, $rows);

  return $form;
}

Jetzt möchte ich aber genau die gleich übersicht wie in 'admin/content/node' proggen. Hat jemand einen vorschlag oder noch besser einen lösungsbeispiel.

hier mein erster ansatzt, es werden auch was ausgegeben, leider fhelt die tabelle. Zur Zeit ist mir eher wichtiger das ich verstehe wie formulare daten in tabellen ausgegeben werden daher sind die links nichtganz so elegant :)

Das untere bsp habe ich aus der admin/content/node und ein wenig modifisirt.

function expro_tour_operator_admin_overview($type = 'new', $arg) {
  $form['header'] = array('#type' => 'value', '#value' => array(
    theme('table_select_header_cell'),
    array('data' => t('operator'), 'field' => 'operator'),
    array('data' => t('operations'), 'field' => 'operations'),
    array('data' => t('Operations'))
  ));
 
 
  $sql = "SELECT * FROM expro_tour_operator";
  $result = pager_query($sql);
  $destination = drupal_get_destination();
  while ($row = db_fetch_object($result)) {
    $comments[$row->vid] = '';
    $row->name = $row->uid ? $row->registered_name : $row->name;
    $form['operator'][$row->vid] = array('#value' => l($row->operator, 'node/'. $row->nid, array('attributes' => array('title' => truncate_utf8($row->operator, 128)), 'fragment' => 'node'. $row->vid)));
    $form['operations'][$row->vid] = array('#value' => l(t('edit'), 'row/edit/'. $row->cid, array('query' => $destination)));
  }
  $form['rows'] = array('#type' => 'checkboxes', '#options' => isset($rows) ? $rows: array());
  $form['pager'] = array('#value' => theme('pager', NULL, 50, 0));
  return $form;

}

Gruß caracush

‹ Javascript Probleme bei tableDrag am verzweifeln hook_menu will mein File nicht annehmen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

so jetzt gehts auch wieder

Eingetragen von teyhan (13)
am 01.08.2009 - 10:29 Uhr

so jetzt gehts auch wieder weiter zwishcenzeitlich habe ich eine tabelle note und werte aus der kinder tabelle.

function tester_liste() {

  $header = array('Node ID', 'operator', 'Type', 'Terms', 'Created', 'Published', 'Sticky', 'Promoted');
  $rows = array();
  $noyes = array('No', 'Yes');

  $results = db_query("SELECT * FROM {node} n, {expro_tour_operator} o where type = 'expro_tour_operator' and o.nid = n.nid ORDER BY promote DESC, sticky DESC, created DESC");

  while ($node = db_fetch_object($results)) {
    $termlist = taxonomy_node_get_terms($node->nid);
    $terms = array();
    foreach ($termlist as $key => $value) { $terms[] = $value->name; }
    $rows[] = array($node->nid,
                    l($node->operator, 'node/'. $node->nid .'/edit'),
                    $node->type,
                    implode(' | ', $terms),
                    format_date($node->created),
                    $noyes[$node->status],
                    $noyes[$node->sticky],
                    $noyes[$node->promote],
                );
   }
  return theme('table', $header, $rows);

}

Wie kann ich den jetzt das drupl_get_form bzw drupal_render($form) dazu bekommen das er mir checkboxen vor die einzelnen zeilen setzt und eine lösch funktion bauen.

Lg caracush

  • Anmelden oder Registrieren um Kommentare zu schreiben

Verzeiung wenn ich hier so

Eingetragen von teyhan (13)
am 01.08.2009 - 10:57 Uhr

Verzeihung wenn ich hier so vor mich hin progge. Das geht aber alles viel einfacher. Man nehme bzw. Kopiere die comment.admin.inc aus dem comments Modul ins eigene Modul und passe die Methoden an seine bedürfnisse an und schon hat man ein eigene listen ansicht in seinem eigenen Modul. Das geht sogar sehr gut.

Wenn das Modul Comments ein Node Modul ist, warum brauche ich dann in der comments tabelle eine UID da ich ja schon über die node->uid an die userdaten ran komme. Ich bin mir jetzt gerade nicht sicher aber ich da sind auch noch andere Felder wie ''Type', 'Terms', 'Created', 'Published', 'Sticky', 'Promoted'' die ich mir such der node holen kann also was soll diese doppelte verawalltung.

Lg catacush

  • Anmelden oder Registrieren um Kommentare zu schreiben

Man kann sich auch einfach

Eingetragen von dawehner (2639)
am 01.08.2009 - 11:08 Uhr

Man kann sich auch einfach weniger Arbeit machen, und views bulk operations verwenden :)

Das Comments Modul hat aber seine ganz eigene API und Datenbanktabellen.
Ein Commentar ist so erstmal kein Node.

Schau dir einfach mal die Datenbanktabellen an, dass sollte dir das klar werden, wenn nicht weiter fragen.
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.de
SirFiChi ist auch dein Halbgott.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das ist eine ja wie bekant

Eingetragen von teyhan (13)
am 01.08.2009 - 12:07 Uhr

Das ist eine ja wie bekant die Node tabelle

CREATE TABLE `node` (
  `nid` int(10) unsigned NOT NULL auto_increment,
  `vid` int(10) unsigned NOT NULL default '0',
  `type` varchar(32) NOT NULL default '',
  `language` varchar(12) NOT NULL default '',
  `title` varchar(255) NOT NULL default '',
  `uid` int(11) NOT NULL default '0',
  `status` int(11) NOT NULL default '1',
  `created` int(11) NOT NULL default '0',
  `changed` int(11) NOT NULL default '0',
  `comment` int(11) NOT NULL default '0',
  `promote` int(11) NOT NULL default '0',
  `moderate` int(11) NOT NULL default '0',
  `sticky` int(11) NOT NULL default '0',
  `tnid` int(10) unsigned NOT NULL default '0',
  `translate` int(11) NOT NULL default '0',
  PRIMARY KEY  (`nid`),
  UNIQUE KEY `vid` (`vid`),
  KEY `node_changed` (`changed`),
  KEY `node_created` (`created`),
  KEY `node_moderate` (`moderate`),
  KEY `node_promote_status` (`promote`,`status`),
  KEY `node_status_type` (`status`,`type`,`nid`),
  KEY `node_title_type` (`title`,`type`(4)),
  KEY `node_type` (`type`(4)),
  KEY `uid` (`uid`),
  KEY `tnid` (`tnid`),
  KEY `translate` (`translate`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

Und das hier dei comments Tabelle

CREATE TABLE `comments` (
  `cid` int(11) NOT NULL auto_increment,
  `pid` int(11) NOT NULL default '0',
  `nid` int(11) NOT NULL default '0',
  `uid` int(11) NOT NULL default '0',
  `subject` varchar(64) NOT NULL default '',
  `comment` longtext NOT NULL,
  `hostname` varchar(128) NOT NULL default '',
  `timestamp` int(11) NOT NULL default '0',
  `status` tinyint(3) unsigned NOT NULL default '0',
  `format` smallint(6) NOT NULL default '0',
  `thread` varchar(255) NOT NULL,
  `name` varchar(60) default NULL,
  `mail` varchar(64) default NULL,
  `homepage` varchar(255) default NULL,
  PRIMARY KEY  (`cid`),
  KEY `pid` (`pid`),
  KEY `nid` (`nid`),
  KEY `status` (`status`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

Wozu brauche ich das:
`timestamp` int(11) NOT NULL default '0',
`uid` int(11) NOT NULL default '0',

Wenn ich das schon in der node habe.
`created` int(11) NOT NULL default '0',
`changed` int(11) NOT NULL default '0',

Ich denke da an den grundsatz das in einer relationellen DB keine daten doppelt vorkommen sollen. In der Node habe ich doch alle informationenen über dei inhalte die ich in comments anlege. Ich würde es anders machen. Daher frage ich mich welchen grund das hat.

Muss jetzt loss schreibe später weiter, möchte meine eigene app in Drupal schreiben.
und werde hier einfach mel mein Tabellenschema posten. Bis danni.

Lg caracush

  • Anmelden oder Registrieren um Kommentare zu schreiben

teyhan schrieb Ich denke da

Eingetragen von Alexander Langer (3416)
am 01.08.2009 - 12:27 Uhr
teyhan schrieb

Ich denke da an den grundsatz das in einer relationellen DB keine daten doppelt vorkommen sollen. In der Node habe ich doch alle informationenen über dei inhalte die ich in comments anlege. Ich würde es anders machen. Daher frage ich mich welchen grund das hat.

Falsch gedacht (und es heißt "relational"). Extrem-Normalisierung ist keine Pflicht und oft auch im Sinne der Anwendungsperformance nicht sinnvoll.

Was diesen Fall betrifft: Ein Kommentar gehört dem, der ihn schreibt, nicht dem Autor des Nodes zu dem der Kommentar verfasst wurde. Geiches gilt fürs Erstellungs-/Änderungsdatum.

--
mortendk: everytime you use contemplate... Thor is striking down from above with his mighty hammer - crushing and killing a kitten!

webseiter.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

dereine schrieb Man kann

Eingetragen von Alexander Langer (3416)
am 01.08.2009 - 12:28 Uhr
dereine schrieb

Man kann sich auch einfach weniger Arbeit machen, und views bulk operations verwenden :)

Japp, VBO machen das Leben eindeutig viehiiieeel leichter :)

--
mortendk: everytime you use contemplate... Thor is striking down from above with his mighty hammer - crushing and killing a kitten!

webseiter.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Falsch gedacht (und

Eingetragen von teyhan (13)
am 01.08.2009 - 18:48 Uhr
Zitat:

Falsch gedacht (und es heißt "relational"). Extrem-Normalisierung ist keine Pflicht und oft auch im Sinne der Anwendungsperformance nicht sinnvoll.

Wie halt auch im realem Leben: Ausnahmen bestätigen die Regeln.

Zitat:

Was diesen Fall betrifft: Ein Kommentar gehört dem, der ihn schreibt, nicht dem Autor des Nodes zu dem der Kommentar verfasst wurde. Geiches gilt fürs Erstellungs-/Änderungsdatum.

Verzeihung Bitte, bin ein Blutiger Drupal anfänger, habe ganz verschlafen das ein Kommentar naturlich dem Autor gehört und nicht dem ersteller der node. Damit stellt sich aber grundsätzlich die frage was ist eine Node und Was ist ein Nodetyp und hat eine Node auch immer einen note typen. Es sind wohl tausende fragen die sich gerade bei mir ansammeln.

Die zwei wichtigsten fragen für mich währen da:
1. Wann sollte man eine node einsätzen
2. Wann macht absolut kein Sinn?

Ui da kommen die kinder muss jetzt an den grill, bis später

  • Anmelden oder Registrieren um Kommentare zu schreiben

Nodes

Eingetragen von stBorchert (6003)
am 01.08.2009 - 23:23 Uhr
teyhan schrieb

Damit stellt sich aber grundsätzlich die frage was ist eine Node

Ein Node ist in Drupal ein Beitrag eines bestimmten Inhaltstypen.
Angenommen, Du hast die Inhaltstypen "Page" und "Story", dann kann ein Node entweder eine Instanz des Inhaltstypen "Page" oder auch "Story" sein.

teyhan schrieb

und Was ist ein Nodetyp und hat eine Node auch immer einen note typen.

Jeder Node gehört zu einem bestimmten Inhaltstypen.
Ein Inhaltstyp ist (wenn man es denn so will) eine logische Gruppierung von Inhalten. Also beispielsweise "Artikel" oder "Event" oder "Bild".

teyhan schrieb

1. Wann sollte man eine node einsätzen

Nodes setzt man ein, wenn man Inhalte auf seiner Seite veröffentlichen möchte. Ohne Nodes (also Inhalte) macht eine (mittels Drupal erstellte) Internetseite dementsprechend nicht wirklich Sinn.

teyhan schrieb

2. Wann macht absolut kein Sinn?

Diese Frage?

hth,

 Stefan

--
sei nett zu Deinem Themer

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Rolle erstellen nicht zu finden
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
Weiter

Neue Kommentare

  • Rollen
    vor 3 Tagen 21 Stunden
  • Inzwischen sind wir bei
    vor 2 Wochen 14 Stunden
  • Migrieren von D7 auf D8/ D10/ D11
    vor 2 Wochen 1 Tag
  • melde mich mal wieder, da ich
    vor 9 Wochen 5 Tagen
  • Hey danke
    vor 9 Wochen 6 Tagen
  • Update: jetzt gibt's ein
    vor 9 Wochen 6 Tagen
  • Hallo, im Prinzip habe ich
    vor 10 Wochen 4 Tagen
  • Da scheint die Terminologie
    vor 10 Wochen 4 Tagen
  • Kannst doch auch alles direkt
    vor 11 Wochen 1 Tag
  • In der entsprechenden View
    vor 11 Wochen 1 Tag

Statistik

Beiträge im Forum: 250237
Registrierte User: 20466

Neue User:

  • StevenEness
  • ocvk2810
  • marouane.blel

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 68 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