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

[gelöst] Modul für Anzahl _aller_ veröffentlichen Inhaltstypen?

Eingetragen von schneseb (102)
am 20.12.2009 - 21:29 Uhr in
  • Modulsuche
  • Drupal 6.x

Hallo,

ich hätte gerne einen kleinen Block auf der Seite der so etwas der Art:

[Inhalt]
32 Blogeinträge,
7 Buchseiten,
12 Artikel,
3 Seiten

auflistet. kennt jemand sowas? Erfahrungen?

Grüße
Sebastian

‹ Suche Module zur Realisierung meiner kleinen Community-Seite... Twitter in Drupal einbinden... ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

1. "Inhaltstyp" ist dem

Eingetragen von Alexander Langer (2514)
am 20.12.2009 - 21:38

1. "Inhaltstyp" ist dem Zusammenhang ein falsch gewählter Terminus, weil es nicht im Unahtlstypen, sondern um Nodes geht.
2. http://drupal.org/project/total_control

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

webseiter.de

Yes, Drupal can!

webseiter.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Alexander, danke für

Eingetragen von schneseb (102)
am 21.12.2009 - 13:48

Hallo Alexander,

danke für die "Korrektur" und den Link. Ich habe das jetzt mal mit allen Abhängigkeiten installiert (war ne ganze Menge). Ich habe mir auch mal die neuen Einstellungsmöglichkeiten angesehen. So ganz weiß ich jetzt aber nicht wo und wie ich da ansetzen soll.

Was genau muss ich jetzt tun, damit ich das in einen Block bekomme um obiges Szenario (alle veröffentlichten Nodes) auf meiner Seite darzustellen?

Danke!
Sebastian

--- Web | Twitter | XING ---

--- Web | Twitter | XING ---

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ach herrje, entschuldige!

Eingetragen von Alexander Langer (2514)
am 21.12.2009 - 14:04

Ach herrje, entschuldige! Ich war davon ausgegangen, du wolltest solch eine Übersicht für den Admin / die Redakteure haben!

Das ist jetzt natürlich mit Kanonen auf Spatzen geschossen. Ich finde ad hoc auch nur ein Modul, dass für jeden Inhaltstypen einzeln einen Block mit der Anzahl ausspuckt: http://drupal.org/project/count

Grundsätzlich ist sowas aber mit einem kleinen Modul recht schnell erledigt. Einfach über die Liste aller Inhaltstypen iterieren und je Eintrag einen COUNT(*) der veröffentlichten Nodes des Typs aus der DB abfragen und ausgeben.

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

webseiter.de

Yes, Drupal can!

webseiter.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die Übersicht im Dashboard

Eingetragen von schneseb (102)
am 21.12.2009 - 16:18

Die Übersicht im Dashboard ist aber richtig klasse :-) genau so sollte es im Block sein. Nun gut, ich suche mal noch ein wenig weiter im Netz, habe noch keine Module programmiert und müßte mich da erst einlesen.

Das Countmodul wäre schon genau das, was ich bräuchte wenn alle Nodes drin wären.

Ich gebe dir Recht, aufwendig ist das garantiert nicht. Auch ich habe damit schon gedanklich gespielt, aber noch nicht weiter verfolgt.

Grüße
Sebastian

--- Web | Twitter | XING ---

--- Web | Twitter | XING ---

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ist vielleicht genau das

Eingetragen von Alexander Langer (2514)
am 21.12.2009 - 16:40

Ist vielleicht genau das Richtige, um mal mit der Modulprogrammierung anzufangen. Alternativ / zusätzlich könnte man das auch mal eben runterprogrammieren, zusammen mit einer kleinen Admin-Seite, um bestimmte Inhaltstypen ein-/auszuschließen und das Modul dann veröffentlichen.

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

webseiter.de

Yes, Drupal can!

webseiter.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Alexander, das ist ein

Eingetragen von schneseb (102)
am 21.12.2009 - 17:12

Hallo Alexander,

das ist ein nettes Angebot, aber ich denke du hast auch hier Recht. Ich habe eben mal mein Drupal Entwicklerhandbuch rausgekramt und Kapitel 2 aufgeschlagen :-) Ich will das mal versuchen, würde mich dann ggf. hier noch mal melden, wenn ich Probleme habe.

Aber erstmal teste ich, vielen Dank!
Sebastian

--- Web | Twitter | XING ---

--- Web | Twitter | XING ---

  • Anmelden oder Registrieren um Kommentare zu schreiben

Im PHP Modus könntest Du

Eingetragen von Thoor (1724)
am 21.12.2009 - 19:14

Im PHP Modus könntest Du auch einfach eine Datanbankabfrage machen. Folgenden Code habe ich im Forum auch mal erhalten ...

z.B.: 32 Blogeinträge
<?php print db_result(db_query("SELECT COUNT(nid) FROM {node} WHERE nid > 0 AND status = 1 AND type IN('%s')", implode(',', array('blog')))); ?> Blogeinträge
12 Artikel
<?php print db_result(db_query("SELECT COUNT(nid) FROM {node} WHERE nid > 0 AND status = 1 AND type IN('%s')", implode(',', array('story')))); ?> Artikel

usw. ...

--------------------
Design Probleme einfach mit FF und FIREBUG lösen!

Design Probleme einfach mit FF und FIREBUG lösen!
Eine Lösung im DC durch andere gefunden? Dann den Titel im Ursprungsbeitrag mit [Gelöst] ergänzen!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Alexander, hallo

Eingetragen von schneseb (102)
am 21.12.2009 - 19:29

Hallo Alexander, hallo Thoor,

ich noch mal mit Fragen zum generellen Vorgehen. Ich habe mir jetzt mal folgendes überlegt, damit die Aufgabe auch "spannend" wird :)

Der Block soll wie folgt aussehen:

Seiten: 12 (3 draft)
Artikel: 8 (0 draft)
Blogeinträge: 122 (12 draft)

dabei soll die Zahl in Klammern einfach die noch nicht veröffentlichten Nodes darstellen. Ob das nun sinnvoll ist, sei mal dahingestellt ;-)

Dann habe ich ein wenig in der DB geschnuppert -> Tabelle Node sollte wohl das für mich relevante enthalten.

  • Alle veröffentlichten Blogeinträge bekomme ich mit: SELECT count(nid) FROM `node` WHERE type='blog' and status = 1
  • Alle unveröffentlichten Blogeinträge bekomme ich mit: SELECT count(nid) FROM `node` WHERE type='blog' and status = 0

das kann ich dann entsprechend auch mit den anderen Nodes machen, die ich angezeigt bekomme. Von meinen SQL Aktivitäten sollte das ausreichend sein.

Da ich nichts zum Konfigurieren haben möchte (jedenfalls nicht jetzt) brauche ich eigentlich nur ein Modul was mir einen Block generiert. Also schnell mal nachgeblättet und gefunden

Zitat:

Blöcke werden innerhalb von Modulen mithilfe von hook_block() definiert [...]

also mache ich eine NodeCount.module mit

function NodeCount_block($op = 'list', $delta = 0, $edit = array()){
    switch ($op) {
        case 'list':
        $blocks[0]['info'] = t('Node Counts');
        $blocks[0]['cache'] = BLOCK_NO_CACHE;
        return $blocks;
    }
}

wenn ich das jetzt richtig überschaut habe, brauche ich noch die die Switch Anweisung nach 'view' damit man auch den Block sehen kann. Also obiges erweitert um

    switch ($view) {
        $result_blog_0 = db_query(SELECT count(nid) FROM `node` WHERE type='blog' and status = 0);
        $result_blog_1 = db_query(SELECT count(nid) FROM `node` WHERE type='blog' and status = 1);
        // ... und alle weiteren Abfragen hier hin.
        // ja ich weiß, dass könnte man auch noch schön konfigurieren ;-)

        $block['subject'] = t('Inhaltsübersicht');
        $block['content'] = 'Blogeinträge: '.$result_blog_1.'('.$result_blog_0.' draft)<br>Artikel: ...'
    }

   

War es das im Groben mit allem was ich brauche?

@Thoor: ja das probiere ich auch aus, ist ja deutlich kürzer als obiges Szenario. Oben nur mal um zu gucken, ob ich das so halbwegs verstanden habe :-)

Vielen Dank + Grüße
Sebastian

--- Web | Twitter | XING ---

--- Web | Twitter | XING ---

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ähmmmm - schreib einfach

Eingetragen von Thoor (1724)
am 21.12.2009 - 19:44

Ähmmmm - schreib einfach mal das obige in einen Block und wähle dabei PHP Modus als Eingabeformat .... schon ists fertig! Da braucht es keine Funktionen oder ähnliches!

--------------------
Design Probleme einfach mit FF und FIREBUG lösen!

Design Probleme einfach mit FF und FIREBUG lösen!
Eine Lösung im DC durch andere gefunden? Dann den Titel im Ursprungsbeitrag mit [Gelöst] ergänzen!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich halte es für didaktisch

Eingetragen von Alexander Langer (2514)
am 21.12.2009 - 21:31

Ich halte es für didaktisch falsch Anfängern, noch dazu wenn sie modulentwicklungswillig sind, zum bösen PHP-Filter zu raten. Der Zweck heiligt nicht immer die Mittel ;)

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

webseiter.de

Yes, Drupal can!

webseiter.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, so über die

Eingetragen von schneseb (102)
am 25.12.2009 - 11:55

Hallo,

so über die Feiertage habe ich obige Blaupause mal schnell zusammengetackert mit etwas Bücherhilfe und habe ein Modul, was zumindestens keinen Fehler mehr produziert :-) Aber funktionieren tut es nicht, ich zeige euch mal meinen bisherigen Entwurf:

<?php
// $Id$
/**
* @file
*  Module to provide total number of nodes in each content type in one block
*/

function NodeCount_block($op = 'list', $delta = 0, $edit = array()){
    switch ($op) {
        case 'list':
$blocks[0]['info'] = t('Node Counts');
$blocks[0]['cache'] = BLOCK_NO_CACHE;
return $blocks;
break;

case 'view':
$result_blog_0 = db_result(db_query("SELECT count(nid) FROM `node` WHERE type='blog' and status = 0"));
$result_blog_1 = db_result(db_query("SELECT count(nid) FROM `node` WHERE type='blog' and status = 1"));
$result_artikel_0 = db_result(db_query("SELECT count(nid) FROM `node` WHERE type='story' and status = 0"));
$result_artikel_1 = db_result(db_query("SELECT count(nid) FROM `node` WHERE type='story' and status = 1"));
$result_book_0 = db_result(db_query("SELECT count(nid) FROM `node` WHERE type='book' and status = 0"));
$result_book_1 = db_result(db_query("SELECT count(nid) FROM `node` WHERE type='book' and status = 1"));

$block['subject'] = t('Inhaltsübersicht');
$block['content'] = theme('Blogeinträge: '.$result_blog_1.'('.$result_blog_0.' draft)<br>Artikel: ...');
    }
}

Ich glaube der Fehler liegt irgendwo im SQL, weiß aber nicht wie ich den erwischen kann. Da ich PHP praktisch nicht kenne, kann das natürlich auch noch ein Punkt sein, aber da lese ich mich aktuell auch noch ein.

Zum Ablauf: Ich sehe, wenn ich auf die Blöcke unter der Strukturierung gehe, das Modul gelistet und kann es auch der Sitebar zuweisen. Allerdings passiert dann gar nichts. iIch weiß auch nicht ob das mit dem Content "theme" stimmt. Denke auch eher nein, da selbst "Blogeinträge" nicht aufgelistet wird. Meine Vermutung also, dass ich da was falsch benutzt habe. Im Entwicklerbuch habe ich in den Beispielen nur obiges "theme" gefunden (hab aber auch noch nicht alles gelesen).

Das kann aber nur ne Kleinigkeit sein, oder?

Besten Dank und noch schöne weihnachtliche "Restfeiertragesgrüße" :-)
Sebastian

--- Web | Twitter | XING ---

--- Web | Twitter | XING ---

  • Anmelden oder Registrieren um Kommentare zu schreiben

Eigentlich kannste Dir das

Eingetragen von Tobias Bähr (3431)
am 25.12.2009 - 15:07

Eigentlich kannste Dir das auch mit Views basteln.

<?php
function NodeCount_block($op = 'list', $delta = 0, $edit = array()){
  switch (
$op) {
    case
'list':
     
$blocks[0]['info'] = t('Node Counts');
     
$blocks[0]['cache'] = BLOCK_NO_CACHE;
      return
$blocks;
    break;

    case
'view':
    if (
$delta == 0) {
     
$block['subject'] = t('Inhaltsübersicht');
     
$block['content'] = NodeCount_block_content('Blogeinträge', 'blog');
     
$block['content'] .= NodeCount_block_content('Artikel', 'story');
     
$block['content'] .= NodeCount_block_content('Bücher', 'book');
    }
   return
$block;
  }
}

function
NodeCount_block_content($titel, $nodetype) {
 
$countunpublished = db_result(db_query("SELECT count(nid) FROM 'node' WHERE type='%s' and status = 0", $nodetype));
 
$countpublished = db_result(db_query("SELECT count(nid) FROM 'node' WHERE type='%s' and status = 1", $nodetype));
 
// Artikel: 5 (2 draft )
 
return $title .': '. $countpublished .' ('. $countunpublished .' draft)<br />';
}
?>

----------------------------------------
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.

Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Tobias, danke für die

Eingetragen von schneseb (102)
am 25.12.2009 - 21:05

Hallo Tobias,

danke für die Hilfe, ich habe das in meine .module Datei reingepackt und auf den Webserver hochgeladen. Ich kann das auch unter den Blöcken auswählen, nur wenn ich das meiner Sitebar hinzufüge, dann sehe ich schlicht weg gar nichts. Was mache ich falsch?

Gruß+danke
Sebastian

--- Web | Twitter | XING ---

--- Web | Twitter | XING ---

  • Anmelden oder Registrieren um Kommentare zu schreiben

Da hat das return noch

Eingetragen von Tobias Bähr (3431)
am 26.12.2009 - 01:52

Da hat das return noch gefehlt. Siehe oben.

----------------------------------------
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.

Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Tobias, recht schönen

Eingetragen von schneseb (102)
am 26.12.2009 - 10:28

Hallo Tobias,

recht schönen Dank. So klappt es, ich versuche jetzt ausgehend auf diesem Beispiel noch ein paar weiter "Gehversuche" zu machen.
$titel scheint allerdings nicht belegt zu sein (wird nicht angezeigt bei der Ausgabe) aber da schau ich mal gleich nach.

Schönen 2. Weihnachtstag dir noch!
Sebastian

--- Web | Twitter | XING ---

--- Web | Twitter | XING ---

  • Anmelden oder Registrieren um Kommentare zu schreiben

$title und $titel sind

Eingetragen von Tobias Bähr (3431)
am 26.12.2009 - 11:52

$title und $titel sind ungleich. bisschen aufmerksamkeit darf ich auch verlangen :D.

----------------------------------------
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.

Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.

  • Anmelden oder Registrieren um Kommentare zu schreiben

*pfeif* ja sicher, deswegen

Eingetragen von schneseb (102)
am 26.12.2009 - 14:51

*pfeif* ja sicher, deswegen sagte ich ja ich gucks mir noch an ;-)

Danke!

--- Web | Twitter | XING ---

--- Web | Twitter | XING ---

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Call to undefined function: array_intersect_key()
  • Problem mit devel theme developer module!
  • Module erscheinen unter Themes!
  • Die lieben Sprachprobleme
  • Views und Javascript
  • views und any
  • Kann Lightbox mit iFrame auch nur die Node anzeigen?
  • [gelöst] preprocess css
  • Headerbild wird im Editor angezeigt, sollte es aber nicht ???
  • Startseite und Blog auf einer Seite ....
  • Login Weiterleitung
  • VIEW Konfiguration in Imagegallery
Weiter

Neue Kommentare

  • newbie schrieb RTFM FAQ auf
    vor 1 Minute 20 Sekunden
  • Nein, lustiger Weise betrifft
    vor 13 Minuten 15 Sekunden
  • Brauchst Du schon ;)
    vor 27 Minuten 4 Sekunden
  • Deaktivieren, etc. ausprobiert ...
    vor 31 Minuten 22 Sekunden
  • Einstellung in Views ..
    vor 33 Minuten 24 Sekunden
  • ich brauch doch eigetnlich
    vor 33 Minuten 29 Sekunden
  • Falsche Einstellung
    vor 35 Minuten 47 Sekunden
  • Ich antworte mir mal selber ... ;)
    vor 37 Minuten 2 Sekunden
  • vielen Dank für deine
    vor 38 Minuten 59 Sekunden
  • Editor Einstellungen
    vor 40 Minuten 33 Sekunden

Statistik

Beiträge im Forum: 113644
Registrierte User: 10256

Neue User:

  • finkenmann
  • nuiientertainment
  • dietrich.kammeer

» Alle User anzeigen

User nach Punkten sortiert:
quiptime4706
stBorchert3647
md3536
Tobias Bähr3431
bv3275
dereine2589
Alexander Langer2514
pebosi2488
Thoor1724
rapsli1475
» User nach Punkten
Zur Zeit sind 18 User und 64 Gäste online.

Benutzer online

  • thorsten-by
  • margin1em
  • Alexander Langer
  • Waldknoblauch
  • AliveAgain@drup...
  • Bug
  • KervyN
  • Carsten Müller
  • vistree
  • Carsten Logemann
  • andres
  • jadenz
  • finkenmann
  • Kirsten1965
  • JThan
  • kai_fx
  • Independent
  • Frank Ralf

Hauptmenü

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

Quicklinks I

  • Infos
  • Drupal Referenzen
  • Installation
  • Update
  • Forum
  • Team

Quicklinks II

  • 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

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