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 (126)
am 20.12.2009 - 22: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 (2737)
am 20.12.2009 - 22:38 Uhr

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 :: Drupal, SEO und Hosting

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Alexander, danke für

Eingetragen von schneseb (126)
am 21.12.2009 - 14:48 Uhr

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 (2737)
am 21.12.2009 - 15:04 Uhr

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 :: Drupal, SEO und Hosting

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die Übersicht im Dashboard

Eingetragen von schneseb (126)
am 21.12.2009 - 17:18 Uhr

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 (2737)
am 21.12.2009 - 17:40 Uhr

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 :: Drupal, SEO und Hosting

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Alexander, das ist ein

Eingetragen von schneseb (126)
am 21.12.2009 - 18:12 Uhr

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 (2223)
am 21.12.2009 - 20:14 Uhr

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!

Besuch mich doch mal unter THOOR.DE
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 (126)
am 21.12.2009 - 20:29 Uhr

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 (2223)
am 21.12.2009 - 20:44 Uhr

Ä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!

Besuch mich doch mal unter THOOR.DE
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 (2737)
am 21.12.2009 - 22:31 Uhr

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 :: Drupal, SEO und Hosting

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, so über die

Eingetragen von schneseb (126)
am 25.12.2009 - 12:55 Uhr

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 (3607)
am 25.12.2009 - 16:07 Uhr

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 (126)
am 25.12.2009 - 22:05 Uhr

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 (3607)
am 26.12.2009 - 02:52 Uhr

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 (126)
am 26.12.2009 - 11:28 Uhr

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 (3607)
am 26.12.2009 - 12:52 Uhr

$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 (126)
am 26.12.2009 - 15:51 Uhr

*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
Drupal 7 Demo-Website

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Node-Speichern wird mit zunehmender Laufzeit des Servers langsam
  • Fatal error: Maximum execution time of 30 seconds exceeded in ....../includes/file.inc on line 934
  • Probleme bei der Installation von memcache
  • Treffen in Düsseldorf - 8.9. und 22.9.2010
  • [erledigt] id und klassen bei blöcken
  • Anzahl der erstellten Nodes eines bestimmten Contenttypes für bestimmte Rollen limitieren
  • Seiten kombinieren
  • Drupal Übersetzung Englisch Deutsch
  • Fragen vor Umstieg zu Drupal 6 von Joomla
  • Lightbox-2 Inputfilter
  • Kostenplfichtige Useraccounts
  • Such-Index: Problem mit ISBNs / großen Zahlen
Weiter

Neue Kommentare

  • Zum einen würde ich den
    vor 5 Stunden 24 Minuten
  • Das Aktivieren von Modulen
    vor 5 Stunden 31 Minuten
  • Lies dich mal in Ruhe ein,
    vor 5 Stunden 35 Minuten
  • Hallo, das heißt, dass Dein
    vor 5 Stunden 42 Minuten
  • danke für den tip!
    vor 6 Stunden 10 Minuten
  • Nur ein Tip, aber ich würde
    vor 6 Stunden 35 Minuten
  • Ich habe noch das Problem,
    vor 6 Stunden 31 Minuten
  • E-Fee schrieb ...Entweder man
    vor 6 Stunden 54 Minuten
  • Tja, was heiß quasi Standard?
    vor 7 Stunden 9 Minuten
  • Hallo E-Fee, nach dem was Du
    vor 7 Stunden 26 Minuten

Statistik

Beiträge im Forum: 130977
Registrierte User: 11264

Neue User:

  • BAue
  • CodeFlatter
  • michastock

» Alle User anzeigen

User nach Punkten sortiert:
quiptime4714
stBorchert4318
md3609
Tobias Bähr3607
bv3490
Alexander Langer2737
dereine2604
pebosi2490
Thoor2223
rapsli1505
» User nach Punkten
Zur Zeit sind 2 User und 25 Gäste online.

Benutzer online

  • Tobias Bähr
  • t0b1

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Showroom
  • » Forum
  • » Drupalchannel
  • » Ü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
  • Bücherecke

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
  • Drupal Demo
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association