Neue Rubrien & die letzten News

Allgemeine Diskussionen zu ConPresso 3.x.
Achtung: Bitte benutzt wenn möglich die themenspezifischen Foren!
Antworten
juergen

Neue Rubrien & die letzten News

Beitrag von juergen »

Schoenen Sonntag.

So, hab inzwischen schon etwas herumgebastelt und ich muss sagen,dass mir eig. nur 2 Punkte gar nicht gefallen.

a) das Anlegen der Rubrik unter FTP
- das ist teils um,staendlicher und braucht nat. auch mehr Speicherplatz, da alle PHP-Files mitkopiert werden muessen. waere besser irgendwie per .htaccess oder so auf ein PHP-Verz. zuzugreifen und nur Header und Footer aus dem Verzeichnis direkt zu laden - oder?

b) Anzeige der letzten 10 News
- vielleicht kann mir da jemand mit den SQL-Abfragen helfen
wuerde gerne auf der Hauptseite die letzten Artikel mit Link auf die Rubrik anzeigen lassen,zB
´
Die letzten Artikel:
Geiselbefreiung in Moskau - lesen Sie mehr dazu in >NEWS
Album der Woche - lesen Sie mehr dazu in >MUSIK
...


Ansonsten ist das Programm genau dass,was ich suche :)

Danke schonmal fuer die Hilfe...

cu,juergen
Thomas "Balu"

Re: Neue Rubrien & die letzten News

Beitrag von Thomas "Balu" »

Hallo Juergen,

schoen, dass Dir ConPresso bis auf diese zwei Kleinigkeiten gefaellt :-).

Ich antworte Dir mal eben schnell auf a), da ich schon mehrere Fragen in Richtung "wieso arbeitet ConPresso mit Kopien von Verzeichnissen?" hatte.

Wir haben uns bei der Entwicklung von ConPresso natuerlich auch Gedanken darueber gemacht, wie die Handhabung von Rubriken moeglichst einfach, aber auch moeglichst flexibel gehandhabt werden koennte.

Wir hatten die Moeglichkeit, alle Rubrikdaten in der Datenbank abzulegen. Das wuerde die Flexibilitaet von ConPresso aber sehr stark einschraenken. Wir haben z.B. fuer einen Kunden eine Rubrik derart angepasst (mit neuen Dateien oder Abaenderung von bestehenden), dass er jetzt statt Artikeln, eine komplette Bibliothek verwalten kann, inklusive Ausleihe, usw. Das geht natuerlich nur, wenn die Dateien in einem Verzeichnis liegen und angepasst werden koennten.

Ausserdem muesste ConPresso dann anstatt ueber eine einfache URL wie http://www.example.com/conpresso/rubrikname/ z.B. ueber http://www.example.com/conpresso/show?rubrik=rubrikname aufrufen. Das sieht erstens "haesslicher" aus und zweitens gibt es Suchmaschinen, die solche URLs nicht indizieren (dynamische Seiten).

Geplant war auch, die Rubriken ueber das WebFrontend anlegen zu koennen. Das gibt allerdings diverse andere Probleme z.B. Zugriffsprobleme, da der Webserver ueblicherweise mit anderen Benutzerrechten laeuft (selbst wenn der Benutzer dem Webserver erlaubt, Unterverzeichnisse anzulegen, gibt es Schwierigkeiten: Der Benutzer kann eventuell die Verzeichnisse nicht mehr loeschen, weil sie vom Webserver angelegt wurden).
Ausserdem machen in diesem Fall die Unterschiede zwischen den verschiedenen Betriebssystemen Probleme.

Du siehst, das ist alles garnicht so einfach. Aus diesem Grunde haben wir uns fuer die bisherige Variante entschieden. Aber vielleicht sieht das in ConPresso 4 schon wieder ganz anders aus :-)

Zu b) wird Dir vermutlich Tobias Musholt schneller und besser antworten koennen.

Gruesse aus MS
Balu
toby
ConPresso-User
Beiträge: 44
Registriert: 01.01.1970 01:00

Re: Neue Rubrien & die letzten News

Beitrag von toby »

Hallo Jürgen!

Ein entsprechendes SQL-Statement sollte wie folgt aussehen:

if ( $System_release == 1 ) {
$query = "SELECT * FROM cpo_news WHERE artikel_archiv < 2 AND freigabe = 0 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."' ORDER BY ".$sort." LIMIT 0,10 ";
} else {
$query = "SELECT * FROM cpo_news WHERE artikel_archiv < 1 AND freigabe != 2 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."' ORDER BY ".$sort." LIMIT 0,10 ";
}

Mit freundlichen Grüßen
Tobias H. Musholt

juergen

Re: Neue Rubrien & die letzten News

Beitrag von juergen »

Zum SQL Statement...

Hab versucht das
a) in einer Extra-Seite miteinzubinden, was mislang
b) als Code-Snippet miteinzubauen, was auch nicht gelang

:(

Vielleicht koennt Ihr mir bitte nochmal helfen, vielleicht mit der Abfrage und dem PHP-Code, wie er als zB Artikel mit eingebunden werden kann..


Danke auf alle Faelle fuer die bisherigen und noch kommenden Antworten :)


... juergen
toby
ConPresso-User
Beiträge: 44
Registriert: 01.01.1970 01:00

Re: Neue Rubrien & die letzten News

Beitrag von toby »

Hallo Jürgen!

Wir haben mal kurz eine mögliche PHP-Datei zusammen gestellt. Hier werden die letzten 10 Artikel ausgegeben!
Die Datei muss in ein Artikelverzeichnis gelegt werden!

MfG
Tobias H. Musholt


-------------------------------------------------------------------------So könnte eine mögliche Datei aussehen:


<?php
# vim: set expandtab tabstop=4 shiftwidth=4 nowrap:
# ---------------------------------------------------------------------------
# ConPresso 3.x - Content Management
# ---------------------------------------------------------------------------
# Datei/File: /CATEGORY_DIR/index.php
# Beschr./Desc.: OUTPUT
# Firma/Company: Bartels Schoene GmbH & Co. KG
# Corrensstr. 80, 48149 Muenster, Germany
# URL: www.conpresso.de | www.bartels-schoene.de
# Autor/Author: Tobias Musholt - musholt@bartels-schoene.de
# Co-Author: Thomas 'Balu' Walter - walter@bartels-schoene.de
# Stefan Heitmann - heitmann@bartels-schoene.de
# Steffen Schoene - schoene@bartels-schoene.de
# Ralf Margott - margott@bartels-schoene.de (grafic)
# Lizenz/Licence: LICENCE.txt
# Erstellt/Create: 21-02-2002 - Tobias Musholt
# Aenderung/Change: 25-02-2002 - Tobias Musholt: insert this programhead
#
# ---------------------------------------------------------------------------
# Copyright (c) 2001 - Bartels Schoene GmbH & Co. KG - All rights reserved.
# ---------------------------------------------------------------------------



require("../_cfg/const.php");
require("kategorie.inc.php");
require("../_include/var_rubrik.php");
$Artikel_header = $Rubric_header;
require("const_rubrik_language.php");

# --- HEADER ---
require("../_include/inc_header.php");

echo "<div class=\"text\">\n";

$jetzt = time();

if ( $start == '' || $start < '0')
{
$start = "0";
}

if ( $System_release == 1 ) {
$query_count = "SELECT nr FROM cpo_news WHERE artikel_archiv < 2 AND freigabe = 0 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC";
$query = "SELECT * FROM cpo_news WHERE artikel_archiv < 2 AND freigabe = 0 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC LIMIT 0,10 ";
} else {
$query_count = "SELECT nr FROM cpo_news WHERE artikel_archiv < 1 AND freigabe != 2 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC";
$query = "SELECT * FROM cpo_news WHERE artikel_archiv < 1 AND freigabe != 2 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC LIMIT 0,10 ";
}

DEBUG(2, $query_count, __FILE__, __LINE__);
$db = new DB;
$db->query($query_count);
$max_anzahl = $db->num_rows();

DEBUG(2, $query, __FILE__, __LINE__);
$db = new DB;
$db->query($query);
$anzahl = $db->num_rows();

if ($db->num_rows()>0)
{
while($db->next_record()):

echo "\n<!-- 1 --------------------------------------------------------------------------------------------- -->\n";

require("../_include/select_db.php");

if ( $template_db == '' )
{
$template = $db_template;
} else {

if ( $Rubric_standard_template != '' )
{
$template = $Rubric_standard_template;
} else {

$query = "SELECT * FROM cpo_templates WHERE id != '' LIMIT 0,1";
DEBUG(2, $query, __FILE__, __LINE__);
$db = new DB;
$db->query($query);

if ($db->num_rows()>0)
{
while($db->next_record()):
$template = $db->v("template");
endwhile;
}
}
}

require("../_include/template_first_header.php");

echo "<A NAME='".$db_nr."'></A>\n";
echo "<table width='".$System_article_width."' border='0' cellpadding='0' cellspacing='0'>\n";
echo "<tr><td align=\"left\" valign=\"top\">";

$query = "SELECT * FROM cpo_templates WHERE template = \"".$template."\"";
DEBUG(2, $query, __FILE__, __LINE__);
$db_2 = new DB;
$db_2->query($query);

if ($db_2->num_rows()>0)
{
while($db_2->next_record()):
$template_datei = $db_2->v("tpl_first");
endwhile;
}

require("../_include/parser.php");

$string = explode("\n", $template_datei);

for ( $i=0; $i <= sizeof($string); $i++ ) {
$space = ereg_replace ( " ", "", $string[$i]);
$space = ereg_replace ( "/(\015\012)|(\015)|(\012)/", "", $space);
if ( $space != '' ) {
echo $string[$i];
}
}

require("../_include/temp_footer.php");

if ( $Rubric_separate == 1 )
{
echo "<hr size=\"1\" align=\"left\" width=\"".$System_article_width."\"><br>";
}

endwhile;
echo "\n<!-- 2 --------------------------------------------------------------------------------------------- -->\n";

} else {
echo "<span class='nodata'><br><br>".$Rubric_nodata."<br><br></span><br>\n";
}

# require("../_include/next_index.php");

echo "</div>";

# --- FOOTER ---
require("../_include/inc_footer.php");

?>
juergen

Re: Neue Rubrien & die letzten News

Beitrag von juergen »

Erstmal HERZLICHEN DANK!!

Habs mir eigentlich einfacher vorgestellt. Soooo gut kenn ich mich in PHP dann doch (noch) nicht aus ...

Okay, die Daten werden also eingelesen und dann ueber parser.php ausgegeben - richtig ?

So, jetzt noch die Frage, wie ich nur die einzelne Zeile haben kann zB.


> Kategorie _NEWS_ : bericht - _lesen_

also, das mit _ sollen Links anzeigen... d.h. es soll in der Ausgabe NUR die Überschrift, den Link (ist ja kein Problem mit der Artikel-Id) dazu und vor allem der Kategoriename angezeigt werden.... Muesst ich doch in Parser.php abändern oder ?


cu, juergen
juergen

Re: Neue Rubrien & die letzten News

Beitrag von juergen »

So, hab jetzt mal mit Eurem Vorschlag gespielt bzw. eine -wenn auch ohne Templates - Loesung gemacht.
Ist zwar "quick & dirty" aber vielleicht kann der ein oder andere was damit anfangen bzw. ausbauen.
Ueber Kommentare bzw. Verbesserungsvorschlaege wuerd ich mich freuen:



<?php

require("../_cfg/const.php");
require("kategorie.inc.php");
require("../_include/var_rubrik.php");
require("const_rubrik_language.php");
require("../_include/select_db.php");
$Artikel_header = $Rubric_header;

$jetzt = time();
# --- HEADER ---
require("../_include/inc_header.php");

if ( $System_release == 1 ) {
$query_count = "SELECT nr FROM cpo_news WHERE artikel_archiv < 2 AND freigabe = 0 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC";
$result = mysql_query("SELECT * FROM cpo_news WHERE artikel_archiv < 2 AND freigabe = 0 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC LIMIT 0,10 ");
} else {
$query_count = "SELECT nr FROM cpo_news WHERE artikel_archiv < 1 AND freigabe != 2 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC";
$result = mysql_query("SELECT * FROM cpo_news WHERE artikel_archiv < 1 AND freigabe != 2 AND pub_datum < '".$jetzt."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC LIMIT 0,10 ");
}
# --- Überschrift ---
echo "Die letzten News in der Übersicht:<br><br>";
# --- die letzten Artikel auslesen
while ($data = mysql_fetch_array($result)) {
$data2=$data[kategorie];
# --- Verzeichnis bzw. den angezeigten Rubriknamen ermitteln
$rubrikquery= mysql_query("SELECT * FROM cpo_rubrik WHERE rubrik='".$data2."' ");
$rubrikdaten = mysql_fetch_array($rubrikquery);
if ($data[text_1] == ""){
$artikel=$data[text_2];
}
else {
$artikel=$data[text_1];
}

# --- Artikeltext wird beschränkt, so dass der Besucher auch in die Kategorie geht
# --- und evtl. dort weiterschmökert
$artikeltext = substr($artikel, 0, 200);
$verzeichnis = strtolower($data[kategorie]);

# --- Kategorie und Artikel auflisten; Verzeichnisse sollten ALLE kleingeschrieben sein
# --- bei Bedarf kann natürlich direkt auf Artikel gelinkt werden
# --- <a href=\"/$verzeichnis/show_index.php?nr=$data[nr]\">Artikel lesen</a>
echo "<a href=\"/$verzeichnis\">$rubrikdaten[header]</a><br><b>$data[titel]:</b><br> $artikeltext.....<a href=\"/$verzeichnis\"><weiter></a><br><br>";
}

# --- FOOTER ---
require("../_include/inc_footer.php");

?>
toby
ConPresso-User
Beiträge: 44
Registriert: 01.01.1970 01:00

Re: Neue Rubrien & die letzten News

Beitrag von toby »

Hallo Jürgen!

Anbei eine modifizierte Ausgangezeile:

echo "<a href=\"../".$verzeichnis."/index.php\">".$rubrikdaten[header]."</a><br><b>".$data[titel].":</b><br> ".$artikeltext."... <a href=\"../".$verzeichnis."/index.php#".$data[nr]."\">lesen »</a><br><br>";

MfG
Tobias Musholt
Alex

Re: Neue Rubrien & die letzten News

Beitrag von Alex »

Hallo die, die des PHPs mächtig sind ;)

Wie müsste das obige Script modifiziert sein (resp., wo müsste man es modifizieren) um nur die neusten News nach obiger Methode einer bestimmten rubrik oder von 2 rubriken ausgeben.

Oder auch umgekehrt: Alle Rubriken, ausser ein paar Rubriken nicht.

Vielen Dank,

cheers
Alex
toby
ConPresso-User
Beiträge: 44
Registriert: 01.01.1970 01:00

Re: Neue Rubrien & die letzten News

Beitrag von toby »

Hallo Alex!

Ich habe mal zwei Code-Snippsel zusammen gestellt:

Diese SQL-Abfrage gibt alle neuen Artikel aus, die aus der Rubrik "News" oder "Jobs" stammen und nicht älter als 30 Sekunden sind!

if ( $System_release == 1 ) {
$query_count = "SELECT nr FROM cpo_news WHERE ( kategorie = 'News' OR kategorie = 'Jobs' ) AND artikel_archiv < 2 AND freigabe = 0 AND pub_datum < '".$jetzt."' AND pub_datum > '".($jetzt-30)."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC";
$result = mysql_query("SELECT * FROM cpo_news WHERE ( kategorie = 'News' OR kategorie = 'Jobs' ) AND artikel_archiv < 2 AND freigabe = 0 AND pub_datum < '".$jetzt."' AND pub_datum > '".($jetzt-30)."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC LIMIT 0,10 ");
} else {
$query_count = "SELECT nr FROM cpo_news WHERE ( kategorie = 'News' OR kategorie = 'Jobs' ) AND artikel_archiv < 1 AND freigabe != 2 AND pub_datum < '".$jetzt."' AND pub_datum > '".($jetzt-30)."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC";
$result = mysql_query("SELECT * FROM cpo_news WHERE ( kategorie = 'News' OR kategorie = 'Jobs' ) AND artikel_archiv < 1 AND freigabe != 2 AND pub_datum < '".$jetzt."' AND pub_datum > '".($jetzt-30)."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC LIMIT 0,10 ");
}


Diese SQL-Abfrage gibt alle neuen Artikel aus, die nicht aus der Rubrik News und nicht Jobs stammen und nicht älter als 3600 Sekunden (=1 Stunde) sind!

if ( $System_release == 1 ) {
$query_count = "SELECT nr FROM cpo_news WHERE ( kategorie != 'News' AND kategorie != 'Jobs' ) AND artikel_archiv < 2 AND freigabe = 0 AND pub_datum < '".$jetzt."' AND pub_datum > '".($jetzt-3600)."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC";
$result = mysql_query("SELECT * FROM cpo_news WHERE ( kategorie != 'News' AND kategorie != 'Jobs' ) AND artikel_archiv < 2 AND freigabe = 0 AND pub_datum < '".$jetzt."' AND pub_datum > '".($jetzt-3600)."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC LIMIT 0,10 ");
} else {
$query_count = "SELECT nr FROM cpo_news WHERE ( kategorie != 'News' AND kategorie != 'Jobs' ) AND artikel_archiv < 1 AND freigabe != 2 AND pub_datum < '".$jetzt."' AND pub_datum > '".($jetzt-3600)."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC";
$result = mysql_query("SELECT * FROM cpo_news WHERE ( kategorie != 'News' AND kategorie != 'Jobs' ) AND artikel_archiv < 1 AND freigabe != 2 AND pub_datum < '".$jetzt."' AND pub_datum > '".($jetzt-3600)."' AND verfallsdatum > '".$jetzt."' ORDER BY pub_datum DESC LIMIT 0,10 ");
}


Ich hoffe, das ich mit diesem Posting helfen konnte!

MfG
Tobias Musholt

Alex

Re: Neue Rubrien & die letzten News

Beitrag von Alex »

Hallo Tobias

Vielen Dank für die schnelle Antwort! Genau das habe ich gebraucht!

cheers
Alex
Alex

Re: Neue Rubrien & die letzten News

Beitrag von Alex »

Hallo Tobias

Ich nochmals ;) Ich habe jetzt sogar begriffen, wie ich die Ausgabe individuell anpassen kann (also z.B. noch den Untertitel mit ausgeben).

Ich würde nun aber auch noch gerne ein zu einem Artikel ev. zugehöriges Bild ausgeben. Da ja aber in der Tabelle "cpo_news" ja nur die Referenznummer eines ev. vorhandenen Bildes ist, übersteigt das natürlich wieder mal meine PHP-Möglichkeiten ;)

Gibt's dafür einen relativ einfachen Weg?

Danke,

cheers
Alex
Gabriel

Re: Neue Rubrien & die letzten News

Beitrag von Gabriel »

Hm. Und wie binde ich in Eurem CMS diese PHP-Datei am Besten ein?

Nachtrag:
Hat sich erledigt -> even a blind hen sometimes finds a grain of corn

So far,
Mirko



Beitrag bearbeitet (14.04.04 02:12)
Benutzeravatar
georg
ConPresso-Checker
Beiträge: 164
Registriert: 01.01.1970 01:00
Hat sich bedankt: 5 Mal

Re: Neue Rubrien &amp; die letzten News

Beitrag von georg »

Hi Mirko, allerseits,

ich sehe, dass die hier veröffentlichten codeschnipsel schon aus 2002 sind....


nach dem einfügen von: (vorher nur eine weisse seite)

define('CPO', true);

bekomme ich diese meldung:

Warning: main(kategorie.inc.php): failed to open stream: No such file or directory in C:\Inetpub\wwwroot\alzheimerforum-cz\aktuelles\juergen_1.php on line 4

Fatal error: main(): Failed opening required 'kategorie.inc.php' (include_path='.;c:\php4\pear') in C:\Inetpub\wwwroot\alzheimerforum-cz\aktuelles\juergen_1.php on line 4

mit der offensichtlich diese zeile angemeckert wird:

require("kategorie.inc.php");

wo ist diese datei?
wie hast Du es nun eingebunden Mirko?

danke

georg
Mirko Zinn

Re: Neue Rubrien &amp;amp; die letzten News

Beitrag von Mirko Zinn »

hi georg.

die category.inc.php liegt im ordner _include. das thema hat sich für mich insofern erledigt, da es mir um die modifizierung der index_js10.php ging. ich wollte die startseite automatisch mit dem topthemen aus drei rubriken füttern: meldung 1 mit teaserbild, meldungen 2-4 nur als überschriften mit den direkten links zu den artikeln.

in jedem dieser rubrik-ordner liegt so eine umgemodelte datei, die jeweils nur die 4 aktuellesten artikel aus der rubrik ausgibt. das ganze habe ich per javascript auf die startseite eingebaut.

Bsp.: <script language=JavaScript1.2 src="../schlagzeilen/index10js.php"></script>

ist nicht die feine art und etwas umständlich - aber **** happens - es funktioniert.

hoffe geholfen zu haben.

so far,
mirko
Antworten