ConPresso Community

Fragen, Antworten, Diskussionen rund um das Content Management System ConPresso

 
Artikelanzahl ermitteln und ausgeben
Gehe zu Seite 1, 2  Weiter
 
Neue Antwort erstellen    ConPresso Community Foren-Übersicht -> Implementierung/Anpassung ConPresso 4
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Mr. Magpie
ConPresso-Experte


Anmeldungsdatum: 01.01.1970
Beiträge: 994
Wohnort: Wuppertal

BeitragVerfasst am: 23.01.2010 00:12    Titel: Artikelanzahl ermitteln und ausgeben Antworten mit Zitat

Das Thema wurde hier im Zus.hang mit mod_pages schon einmal behandelt.
Aber die Ermittlung der Artikelanzahl kann ja auch ohne mod_pages interessant sein.

Mithilfe von

Code:

<?php
// Artikelanzahlen für alle Rubrik-IDs bestimmen
$query = "SELECT rubric_id, count(rubric_id) AS artikelanzahl FROM "
            . CPO_NEWS . " WHERE "
            . ( $cpoSystem['release']
            ? "artikel_archiv<2 AND freigabe=" . STATE_RELEASED
            : "artikel_archiv<1 AND freigabe!=" . STATE_BLOCKED )
            . " AND pub_datum<='" . date('Y-m-d H:i:s', time())
            . "' AND verfallsdatum>='" . date('Y-m-d H:i:s', time())
            . "' GROUP BY rubric_id ";
$db = new DB;
$db->query($query);
while ($db->next_record()) {
    $artikelanzahl[$db->v('rubric_id')] = $db->v('artikelanzahl');
}

// Zuordnung Rubrikname - Rubrik-ID
$db->query('SELECT id, name FROM '.CPO_RUBRIC);
while ($db->next_record()) {
    $RubricID[$db->v('name')] = $db->v('id');
}
?>

kann man die Anzahl der Artikel in den Rubriken ermitteln - diesen Code bspw. in den lokalen oder globalen Header einfügen.

Das Ergebnis lässt sich an der gewünschten Stelle - PHP-Code muss dort erlaubt sein - ausgeben:

a) Über die Rubrik-IDs, hier '60' bzw. '37':

Code:

Rubrik "Über uns": <?php echo (int) $artikelanzahl[60]; ?><br />
Rubrik "Startseite": <?php echo (int) $artikelanzahl[37]; ?><br />

b) Über die Rubriknamen:

Code:

Rubrik "Über uns": <?php echo (int) $artikelanzahl[$RubricID['Über uns']]; ?><br />
Rubrik "Startseite": <?php echo (int) $artikelanzahl[$RubricID['Startseite']]; ?>

_________________
Günther Ludwig, amazingBytes webdesign      

Referenzen finden Sie hier: amazingBytes webdesign - Referenzen

 
Für dieses Posting bedanken sich die folgenden User: baluo
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Heike-Marie
ConPresso-Newbie


Anmeldungsdatum: 05.08.2008
Beiträge: 23
Wohnort: Vogelsberg

BeitragVerfasst am: 25.01.2010 02:46    Titel: Antworten mit Zitat


 Sowas ähnliches habe ich auch gemacht (vermutlich hier irgendwo mal einen Tip gelesen):

in die i_index.php (und i_archive.php) unterhalb von

php:
$db->query($query);
$anzahl $db->num_rows();?>


in der Art ergänzen:

php:
<?if ($anzahl 1) {
echo (
'<p>"'.$cpoRubricSettings['title'].'" enthält '.$anzahl.' Artikel</p>')."\n"
}


Das erscheint dann als erste Zeile im Content-Bereich und kann mittels CSS an die gewünschte Stelle verschoben werden.
Zum Beispiel so unters Banner:






Beispiel.jpg
Klicken für Originalbild! Beispiel.jpg (16.25KB) - 396 mal angeklickt


Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mr. Magpie
ConPresso-Experte


Anmeldungsdatum: 01.01.1970
Beiträge: 994
Wohnort: Wuppertal

BeitragVerfasst am: 25.01.2010 10:18    Titel: Antworten mit Zitat

Auch nicht schlecht!

Wobei ich in meinem Fall aber eine Lösung brauchte, bei der der Kunde (ohne HTML-/PHP-Kenntnisse) selbst eine Liste von Rubriknamen und den zugehörigen Artikelanzahlen am Anfang der Rubrikseite einfügen konnte.
Auf i_index.php/i_archive.php hätte ich ihn nur äußerst ungern losgelassen, wobei er dann auch wieder ein FTP-Programm hätte benutzen müssen, ...

_________________
Günther Ludwig, amazingBytes webdesign      

Referenzen finden Sie hier: amazingBytes webdesign - Referenzen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Heike-Marie
ConPresso-Newbie


Anmeldungsdatum: 05.08.2008
Beiträge: 23
Wohnort: Vogelsberg

BeitragVerfasst am: 26.01.2010 05:13    Titel: Antworten mit Zitat

Ich hab's inzwischen in den Local_footer verschoben, ich bastel gern.
Da kann man aber nicht $anzahl nehmen, sonst wird das Archiv mit dazugezählt. Also noch einen anderen Namen geben $zzahl = $anzahl; so etwa. Und den $zzahl dann benutzen und $anzahl im Archiv, dann zählt es richtig.

A propos FTP-Programm: PS-Pad Editor ist da sehr geeignet. Ein Editor mit Dateiexplorer und Syntaxhervorhebung. Man braucht kein extra FTP-Programm, sondern kann direkt "online" arbeiten. Und für lau.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mr. Magpie
ConPresso-Experte


Anmeldungsdatum: 01.01.1970
Beiträge: 994
Wohnort: Wuppertal

BeitragVerfasst am: 26.01.2010 09:34    Titel: Antworten mit Zitat

sFTP müsste es schon mindestens unterstützen. Mein Lieblings-Editor (WeBuilder) kann das.

Aber darum geht es gar nicht. Es geht um den häufigsten Fehler in der IT und der sitzt zwischen den Ohren des Anwenders. Als verantwortungsvoller Admin lasse ich daher niemanden mit Editor/FTP in den CPO-Dateien wurschteln.

_________________
Günther Ludwig, amazingBytes webdesign      

Referenzen finden Sie hier: amazingBytes webdesign - Referenzen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
baluo
ConPresso-Experte


Anmeldungsdatum: 14.11.2005
Beiträge: 607

BeitragVerfasst am: 26.01.2010 10:02    Titel: Antworten mit Zitat

Hallo Heike & Guenther,

koennte ihr mal jeweils eine Beispiel-URL angeben?

Danke fuer die beiden Tips!
Gerhard
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mr. Magpie
ConPresso-Experte


Anmeldungsdatum: 01.01.1970
Beiträge: 994
Wohnort: Wuppertal

BeitragVerfasst am: 26.01.2010 11:45    Titel: Antworten mit Zitat

Hallo Gerhard,

ich selbst habe bisher nur eine Testseite out in the Wildlife: http://www.flimmpo.de/verkauf/index.php?rubric=84

Die Artikelanzahlen aller anderen Verkaufs- und Vermietungsrubriken werden dort bisher manuell eingefügt, was natürlich nicht effizient ist.

Heikes Tierschutzverein findest du hier: http://www.tierheim-lauterbach.de/

_________________
Günther Ludwig, amazingBytes webdesign      

Referenzen finden Sie hier: amazingBytes webdesign - Referenzen

 
Für dieses Posting bedanken sich die folgenden User: baluo
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
hscha
ConPresso-Checker


Anmeldungsdatum: 22.02.2006
Beiträge: 496
Wohnort: Berlin

BeitragVerfasst am: 26.12.2011 14:28    Titel: Antworten mit Zitat

Hallo und frohe Weihnachten alle zusammen!!!

Ich suche eine Möglichkeit, innerhalb der _cfg/global_header.php die Anzahl der freigegebenen Artikel der aktuellen Rubrik zu ermitteln. In CPO 4.0.7 ging das irgendwie über $max_anzahl. In den neueren Versionen scheint das aber nicht mehr zu funktionieren.

Vielen Dank im Voraus und einen guten Rutsch ins
Neue Jahr wünscht
Horst aus Berlin
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 6993

BeitragVerfasst am: 26.12.2011 19:10    Titel: Antworten mit Zitat

Wärest Du ausführlicher müsste ich jetzt nicht fragen...

Zitat:
irgendwie über $max_anzahl

gab es auh in den alten Versionen nicht, es sei denn, man ermittelt $max_anzahl über einen PHP-Code, den Du aber verschweigst und somit nicht die Möglichkeit eröffnest Deinen Fehler zu erkennen.

Die neue Version unterscheidet sich ja speziell durch die Nutzung von Seitentemplates (in denen PHP-Codes nicht funktionieren).
Aber wenn Du Seitentemplates nutzen würdest, dann hättest Du das sicher geschrieben, da Du schon ein halbes Dutzend mal erkennen musstest, daß genau dies Dein Problem ist und man durch Nutzung von Header- und Footer-Dateien eben weiterhin so arbeiten kann, wie in den alten Versionen.

Und nun die Fragen:
Woran erkennst Du daß es nicht mehr funktioniert?
Was hast Du versucht, um es zum Funktionieren zu bringen?

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
hscha
ConPresso-Checker


Anmeldungsdatum: 22.02.2006
Beiträge: 496
Wohnort: Berlin

BeitragVerfasst am: 26.12.2011 21:25    Titel: Antworten mit Zitat

Hallo Markus,

Zitat:
$max_anzahl...
gab es auch in den alten Versionen nicht, es sei denn, man ermittelt $max_anzahl über einen PHP-Code, den Du aber verschweigst und somit nicht die Möglichkeit eröffnest Deinen Fehler zu erkennen.

Ich hatte $max_anzahl in der global_header.php globalisiert und den Wert einer anderen Variable zugewiesen:
Code:
global $max_anzahl;
   $maxpic = $max_anzahl;


Zitat:
Und nun die Fragen:
Woran erkennst Du daß es nicht mehr funktioniert?

Daran, dass $max_anzahl leer ist, wenn ich es in CPO 4.2 genauso mache

Zitat:
Was hast Du versucht, um es zum Funktionieren zu bringen?
Ich hatte zunächst ein Problem, mich an eine Site zu erinnern, in der ich diesen Mechanismus zum Generieren von Navigationslinks genutzt hatte (das war 2007). Deshalb habe ich mich oben so ungenau ausgedrückt.
Nun habe ich das System auf CPO 4.2 gebracht und verstehe nicht ganz, warum es nicht läuft...
Die Variable wird in _includesite/i_index.php "gefüllt":
Code:
$max_anzahl = $db->v('COUNT(*)')

Ich hoffe, ich habe jetzt genug beschrieben, damit du was damit anfangen kannst.

Grüße von Horst
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 6993

BeitragVerfasst am: 26.12.2011 23:30    Titel: Antworten mit Zitat

Und genau da haben wir Dein Problem:

in _rubric/index.php steht folgendes
Code:
    include(CPO_BASEDIR.$directory.'/loadheaders.php');
    require(CPO_BASEDIR.'_includesite/i_index.php');
    include(CPO_BASEDIR.$directory.'/loadfooters.php');

und somit ist der Header schon auf dem Bildschirm, bevor in i_index.php die Variable gefüllt wird.

Das ist aber schon immer so... also mußt Du früher auch was anders gemacht haben.

Das ist ja schon immer eine ConPresso-Krankheit, daß Inhalte immer gleich ausgegeben werden statt sie zu sammeln und dann erst in einem zweiten Schritt auszugeben.

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
hscha
ConPresso-Checker


Anmeldungsdatum: 22.02.2006
Beiträge: 496
Wohnort: Berlin

BeitragVerfasst am: 26.12.2011 23:49    Titel: Antworten mit Zitat

Hallo Markus,

jetzt habe ich genau die Stelle wiedergefunden, an der wir damals was geändert haben (war auch ein Tipp vom ConPresso-Team, habe ich aber im Forum nicht wiedergefunden):

in der geänderten index.php steht:
Code:
ob_start();
require(CPO_BASEDIR.'_includesite/i_index.php');
$articles = ob_get_contents();
ob_end_clean();           

include(CPO_BASEDIR.$directory.'/loadheaders.php');
// require(CPO_BASEDIR.'_includesite/i_index.php');
echo $articles;
include(CPO_BASEDIR.$directory.'/loadfooters.php');


Ich ändere das mal in meiner CPO 4.2-Installation. Mal sehen, was dann passiert...

Gibt es ansonsten eine Datenbank-Abfrage, mit der ich das einfach realisieren kann?

Danke und Grüße von
Horst
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 6993

BeitragVerfasst am: 27.12.2011 00:19    Titel: Antworten mit Zitat

Na, also, damit geht es doch.

Du könntest die Abfrage aus i_index.php benutzen.
Damit verlangsamst Du aber nur die Seite und erreichst auch nichts anderes.

Um solchen Änderungen auf die Spur zu kommen, habe ich ja in mod_track die Prüfung auf geänderte Original-Dateien eingebaut.

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7

 
Für dieses Posting bedanken sich die folgenden User: hscha
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
dutch
ConPresso-Experte


Anmeldungsdatum: 04.07.2007
Beiträge: 515

BeitragVerfasst am: 24.05.2016 19:36    Titel: Antworten mit Zitat


 Der Beitrag ist zwar schon alt, allerdings bräuchte ich genau sowas, was Heike-Marie hier weiter oben beschreibt:

Zitat:

in die i_index.php (und i_archive.php) unterhalb von

php:
$db->query($query);
$anzahl $db->num_rows();?>


in der Art ergänzen:

php:
<?if ($anzahl 1) {
echo (
'<p>"'.$cpoRubricSettings['title'].'" enthält '.$anzahl.' Artikel</p>')."\n"
}


Das erscheint dann als erste Zeile im Content-Bereich und kann mittels CSS an die gewünschte Stelle verschoben werden.
Zum Beispiel so unters Banner:


Nur leider wird bei mir nichts ausgegeben, darum vermute ich mal, dass dies nicht so 1:1 für eine 4.1.6 übernommen werden kann?  Rolling Eyes

Gruß,
dutch

Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 6993

BeitragVerfasst am: 24.05.2016 20:06    Titel: Antworten mit Zitat

Es spricht nichts dagegen dass es funktioniert, aber Du kannst sicher beschreiben wie Du Dein System konfiguriert hast,
also ob Du z.B. Seitentemplates statt php-Dateien benutzt.
Und was genau Du jetzt geändert hast (Dateien zippen und beilegen).

Was passiert wenn Du
Code:
echo "Test";

in die if-Abfrage schreibst?

Wichtig:
<?
ist auf neueren Systemen sowieso nicht möglich sondern muss
<?php
lauten.

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neue Antwort erstellen    ConPresso Community Foren-Übersicht -> Implementierung/Anpassung ConPresso 4 Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen