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

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

Eingetragen von schneseb (160)
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 (3416)
am 20.12.2009 - 21: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

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Alexander, danke für

Eingetragen von schneseb (160)
am 21.12.2009 - 13: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 ---

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ach herrje, entschuldige!

Eingetragen von Alexander Langer (3416)
am 21.12.2009 - 14: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

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die Übersicht im Dashboard

Eingetragen von schneseb (160)
am 21.12.2009 - 16: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 ---

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ist vielleicht genau das

Eingetragen von Alexander Langer (3416)
am 21.12.2009 - 16: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

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Alexander, das ist ein

Eingetragen von schneseb (160)
am 21.12.2009 - 17: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 ---

  • Anmelden oder Registrieren um Kommentare zu schreiben

Im PHP Modus könntest Du

Eingetragen von Thoor (3678)
am 21.12.2009 - 19: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!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Alexander, hallo

Eingetragen von schneseb (160)
am 21.12.2009 - 19: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 ---

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ähmmmm - schreib einfach

Eingetragen von Thoor (3678)
am 21.12.2009 - 19: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!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich halte es für didaktisch

Eingetragen von Alexander Langer (3416)
am 21.12.2009 - 21: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

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, so über die

Eingetragen von schneseb (160)
am 25.12.2009 - 11: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 ---

  • Anmelden oder Registrieren um Kommentare zu schreiben

Eigentlich kannste Dir das

Eingetragen von Tobias Bähr (4019)
am 25.12.2009 - 15: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.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Tobias, danke für die

Eingetragen von schneseb (160)
am 25.12.2009 - 21: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 ---

  • Anmelden oder Registrieren um Kommentare zu schreiben

Da hat das return noch

Eingetragen von Tobias Bähr (4019)
am 26.12.2009 - 01: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.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Tobias, recht schönen

Eingetragen von schneseb (160)
am 26.12.2009 - 10: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 ---

  • Anmelden oder Registrieren um Kommentare zu schreiben

$title und $titel sind

Eingetragen von Tobias Bähr (4019)
am 26.12.2009 - 11: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.

  • Anmelden oder Registrieren um Kommentare zu schreiben

*pfeif* ja sicher, deswegen

Eingetragen von schneseb (160)
am 26.12.2009 - 14:51 Uhr

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

Danke!

--- Web | Twitter | XING ---

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • 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
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 5 Tagen
  • Hey danke
    vor 1 Woche 6 Tagen
  • Update: jetzt gibt's ein
    vor 1 Woche 6 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 4 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 4 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 1 Tag
  • In der entsprechenden View
    vor 3 Wochen 1 Tag
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 1 Tag
  • gelöst
    vor 5 Wochen 5 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 6 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20451

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» 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 20 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