Hallo,
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
- holger
- Beiträge: 403
- Registriert: 21. Jun 2005, 13:21
- Wohnort: Sehnde / Hannover / lower saxony
- Kontaktdaten: Website
Modul Newsboard möglich ?
Hallo,
ich suche nach einer Funktion, mit Redaxo ein Newsboard aufbauen zu können.
Ein Modul, welches in diese Richtung geht ist die Blätterbare/Paginated Artikelliste.
Ich stelle mir das so vor:
Ich habe eine Liste, die mir alle Artikel in dieser Kategorie (die online sind) nach Erstellungsdatum sortiert anzeigt.
Allerdings soll nicht der ganze Text der Artikel angezeigt werden, sondern nur ein Vorschautext, eventuell mit Bild. Nach einem Klick auf einen Link (..mehr) bekommt man den ganzen Artikel angezeigt.
Vielleicht kann man das auch mit der Beschreibung unter "Metadaten" so hinbekommen. Allerdings sind dort keine Formatierungen möglich.
Hat jemand eine Idee ?
mfg
Holger
ich suche nach einer Funktion, mit Redaxo ein Newsboard aufbauen zu können.
Ein Modul, welches in diese Richtung geht ist die Blätterbare/Paginated Artikelliste.
Ich stelle mir das so vor:
Ich habe eine Liste, die mir alle Artikel in dieser Kategorie (die online sind) nach Erstellungsdatum sortiert anzeigt.
Allerdings soll nicht der ganze Text der Artikel angezeigt werden, sondern nur ein Vorschautext, eventuell mit Bild. Nach einem Klick auf einen Link (..mehr) bekommt man den ganzen Artikel angezeigt.
Vielleicht kann man das auch mit der Beschreibung unter "Metadaten" so hinbekommen. Allerdings sind dort keine Formatierungen möglich.
Hat jemand eine Idee ?
mfg
Holger
// Wenn die Theorie von der Praxis abweicht: --> Ändere die Theorie //
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
- Thomas.Blum
- Entwickler
- Beiträge: 5063
- Registriert: 24. Aug 2004, 22:11
- Wohnort: Dresden
- Kontaktdaten: Website
- holger
- Beiträge: 403
- Registriert: 21. Jun 2005, 13:21
- Wohnort: Sehnde / Hannover / lower saxony
- Kontaktdaten: Website
Hi,
korrekt, hatte ich auch schon gefunden.
Nur bleibt doert auch noch die Nicht-Formatierbarkeit der Beschreibung und wo ich diese eingeben muß, finde ich nicht ganz glücklich.
Werden die Artikel dabei auch nach Erstellungsdatum angezeigt ?
mfg
Holger
korrekt, hatte ich auch schon gefunden.
Nur bleibt doert auch noch die Nicht-Formatierbarkeit der Beschreibung und wo ich diese eingeben muß, finde ich nicht ganz glücklich.
Werden die Artikel dabei auch nach Erstellungsdatum angezeigt ?
mfg
Holger
// Wenn die Theorie von der Praxis abweicht: --> Ändere die Theorie //
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
- Thomas.Blum
- Entwickler
- Beiträge: 5063
- Registriert: 24. Aug 2004, 22:11
- Wohnort: Dresden
- Kontaktdaten: Website
- Markus.Staab
- Entwickler
- Beiträge: 9634
- Registriert: 29. Jan 2005, 15:50
- Wohnort: Aschaffenburg/Germany
- Kontaktdaten: ICQ Website
Re: Modul Newsboard möglich ?
Hi
warum änderst du für dich die "Blätterbare/Paginated Artikelliste" nicht einfach auf deine Bedürfnisse ab. Dieses Modul hat doch, wie du schon selbst sagtst, fast alles was du brauchst.
Gruß,
Markus
warum änderst du für dich die "Blätterbare/Paginated Artikelliste" nicht einfach auf deine Bedürfnisse ab. Dieses Modul hat doch, wie du schon selbst sagtst, fast alles was du brauchst.
Gruß,
Markus
- holger
- Beiträge: 403
- Registriert: 21. Jun 2005, 13:21
- Wohnort: Sehnde / Hannover / lower saxony
- Kontaktdaten: Website
Hi,
ich versuche gerade einen anderen Weg.
Ich möchte in dem WYSIWYG-Modul ein zweites <textarea>feld und ein normales <input>-feld oberhalb des jetzigen einbinden.
In dem neuen Textareafeld soll die "Beschreibung" und in das Inputfeld der "Name" ais der Seite "Metadaten erscheinen.
Damit wären diese Felder zwar doppelt (nähmlich hier und auf der Seite "Metadaten" verfügbar, es ist für den Benutzer damit aber leichter verständlich, das er 1. den Titel, 2. den Vorschautext und 3. den Haupttext anlegen soll. In Zusammenarbeit mit einem Articlelist-Modul auf der Startseite hätte man dann ein funktionierendes Newsboard.
Ich bekomme nur diese Felder nicht in das Modul eingebunden.
mfg
Holger
ich versuche gerade einen anderen Weg.
Ich möchte in dem WYSIWYG-Modul ein zweites <textarea>feld und ein normales <input>-feld oberhalb des jetzigen einbinden.
In dem neuen Textareafeld soll die "Beschreibung" und in das Inputfeld der "Name" ais der Seite "Metadaten erscheinen.
Damit wären diese Felder zwar doppelt (nähmlich hier und auf der Seite "Metadaten" verfügbar, es ist für den Benutzer damit aber leichter verständlich, das er 1. den Titel, 2. den Vorschautext und 3. den Haupttext anlegen soll. In Zusammenarbeit mit einem Articlelist-Modul auf der Startseite hätte man dann ein funktionierendes Newsboard.
Ich bekomme nur diese Felder nicht in das Modul eingebunden.
mfg
Holger
// Wenn die Theorie von der Praxis abweicht: --> Ändere die Theorie //
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
- Thomas.Blum
- Entwickler
- Beiträge: 5063
- Registriert: 24. Aug 2004, 22:11
- Wohnort: Dresden
- Kontaktdaten: Website
- holger
- Beiträge: 403
- Registriert: 21. Jun 2005, 13:21
- Wohnort: Sehnde / Hannover / lower saxony
- Kontaktdaten: Website
Hallo
Ok, die Idee ist vielleicht gar nicht schlecht.
Nur, wie stelle ich in einer Artikelliste diese Inhalte dar.
Die ganzen Artikellisten im Downloadbereich lesen immer nur den Namen und die Description aus. Nicht aber den Inhalt
Und, wie begrentze ich den Text ? Und, wie kann man es dann erreichen, das ein Vorschaubild in der Artikelliste mit angezeigt wird. (Ohne das ich auf die Seite "Metadaten" wechseln muß ?). In dem Artikel selbst dann aber nicht.
Ich habe nun schon einige Stunden experimentiert. Ich komme aber da nicht hin.
Ich stelle mir das Modul so vor, wie man es von z.B. stern.de, spiegel.de etc. kennt: Kurzer Text mit Vorschaubild, nach Klick auf "mehr" vollständiger Text mit anderen Bildern.
mfg
Holger
Code: Alles auswählen
also ich würde nur das wysiwyg--modul anzeigen lassen. Als Beschreibung würde ich vom Artikel die ersten 100 Zeichen darstellen. Der Title wäre ganz einfach der Artikelname. Warum kompliziert wenn es einfacher geht?
Nur, wie stelle ich in einer Artikelliste diese Inhalte dar.
Die ganzen Artikellisten im Downloadbereich lesen immer nur den Namen und die Description aus. Nicht aber den Inhalt
Und, wie begrentze ich den Text ? Und, wie kann man es dann erreichen, das ein Vorschaubild in der Artikelliste mit angezeigt wird. (Ohne das ich auf die Seite "Metadaten" wechseln muß ?). In dem Artikel selbst dann aber nicht.
Ich habe nun schon einige Stunden experimentiert. Ich komme aber da nicht hin.
Ich stelle mir das Modul so vor, wie man es von z.B. stern.de, spiegel.de etc. kennt: Kurzer Text mit Vorschaubild, nach Klick auf "mehr" vollständiger Text mit anderen Bildern.
mfg
Holger
// Wenn die Theorie von der Praxis abweicht: --> Ändere die Theorie //
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
- Markus.Staab
- Entwickler
- Beiträge: 9634
- Registriert: 29. Jan 2005, 15:50
- Wohnort: Aschaffenburg/Germany
- Kontaktdaten: ICQ Website
Hi holger
Dieses Modul liest von der Kategorie in der es sich befindet alle Unterkategorien aus und stellt diese als DIV Liste dar.
Damit die Funktion truncate() vorhanden ist, muss das import/export addon installiert/aktiviert sein!
ungetestet!
Gruß,
Markus
holger hat geschrieben:Hallo
Ok, die Idee ist vielleicht gar nicht schlecht.
Nur, wie stelle ich in einer Artikelliste diese Inhalte dar.
Die ganzen Artikellisten im Downloadbereich lesen immer nur den Namen und die Description aus. Nicht aber den Inhalt
Und, wie begrentze ich den Text ? Und, wie kann man es dann erreichen, das ein Vorschaubild in der Artikelliste mit angezeigt wird. (Ohne das ich auf die Seite "Metadaten" wechseln muß ?). In dem Artikel selbst dann aber nicht.
Ich habe nun schon einige Stunden experimentiert. Ich komme aber da nicht hin.
Ich stelle mir das Modul so vor, wie man es von z.B. stern.de, spiegel.de etc. kennt: Kurzer Text mit Vorschaubild, nach Klick auf "mehr" vollständiger Text mit anderen Bildern.
mfg
Holger
Code: Alles auswählen
<?php
function getArticleContent( $artId) {
ob_start();
$article = new article();
$article->setArticleId( $artId);
$article->getArticle();
$content = ob_get_contents();
ob_end_clean();
return truncate( $content, 100); // Die ersten 100 Zeichen
}
$cat = OOCategory::getCategoryById(REX_CATEGORY_ID);
$childs = $cat->getChildren( true);
if ( is_array( $childs)) {
foreach ( $childs as $child) {
$content = getArticleContent( $child->getId());
$metaFile = $child->getFile();
$media = OOMedia::getMediaByFileName( $metaFile);
printf( '<div>%s</div><div>%s</div>', $media->toHTML(), $content);
}
}
?>
Damit die Funktion truncate() vorhanden ist, muss das import/export addon installiert/aktiviert sein!
ungetestet!
Gruß,
Markus
- holger
- Beiträge: 403
- Registriert: 21. Jun 2005, 13:21
- Wohnort: Sehnde / Hannover / lower saxony
- Kontaktdaten: Website
Hallo,
danke erstmal für dein script.
Ich möchte nur keine Kategorien auslesen, sondern nur die Artikel einer Kategorie.
Wird bei der Zählung der 100 Zeichen der html-code abgezogen ?
Ansonsten kann schon eine Tabelle die 100 Zeichen ausmachen.
Und dann sieht man vom Inhalt gar nichts.
mfg
Holger.
danke erstmal für dein script.
Ich möchte nur keine Kategorien auslesen, sondern nur die Artikel einer Kategorie.
Wird bei der Zählung der 100 Zeichen der html-code abgezogen ?
Ansonsten kann schon eine Tabelle die 100 Zeichen ausmachen.
Und dann sieht man vom Inhalt gar nichts.
mfg
Holger.
// Wenn die Theorie von der Praxis abweicht: --> Ändere die Theorie //
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
- holger
- Beiträge: 403
- Registriert: 21. Jun 2005, 13:21
- Wohnort: Sehnde / Hannover / lower saxony
- Kontaktdaten: Website
Hi,
ich versuche hier nochmal meinen Gedankengang zu erklären. Scheinbar ist diese ansich simple Funktion wohl hier nicht so einfach zu erstellen.
Also, ich habe ein Modul "News" erstellt:
Hiermit kann ich einen Vorschautext, ein Vorschaubild und einen Haupttext eingeben.
Wenn man dieses Modul selbst allein aufruft, bekommt man in der Ausgabe nur! den Haupttext angezeigt
Ich möchte nun eine Artikelliste (keine Kategorienliste), mit der ich jeweils den Vorschautext und das Vorschaubild dargestellt bekomme. Und zwar von allen Artikeln, die online sind und sich in dieser Kategorie befinden.
Unter dem Vorschautext und Bild soll ein Link sein (..mehr), der mich zu dem eigentlichen Haupttext führt. (Also zur Ausgabe des Newsmoduls)
Ich hoffe, das war verständlich.
mfg
Holger
ich versuche hier nochmal meinen Gedankengang zu erklären. Scheinbar ist diese ansich simple Funktion wohl hier nicht so einfach zu erstellen.
Also, ich habe ein Modul "News" erstellt:
Code: Alles auswählen
Bitte gib den Vorschautext ein, der zu Sehen sein soll:<br>
<textarea name=VALUE[2] cols=80 rows=10 class=inp100>REX_VALUE[2]</textarea>
<br>
Gib das Vorschaubild ein, das zu sehen sein soll:
<br>
REX_MEDIA_BUTTON[9]
<?
if ("REX_FILE[9]" != "")
{
echo "<img src=$REX[HTDOCS_PATH]files/REX_FILE[9]>";
}
?>
<br>
Bitte gib den Haupttext ein der zu Sehen sein soll:<br>
<?php
$a = new rex_wysiwyg_editor();
$a->buttonrow1 = "bold,italic,separator,bullist,numlist,separator,linkHack,unlink,insertEmail,separator,cut,copy,pasteRichtext,cleanup,removeformat,separator,code";
$a->buttonrow2 = "tablecontrols, separator, visualaid,separator,undo,redo,separator,forecolor,charmap,separator,image";
$a->stylesheet = "/redaxo/files/maincg.css";
$a->content = "REX_VALUE[1]";
$a->id = 1;
$a->show();
?>
Wenn man dieses Modul selbst allein aufruft, bekommt man in der Ausgabe nur! den Haupttext angezeigt
Code: Alles auswählen
REX_HTML_VALUE[1]
Unter dem Vorschautext und Bild soll ein Link sein (..mehr), der mich zu dem eigentlichen Haupttext führt. (Also zur Ausgabe des Newsmoduls)
Ich hoffe, das war verständlich.
mfg
Holger
// Wenn die Theorie von der Praxis abweicht: --> Ändere die Theorie //
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
- Markus.Staab
- Entwickler
- Beiträge: 9634
- Registriert: 29. Jan 2005, 15:50
- Wohnort: Aschaffenburg/Germany
- Kontaktdaten: ICQ Website
Hi
Jetzt mal mit "behebung" des Problems, auf die 100 ersten Textzeichen (unschönb gelöst) und mit Artikeln statt Kategorien
ungetestet!
Gruß,
Markus
Jetzt mal mit "behebung" des Problems, auf die 100 ersten Textzeichen (unschönb gelöst) und mit Artikeln statt Kategorien
Code: Alles auswählen
<?php
function getArticleContent( $artId) {
ob_start();
$article = new article();
$article->setArticleId( $artId);
$article->getArticle();
$content = ob_get_contents();
ob_end_clean();
return truncate( strip_tags( $content), 100); // Die ersten 100 Zeichen
}
$cat = OOCategory::getCategoryById(REX_CATEGORY_ID);
$childs = $cat->getArticles( true);
if ( is_array( $childs)) {
foreach ( $childs as $child) {
$content = getArticleContent( $child->getId());
$metaFile = $child->getFile();
$media = OOMedia::getMediaByFileName( $metaFile);
printf( '<div>%s</div><div>%s</div>', $media->toHTML(), $content);
}
}
?>
Gruß,
Markus
- holger
- Beiträge: 403
- Registriert: 21. Jun 2005, 13:21
- Wohnort: Sehnde / Hannover / lower saxony
- Kontaktdaten: Website
Hallo,
hier scheint es noch ein Problem zu geben:
mfg
Holger
hier scheint es noch ein Problem zu geben:
Code: Alles auswählen
Fatal error: Call to undefined function: getmediabyfilename()
Holger
// Wenn die Theorie von der Praxis abweicht: --> Ändere die Theorie //
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
- Markus.Staab
- Entwickler
- Beiträge: 9634
- Registriert: 29. Jan 2005, 15:50
- Wohnort: Aschaffenburg/Germany
- Kontaktdaten: ICQ Website
Ach ja, hab ich vergessen zu erwähnen...holger hat geschrieben:Code: Alles auswählen
Fatal error: Call to undefined function: getmediabyfilename()
Die Methode getmediabyfilename() gibts nur in der cvs version von der oomedia Klasse.
Gruß,
Markus
- holger
- Beiträge: 403
- Registriert: 21. Jun 2005, 13:21
- Wohnort: Sehnde / Hannover / lower saxony
- Kontaktdaten: Website
Ok,
ich habe jetzt die CVS-Version.
Nun gibt es das:
mfg
Holger
ich habe jetzt die CVS-Version.
Nun gibt es das:
Code: Alles auswählen
Fatal error: Cannot redeclare getarticlecontent() (previously declared in C:\wampp2\htdocs\redaxo30\redaxo\include\classes\class.article.inc.php(356) : eval()'d code:40)
Holger
// Wenn die Theorie von der Praxis abweicht: --> Ändere die Theorie //
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
- Markus.Staab
- Entwickler
- Beiträge: 9634
- Registriert: 29. Jan 2005, 15:50
- Wohnort: Aschaffenburg/Germany
- Kontaktdaten: ICQ Website
Hi,
da Du nun die neuste CVS Version hast, geht das auch noch ein bisschen einfacher:
ungetestet!
Du darfst übrigens auch gerne selbst versuchen...
Gruß,
Markus
da Du nun die neuste CVS Version hast, geht das auch noch ein bisschen einfacher:
Code: Alles auswählen
<?php
$cat = OOCategory::getCategoryById(REX_CATEGORY_ID);
$childs = $cat->getArticles( true);
if ( is_array( $childs)) {
foreach ( $childs as $child) {
$content = truncate( strip_tags( $child->getArticleContent()));
$media = $child->getFileMedia();
printf( '<div>%s</div><div>%s</div>', $media->toHTML(), $content);
}
}
?>
Du darfst übrigens auch gerne selbst versuchen...
Gruß,
Markus
- holger
- Beiträge: 403
- Registriert: 21. Jun 2005, 13:21
- Wohnort: Sehnde / Hannover / lower saxony
- Kontaktdaten: Website
Code: Alles auswählen
Du darfst übrigens auch gerne selbst versuchen...
Aber wie ich sehe, ist es scheinbar auch nicht so einfach.
Funktionieren tut das Script irgendwie überhaupt gar nicht.
Jetzt kommt als erstes
Code: Alles auswählen
Fatal error: Call to undefined function: truncate()
Code: Alles auswählen
Fatal error: Call to undefined function: getarticlecontent()
auch beinhaltet das Script ja auch nicht die Funktion, die ich ansprach.
mfg
Holger
// Wenn die Theorie von der Praxis abweicht: --> Ändere die Theorie //
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
- Markus.Staab
- Entwickler
- Beiträge: 9634
- Registriert: 29. Jan 2005, 15:50
- Wohnort: Aschaffenburg/Germany
- Kontaktdaten: ICQ Website
Hi,
Also gut,
Gruß,
Markus
Naja, ich stell mich auch ein bisschen blöd anholger hat geschrieben: Danke für die Zaunlatte Das mache ich auch schon die ganze Zeit.
Aber wie ich sehe, ist es scheinbar auch nicht so einfach.
Wenn du die neuste CVS Version hast, müsste die function truncate eigentlich im import/export addon mit dabei sein.holger hat geschrieben: Funktionieren tut das Script irgendwie überhaupt gar nicht.
Jetzt kommt als erstesCode: Alles auswählen
Fatal error: Call to undefined function: truncate()
Ist behoben...holger hat geschrieben: Nehme ich diese Funktion einfach raus, kommt als nächstes wiederCode: Alles auswählen
Fatal error: Call to undefined function: getarticlecontent()
Also gut,
Code: Alles auswählen
<?php
$cat = OOCategory::getCategoryById(REX_CATEGORY_ID);
$childs = $cat->getArticles( true);
if ( is_array( $childs)) {
foreach ( $childs as $child) {
$article = new article( $child->getId());
$content = truncate( strip_tags( $article->getArticleContent()), 100); // Ersten 100 Zeichen
$media = $child->getFileMedia();
printf( '<div>%s</div><div>%s</div>', $media->toHTML(), $content);
}
}
?>
Markus
- holger
- Beiträge: 403
- Registriert: 21. Jun 2005, 13:21
- Wohnort: Sehnde / Hannover / lower saxony
- Kontaktdaten: Website
Hallo
ich glaub, ich gebs auf.
Hast du das script mal bei dir installiert ?
Ich bekomme immer noch die gleichen Fehlermeldungen.
mfg
holger
ich glaub, ich gebs auf.
Hast du das script mal bei dir installiert ?
Ich bekomme immer noch die gleichen Fehlermeldungen.
mfg
holger
// Wenn die Theorie von der Praxis abweicht: --> Ändere die Theorie //
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
- Markus.Staab
- Entwickler
- Beiträge: 9634
- Registriert: 29. Jan 2005, 15:50
- Wohnort: Aschaffenburg/Germany
- Kontaktdaten: ICQ Website
Also gut,
jetzt hab ichs getestet, mit der Neusten CVS Version!
Zieh dir bitte die neuste Version nochmal.
Gruß,
Markus
jetzt hab ichs getestet, mit der Neusten CVS Version!
Zieh dir bitte die neuste Version nochmal.
Code: Alles auswählen
<?php
if (!function_exists('truncate'))
{
function truncate($string, $length = 80, $etc = '...', $break_words = false)
{
if ($length == 0)
return '';
if (strlen($string) > $length)
{
$length -= strlen($etc);
if (!$break_words)
$string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length +1));
return substr($string, 0, $length).$etc;
}
else
return $string;
}
}
$cat = OOCategory::getCategoryById(REX_CATEGORY_ID);
$childs = $cat->getArticles( true);
if ( is_array( $childs)) {
foreach ( $childs as $child) {
$id = $child->getId();
if ( $id == REX_ARTICLE_ID) continue;
$article = new article( $id);
$content = truncate( strip_tags( $article->getArticleContent()), 150); // Ersten 100 Zeichen
$media = $child->getFileMedia();
print( '<div class="news-article">');
if ( $media != null) {
printf( '<div class="image">%s</div>', $media->toHTML());
}
printf( '<div class="text">%s</div>', $content);
print( '</div');
}
}
?>
Markus
- Markus.Staab
- Entwickler
- Beiträge: 9634
- Registriert: 29. Jan 2005, 15:50
- Wohnort: Aschaffenburg/Germany
- Kontaktdaten: ICQ Website
Und jetzt auch in der Modulsammlung zu finden:
http://www.redaxo.de/165-Moduldetails.html?module_id=33
Gruß,
Markus
http://www.redaxo.de/165-Moduldetails.html?module_id=33
Gruß,
Markus
- holger
- Beiträge: 403
- Registriert: 21. Jun 2005, 13:21
- Wohnort: Sehnde / Hannover / lower saxony
- Kontaktdaten: Website
Hallo,
ich gehe mit der Lösung noch ein wenig schwanger.
Einen Text einfach so irgendwo kürzen, finde ich persönlich nicht so gut.
Was ist z.B., wenn ich einen Text schreiben will, der nur 120 Zeichen lang ist, aber bei 100 wird schon gekürzt. Das macht dort nicht soviel Sinn.
Deshalb habe ich meine Idee weiterverfolgt und möchte hier einmal meine Lösung vorstellen.
Ich habe 1. ein Modul "Newsliste" programmiert. Diese liest die Artikel aus der Kategorie aus und zeigt gleich die Inhalte an. (Genaugenommen nur den Inhalt des jeweiligen Value1)
Um nun auch einen "weiterführenden" Text anzulegen, habe ich 2. ein Modul "Newsartikel" entworfen. In diesem Modul kann man einen freien Vorschautext und einen freien Haupttext eingeben.
Nun passiert folgendes:
Man fügt in den Startartikel das Modul "Newsliste" ein.
Die weiteren Artikel kann man nun entweder mit den "normalen" Textmodulen erstellen oder man nimmt das Modul "Newsartikel".
Ruft man den Startartikel auf, zeigt dieser die Inhalte der einzelnen Artikel an. Ist ein Artikel mit dem "Newsartikel"-Modul erstellt worden, findet man dort einen "mehr..."-Link, der zu dem Haupttext führt.
Ist ein Artikel normal mit dem Text-WYSIWYG-Modul erstellt worden, sieht man den Text auch ganz normal, nur halt ohne "mehr..."-Link.
Der Vorteil des "Newsartikel"-Moduls ist auch, das der Vorschautext ein oder mehrere andere Bilder enthalten kann als der nach dem Klick erscheinende Haupttext.
Ich füge hier beide Module zum probieren bei. Vielleicht hat jemand ja noch einen Einfall dazu.
Ein kleines Manko habe ich schon entdeckt:
Wenn man einen Artikel mit dem "Newsartikel"-Modul und noch zusätzlich mit anderen Text-Modulen erstellt, dann muß das "Newsartikel"-Modul an erster Stelle sein, sonst funktioniert die Newsliste nicht richtig.
Vielleicht hat jemand dafür ja eine Lösung.
So, hier ist erstmal der Code:
Newsliste:
Newsartikel:
mfg
Holger
ich gehe mit der Lösung noch ein wenig schwanger.
Einen Text einfach so irgendwo kürzen, finde ich persönlich nicht so gut.
Was ist z.B., wenn ich einen Text schreiben will, der nur 120 Zeichen lang ist, aber bei 100 wird schon gekürzt. Das macht dort nicht soviel Sinn.
Deshalb habe ich meine Idee weiterverfolgt und möchte hier einmal meine Lösung vorstellen.
Ich habe 1. ein Modul "Newsliste" programmiert. Diese liest die Artikel aus der Kategorie aus und zeigt gleich die Inhalte an. (Genaugenommen nur den Inhalt des jeweiligen Value1)
Um nun auch einen "weiterführenden" Text anzulegen, habe ich 2. ein Modul "Newsartikel" entworfen. In diesem Modul kann man einen freien Vorschautext und einen freien Haupttext eingeben.
Nun passiert folgendes:
Man fügt in den Startartikel das Modul "Newsliste" ein.
Die weiteren Artikel kann man nun entweder mit den "normalen" Textmodulen erstellen oder man nimmt das Modul "Newsartikel".
Ruft man den Startartikel auf, zeigt dieser die Inhalte der einzelnen Artikel an. Ist ein Artikel mit dem "Newsartikel"-Modul erstellt worden, findet man dort einen "mehr..."-Link, der zu dem Haupttext führt.
Ist ein Artikel normal mit dem Text-WYSIWYG-Modul erstellt worden, sieht man den Text auch ganz normal, nur halt ohne "mehr..."-Link.
Der Vorteil des "Newsartikel"-Moduls ist auch, das der Vorschautext ein oder mehrere andere Bilder enthalten kann als der nach dem Klick erscheinende Haupttext.
Ich füge hier beide Module zum probieren bei. Vielleicht hat jemand ja noch einen Einfall dazu.
Ein kleines Manko habe ich schon entdeckt:
Wenn man einen Artikel mit dem "Newsartikel"-Modul und noch zusätzlich mit anderen Text-Modulen erstellt, dann muß das "Newsartikel"-Modul an erster Stelle sein, sonst funktioniert die Newsliste nicht richtig.
Vielleicht hat jemand dafür ja eine Lösung.
So, hier ist erstmal der Code:
Newsliste:
Code: Alles auswählen
[b]Eingabe:[/b]
Liste der in dieser Kategorie angelegten Artikel
[b]Ausgabe:[/b]
<?php
$cat = OOCategory::getCategoryById($this->getValue("category_id"));
$article = $cat->getArticles( true);
if (is_array($article))
{
foreach ($article as $var)
{
$articleId = $var->getId();
$articleName = $var->getName();
$articleDescription = $var->getDescription();
$slice = OOArticleSlice::getFirstSliceForArticle($var->getId());
$value = $slice->getValue(1);
// $file = $slice->getFile(1);
if ($var->getValue(_startpage) != 1)
{
echo '<div class="article-list"><h1>'.$articleName.'</h1><br />';
echo $value;
echo '<br>';
if ($slice->getValue(4) !="") {
echo '<a href="'.rex_getUrl($articleId).'">mehr....</a>';
}
echo '</div>';
}
}
}
?>
Newsartikel:
Code: Alles auswählen
[b]Eingabe:[/b]
Bitte gib den Vorschautext ein, der auf der Übersichtsseite zu sehen sein soll:<br>
<!-- <textarea name=VALUE[1] cols=80 rows=10 class=inp100>REX_VALUE[1]</textarea> -->
<?php
$a = new rex_wysiwyg_editor();
$a->buttonrow1 = "bold,italic,separator,bullist,numlist,separator,linkHack,unlink,insertEmail,separator,cut,copy,pasteRichtext,cleanup,removeformat,separator,code";
$a->buttonrow2 = "tablecontrols, separator, visualaid,separator,undo,redo,separator,forecolor,charmap,separator,image";
// $a->buttonrow3 = "link";
// $a->buttonrow4 = "rowseparator,formatselect,fontselect,fontsizeselect,forecolor,charmap";
$a->stylesheet = "/red/files/main.css";
$a->content = "REX_VALUE[1]";
$a->id = 1;
$a->show();
?>
<br><br>
Bitte gib den weiteren Text ein, der nach dem Klick zu sehen sein soll: (Hinweis: Der Vorschautext wird dann nicht mit angezeigt !)<br>
<?php
$a = new rex_wysiwyg_editor();
$a->buttonrow1 = "bold,italic,separator,bullist,numlist,separator,linkHack,unlink,insertEmail,separator,cut,copy,pasteRichtext,cleanup,removeformat,separator,code";
$a->buttonrow2 = "tablecontrols, separator, visualaid,separator,undo,redo,separator,forecolor,charmap,separator,image";
// $a->buttonrow3 = "link";
// $a->buttonrow4 = "rowseparator,formatselect,fontselect,fontsizeselect,forecolor,charmap";
$a->stylesheet = "/red/files/main.css";
$a->content = "REX_VALUE[4]";
$a->id = 4;
$a->show();
?><br>
<?php
$jahr = date('Y');
$monat = date('m');
$tag = date('d');
$jahr_von_val = 'REX_VALUE[5]';
$monat_von_val = 'REX_VALUE[6]';
$tag_von_val = 'REX_VALUE[7]';
$jahr_bis_val = 'REX_VALUE[8]';
$monat_bis_val = 'REX_VALUE[9]';
$tag_bis_val = 'REX_VALUE[10]';
if ( empty($jahr_von_val)) $jahr_von_val = $jahr;
if ( empty($monat_von_val)) $monat_von_val = $monat;
if ( empty($tag_von_val)) $tag_von_val = $tag;
if ( empty($jahr_bis_val)) $jahr_bis_val = $jahr +9;
if ( empty($monat_bis_val)) $monat_bis_val = $monat;
if ( empty($tag_bis_val)) $tag_bis_val = $tag;
?>
Online von: JJJJ.MM.TT
<select name="VALUE[5]" >
<?php
foreach (range( $jahr,$jahr+9) as $jahr_von) {
echo '<option value="'.$jahr_von.'" ';
if ( $jahr_von_val ==$jahr_von ) {
echo 'selected="selected" ';
}
echo '>'.$jahr_von.'</option>';
}
?>
</select><select name="VALUE[6]" >
<?php
foreach (range(1,12) as $monat_von) {
echo '<option value="'.$monat_von.'" ';
if ( $monat_von_val==$monat_von ) {
echo 'selected="selected" ';
}
echo '>'.$monat_von.'</option>';
}
?>
</select><select name="VALUE[7]" >
<?php
foreach (range(1,31) as $tag_von) {
echo '<option value="'.$tag_von.'" ';
if ( $tag_von_val==$tag_von ) {
echo 'selected="selected" ';
}
echo '>'.$tag_von.'</option>';
}
?>
</select>
Online bis: JJJJ.MM.TT
<select name="VALUE[8]" >
<?php
foreach (range($jahr,$jahr+9) as $jahr_bis) {
echo '<option value="'.$jahr_bis.'" ';
if ( $jahr_bis_val==$jahr_bis ) {
echo 'selected="selected" ';
}
echo '>'.$jahr_bis.'</option>';
}
?>
</select><select name="VALUE[9]" >
<?php
foreach (range(1,12) as $monat_bis) {
echo '<option value="'.$monat_bis.'" ';
if ( $monat_bis_val==$monat_bis ) {
echo 'selected="selected" ';
}
echo '>'.$monat_bis.'</option>';
}
?>
</select><select name="VALUE[10]" >
<?php
foreach (range(1,31) as $tag_bis) {
echo '<option value="'.$tag_bis.'" ';
if ( $tag_bis_val==$tag_bis ) {
echo 'selected="selected" ';
}
echo '>'.$tag_bis.'</option>';
}
?>
</select><br/><br/>
<?php
if ( $jahr_von_val != ''
&& $monat_von_val != ''
&& $tag_von_val != ''
&& $jahr_bis_val != ''
&& $monat_bis_val != ''
&& $tag_bis_val != '') {
$von = mktime( 0, 0, 0, $monat_von_val, $tag_von_val, $jahr_von_val);
$bis = mktime( 0, 0, 0, $monat_bis_val, $tag_bis_val, $jahr_bis_val);
$jetzt = time();
if( $jetzt >= $von && $jetzt <= $bis) {
$state = '<span style="color: #00aa00;">online</color>';
} else {
$state = '<span style="color: #aa0000;">offline</color>';
}
echo 'Artikel aufgrund der Datumseinstellungen '.$state;
}
?>
<br>
[b]Ausgabe:[/b]
<a href="javascript:window.history.back()" onMouseover="window.status='Zurück';return true;" onMouseout="window.status='CHRONO net';return true;"><img src="pics/back.gif" alt="Back" border="0"></a><br><br>
REX_HTML_VALUE[4]
Holger
// Wenn die Theorie von der Praxis abweicht: --> Ändere die Theorie //
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
- Markus.Staab
- Entwickler
- Beiträge: 9634
- Registriert: 29. Jan 2005, 15:50
- Wohnort: Aschaffenburg/Germany
- Kontaktdaten: ICQ Website
- holger
- Beiträge: 403
- Registriert: 21. Jun 2005, 13:21
- Wohnort: Sehnde / Hannover / lower saxony
- Kontaktdaten: Website
Hi,
ja, das habe ich auch vor.
Ich möchte aber, bevor ich das dort "offiziell" veröffentliche, gern noch von anderen eine Meinung, Verbesserungsvorschläge bzw. eventuelle Fehlerquellen bekommen.
mfg
Holger
ja, das habe ich auch vor.
Ich möchte aber, bevor ich das dort "offiziell" veröffentliche, gern noch von anderen eine Meinung, Verbesserungsvorschläge bzw. eventuelle Fehlerquellen bekommen.
mfg
Holger
// Wenn die Theorie von der Praxis abweicht: --> Ändere die Theorie //
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
- holger
- Beiträge: 403
- Registriert: 21. Jun 2005, 13:21
- Wohnort: Sehnde / Hannover / lower saxony
- Kontaktdaten: Website
Hallo Markus,
zu deinem Script
hätte ich jetzt eine Anwendung.
Hierfür bräuchte ich aber eine kleine Modifikation.
Es soll nämlich nur ein Artikel angezeigt werden. Und zwar der, mit der kleinsten Priorität in dieser Kategorie. (Also der, der im Backend obensteht. Unterkategorien sollen ignoriert werden)
Falls z.B. der Artikel mit der Prio 1 gerade offline ist, soll der mit der Prio 2 angezeigt werden.
Hast du da ne schnelle Lösung ?
mfg
Holger
zu deinem Script
Code: Alles auswählen
<?php
if (!function_exists('truncate'))
{
function truncate($string, $length = 80, $etc = '...', $break_words = false)
{
if ($length == 0)
return '';
if (strlen($string) > $length)
{
$length -= strlen($etc);
if (!$break_words)
$string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length +1));
return substr($string, 0, $length).$etc;
}
else
return $string;
}
}
$cat = OOCategory::getCategoryById(REX_CATEGORY_ID);
$childs = $cat->getArticles( true);
if ( is_array( $childs)) {
foreach ( $childs as $child) {
$id = $child->getId();
if ( $id == REX_ARTICLE_ID) continue;
$article = new article( $id);
$content = truncate( strip_tags( $article->getArticleContent()), 150); // Ersten 100 Zeichen
$media = $child->getFileMedia();
print( '<div class="news-article">');
if ( $media != null) {
printf( '<div class="image">%s</div>', $media->toHTML());
}
printf( '<div class="text">%s</div>', $content);
print( '</div');
}
}
?>
Hierfür bräuchte ich aber eine kleine Modifikation.
Es soll nämlich nur ein Artikel angezeigt werden. Und zwar der, mit der kleinsten Priorität in dieser Kategorie. (Also der, der im Backend obensteht. Unterkategorien sollen ignoriert werden)
Falls z.B. der Artikel mit der Prio 1 gerade offline ist, soll der mit der Prio 2 angezeigt werden.
Hast du da ne schnelle Lösung ?
mfg
Holger
// Wenn die Theorie von der Praxis abweicht: --> Ändere die Theorie //
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net