Verschiedene Styles für Headline und Artikelliste
Verschiedene Styles für Headline und Artikelliste
Die Artikelliste übernimmt den Text der Headline, leider auch deren Formatierung.
Gibt es eine Möglichkeit dies zu ändern?
Beispiel:
Die Headline soll Fett dargestellt werden. In der Artikelliste soll der Text "Normal" dargestellt bleiben.
Gibt es eine Möglichkeit dies zu ändern?
Beispiel:
Die Headline soll Fett dargestellt werden. In der Artikelliste soll der Text "Normal" dargestellt bleiben.
-
- Beiträge: 5478
- Registriert: Di 2. Mär 2004, 21:11
- Wohnort: Halchter, wo sonst? ;-)
- Kontaktdaten:
"Wie stelle ich gute Fragen"
http://www.contenido.org/forum/viewtopic.php?p=4821
Z.B. WELCHE Artikelliste (es gibt so ungefaehr 420.000 Listen) ...
http://www.contenido.org/forum/viewtopic.php?p=4821
Z.B. WELCHE Artikelliste (es gibt so ungefaehr 420.000 Listen) ...
-
- Beiträge: 5478
- Registriert: Di 2. Mär 2004, 21:11
- Wohnort: Halchter, wo sonst? ;-)
- Kontaktdaten:
ja, das ist auch eine wichtige Info, dass es die Artikelliste aus der Version sowieso von Contenido ist. Es gibt im Forum naemlich noch jede Menge andere Artikellisten.
DIE Contenido-Version habe ich (noch) nicht, deswegen kenne ich das Modul auch nicht. Wie sieht's denn mit deinen PHP-Kenntnissen aus? Wenn du das Modul postest (die Ausgabe koennte reichen), kann dir vielleicht jemand sagen, an welcher Stelle was geaendert werden muss, um eine andere Formatierung zu erhalten. Ob ICH das auf Anhieb sehe, weiss ich nicht, aber es sind noch ein paar Leute mehr im Forum.
DIE Contenido-Version habe ich (noch) nicht, deswegen kenne ich das Modul auch nicht. Wie sieht's denn mit deinen PHP-Kenntnissen aus? Wenn du das Modul postest (die Ausgabe koennte reichen), kann dir vielleicht jemand sagen, an welcher Stelle was geaendert werden muss, um eine andere Formatierung zu erhalten. Ob ICH das auf Anhieb sehe, weiss ich nicht, aber es sind noch ein paar Leute mehr im Forum.
Die Contenido-Version ist vieleicht neu aber dei Liste ist aus dem Jahre 2002. PHP-Kenntnisse von "gar keine" bis "solala"
Hier ist der Code (Ausgabe) des Artikelliste-Moduls:
Hoffe ich hab Dich richtig verstanden und das richtige gepostet
(und ich hoffe mir wird geholfen)
Hier ist der Code (Ausgabe) des Artikelliste-Moduls:
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* REFERENZ MODUL / ARTIKELLISTE
*
* Artikelliste mit Img 1, Head 1, Head 2
*
* Erstellt eine Liste mit allen Artikel bis
* auf den Startartikel.
*
* Author : Jan Lengowski
* Copyright : four for business AG
* Created : 15-08-2002
* Modified : 16-08-2002
************************************************/
// second db class instance
$db2 = new DB_Contenido;
// selected category
$selcat = "CMS_VALUE[0]";
if($selcat!="0" && $selcat!=""){
// select all articles in category widthout start article
$query = "SELECT ARTLANG.idart, ARTLANG.idartlang FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".
$cfg["tab"]["art_lang"]." AS ARTLANG ".
"WHERE CATART.idcat = '$selcat' AND ARTLANG.idart = CATART.idart AND ARTLANG.idlang = '$lang' AND ".
"ARTLANG.online = '1' ORDER BY CATART.idart DESC";
// execute query
$db->query($query);
unset($articleID);
unset($linkID);
// get id's of sub articles
while ($db->next_record()) {
$articleID[] = $db->f("idartlang");
$linkID[] = $db->f("idart");
} // end while
// loop through subarticles
echo '
<table width="250" border="0" cellspacing="0" cellpadding="0">
<tr><td bgcolor="0B4A6E" width="250" height="10" colspan="2" ></td></tr>
<tr height="23"><td height="23" width="22" style="border: 0px; border-top:1px; border-bottom:1px; border-color: #0B4A6E; border-style: solid; background-color: #0B4A6E"><img src="images/wuerfel.gif" width="22" height="21" border="0"></td>
<td style="border: 1px; border-left:0px; border-color: #0B4A6E; border-style: solid; background-color: #0B4A6E; padding-left:10px"
class="punkte">CMS_VALUE[2]</td></tr>
';
if (is_array($articleID)) {
foreach ($articleID as $key => $value) {
// select all CMS variables of the article
$sql = "SELECT * FROM ".$cfg["tab"]["content"]." WHERE idartlang = '$value' AND idtype = '1' AND typeid = '1'";
$db->query($sql);
$db->next_record();
$head = $db->f("value");
if ( strlen($head) > "CMS_VALUE[3]") {
$head = substr($head, 0, "CMS_VALUE[3]");
$head .= '..';
}
// link
$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selcat&idart=$linkID[$key]&m=$m&s=$s");
echo '<tr><td colspan="2" class="text" height="22" style="border: 1px; border-top:0px; border-color: #0B4A6E; border-style: solid; background-color: #FAFAFA; padding-left:10px"><a href="'.$link.'">'.urldecode($db->f("value")).'</a></td></tr>';
} // end while
unset($headline);
unset($text);
} // end foreach
} // end if (is_array)
echo '</table><br>';
?>
(und ich hoffe mir wird geholfen)
-
- Beiträge: 5478
- Registriert: Di 2. Mär 2004, 21:11
- Wohnort: Halchter, wo sonst? ;-)
- Kontaktdaten:
aehm, du hast mich zwar richtig verstanden, aber was mich stutzig macht ist das Datum der letzten Aenderung. Timo sagte naemlich, dass er bei der Artikelliste etwas geaendert hat, allerdings weiss ich jetzt nicht mehr, ob schon bei der fuer 4.4.5, oder erst bei der fuer 4.5.x.
Die bei 4.4.4 mitgelieferte Artikelliste war naemlich fehlerhaft, es gibt von HerrB eine korrigierte Version (irgendwo in Module 4.4), und falls timos Aenderungen sich nur auf 4.5 bezogen, waere die bei 4.4.5 mitgelieferte Artikelliste auch noch fehlerhaft.
Die Stelle fuer die Aenderung muesste bei deinem geposteten Code die hier sein:
zumindest scheinen dort die Artikelueberschriften ausgegeben zu werden, aber da steht schon bei td class="text" und nicht headline, deswegen wundere ich mich, warum die Headline-Formatierung uebernommen wird. Oder steht bei dir in der format.css bei .text irgendwas mit font-weight: bold?
Die bei 4.4.4 mitgelieferte Artikelliste war naemlich fehlerhaft, es gibt von HerrB eine korrigierte Version (irgendwo in Module 4.4), und falls timos Aenderungen sich nur auf 4.5 bezogen, waere die bei 4.4.5 mitgelieferte Artikelliste auch noch fehlerhaft.
Die Stelle fuer die Aenderung muesste bei deinem geposteten Code die hier sein:
Code: Alles auswählen
echo '<tr><td colspan="2" class="text" height="22" style="border: 1px; border-top:0px; border-color: #0B4A6E; border-style: solid; background-color: #FAFAFA; padding-left:10px"><a href="'.$link.'">'.urldecode($db->f("value")).'</a></td></tr>';
-
- Beiträge: 5478
- Registriert: Di 2. Mär 2004, 21:11
- Wohnort: Halchter, wo sonst? ;-)
- Kontaktdaten:
ach ja, es sind Links!
hmm, was mir noch einfaellt ... du koenntest dir in der format.css die Linkformatierungen fuer Artikelliste extra angeben, also so etwas:
Den von mir zitierten Code dann hierin aendern:
hmm, was mir noch einfaellt ... du koenntest dir in der format.css die Linkformatierungen fuer Artikelliste extra angeben, also so etwas:
Code: Alles auswählen
A.artiliste:link {font-family: helvetica, arial, geneva, sans-serif; font-size:11; text-decoration: none; color: #000000}
A.artiliste:visited {font-family: helvetica, arial, geneva, sans-serif; font-size:11; text-decoration: none; color: #000000}
A.artiliste:hover {font-family: helvetica, arial, geneva, sans-serif; font-size:11; text-decoration: none; color: #330066}
A.artiliste:active {font-family: helvetica, arial, geneva, sans-serif; font-size:11; text-decoration: none; color: #330066}
Code: Alles auswählen
echo '<tr><td colspan="2" class="text" height="22" style="border: 1px; border-top:0px; border-color: #0B4A6E; border-style: solid; background-color: #FAFAFA; padding-left:10px"><a href="'.$link.'" class="artiliste">'.urldecode($db->f("value")).'</a></td></tr>';
Das Problem kenne ich von Snoopy Artikelliste, vielleicht kann ich weiterhelfen.
Die Headline wird so in die Artikelliste geparst wie sie vom SPAW oder einem anderen Editor im Artikel erstellt wurde. Also im Zweifelsfall sieht eine Überschrift ungefähr so aus:
So oder ähnlich wird das nun in die Artikelliste übernommen.
In $head stehen dann so viele Zeichen wie im Input des Moduls definiert wurden, sagen wir 46 Zeichen sollen angezeigt werden:
So nun sieht man schon wo das Problem liegt, die Formatierungsanweisungen des Spaws stehen so das sie letztlich die CSS-Formatierungen der Ausgabe überschreiben.
Als Lösungsansatz habe ich einfach nur die jeweiligen Strings gefiltert um evtl. vorhandene Formatierungs Tags herauszulöschen.
Versuch mal folgendes:
Ersetze diesen Teil im Output
Durch diesen:
Ich habs jetzt nicht getestet da ich das Modul so nicht zu Hand habe, es sollte aber funktionieren. Die Filter müssen je nach Bedarf erweitert werden mit dem obigen Beispiel sollte zumindest nichts fettes mehr auftauchen. Praktisch ist es meisst auch Absätze und Zeilenumbrüche auszufiltern.
Wie gesagt nicht die eleganteste Lösung, aber bei mir funktioniert es wunderbar und es ist beliebig erweiter- und anpassbar.
Ich hoffe das hilft.
Rob
Die Headline wird so in die Artikelliste geparst wie sie vom SPAW oder einem anderen Editor im Artikel erstellt wurde. Also im Zweifelsfall sieht eine Überschrift ungefähr so aus:
Code: Alles auswählen
<p><h1><strong>Überschrift</strong></h1></p>
Code: Alles auswählen
$head = substr($head, 0, "CMS_VALUE[3]");
$head .= '..';
Code: Alles auswählen
<tr><td colspan="2" class="text" height="22" style="border: 1px; border-top:0px; border-color: #0B4A6E; border-style: solid; background-color: #FAFAFA; padding-left:10px"><a href="'.$link.'"><p><h1><strong>Überschrift</strong></h1></p></a></td></tr>';
Als Lösungsansatz habe ich einfach nur die jeweiligen Strings gefiltert um evtl. vorhandene Formatierungs Tags herauszulöschen.
Versuch mal folgendes:
Ersetze diesen Teil im Output
Code: Alles auswählen
if ( strlen($head) > "CMS_VALUE[3]") {
$head = substr($head, 0, "CMS_VALUE[3]");
$head .= '..';
}
Code: Alles auswählen
if ( strlen($head) > "CMS_VALUE[3]") {
$head = substr($head, 0, "CMS_VALUE[3]");
$head = str_replace ('<STRONG>' , '', $head);
$head = str_replace ('</STRONG>' , '', $head);
$head = str_replace ('<strong>' , '', $head);
$head = str_replace ('</strong>' , '', $head);
$head = str_replace ('<B>' , '', $head);
$head = str_replace ('</B>' , '', $head);
$head = str_replace ('<b>' , '', $head);
$head = str_replace ('</b>' , '', $head);
$head .= '..';
}
Wie gesagt nicht die eleganteste Lösung, aber bei mir funktioniert es wunderbar und es ist beliebig erweiter- und anpassbar.
Ich hoffe das hilft.
Rob
Eleganter würde es wohl mit der Strip Tags Funktion gehen.
Bin ich aber auch erst drauf gestossen worden, muss ich mir mal anschauen, dann spart man die Unmenge von Einzelfiltern.
Bin ich aber auch erst drauf gestossen worden, muss ich mir mal anschauen, dann spart man die Unmenge von Einzelfiltern.
Beschreibung:
string strip_tags ( string str [, string allowable_tags])
Diese Funktion versucht, alle HTML- und PHP-Tags aus str zu entfernen. Bei unvollständigen oder sinnlosen Tags werden Fehler ausgegeben. Es wird die gleiche Art der Tag-Engine wie bei der fgetss()-Funktion benutzt.
morgen.
ich benutze auch die normale artikelliste aus contenido bei 4.4.5.
und komme trotz dem ich alles so gemacht habe wie hier beschrieben nicht weiter...
die links sind immer noch so wie die headline aussieht, ich habe pro link einen tierischen abstand ...
hier mal der output
die hintergrundfarbe im link habe ich nur gemacht um zu sehen, ob link oder was anderes die höhe hervorrufen. der link ist es nicht. im <td> ist der gesamte bereich der auflistung dann aber grün...
mit der funktion string strip_tags bin ich nicht klar gekommen, so fit bin ich leider noch nicht in php, wußte nicht wie ich es von der syntax her anwenden muß.
grüße
nicole
ich benutze auch die normale artikelliste aus contenido bei 4.4.5.
und komme trotz dem ich alles so gemacht habe wie hier beschrieben nicht weiter...
die links sind immer noch so wie die headline aussieht, ich habe pro link einen tierischen abstand ...
hier mal der output
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* REFERENZ MODUL / ARTIKELLISTE
*
* Artikelliste mit Img 1, Head 1, Head 2
*
* Erstellt eine Liste mit allen Artikel bis
* auf den Startartikel.
*
* Author : Jan Lengowski
* Copyright : four for business AG
* Created : 15-08-2002
* Modified : 16-08-2002
************************************************/
// second db class instance
$db2 = new DB_Contenido;
// selected category
$selcat = "CMS_VALUE[0]";
if($selcat!="0" && $selcat!=""){
// select all articles in category widthout start article
$query = "SELECT ARTLANG.idart, ARTLANG.idartlang FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".
$cfg["tab"]["art_lang"]." AS ARTLANG ".
"WHERE CATART.idcat = '$selcat' AND ARTLANG.idart = CATART.idart AND ARTLANG.idlang = '$lang' AND ".
"ARTLANG.online = '1' ORDER BY CATART.idart DESC";
// execute query
$db->query($query);
unset($articleID);
unset($linkID);
// get id's of sub articles
while ($db->next_record()) {
$articleID[] = $db->f("idartlang");
$linkID[] = $db->f("idart");
} // end while
// loop through subarticles
echo '
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr><td style="padding-left:10px">CMS_VALUE[2]</td></tr>
';
if (is_array($articleID)) {
foreach ($articleID as $key => $value) {
// select all CMS variables of the article
$sql = "SELECT * FROM ".$cfg["tab"]["content"]." WHERE idartlang = '$value' AND idtype = '1' AND typeid = '1'";
$db->query($sql);
$db->next_record();
$head = $db->f("value");
if ( strlen($head) > "CMS_VALUE[3]") {
$head = substr($head, 0, "CMS_VALUE[3]");
$head = str_replace ('<STRONG>' , '', $head);
$head = str_replace ('</STRONG>' , '', $head);
$head = str_replace ('<strong>' , '', $head);
$head = str_replace ('</strong>' , '', $head);
$head = str_replace ('<B>' , '', $head);
$head = str_replace ('</B>' , '', $head);
$head = str_replace ('<b>' , '', $head);
$head = str_replace ('</b>' , '', $head);
$head = str_replace ('<H2>' , '', $head);
$head = str_replace ('</H2>' , '', $head);
$head = str_replace ('<h2>' , '', $head);
$head = str_replace ('</h2>' , '', $head);
$head = str_replace ('<H1>' , '', $head);
$head = str_replace ('</H1>' , '', $head);
$head = str_replace ('<h1>' , '', $head);
$head = str_replace ('</h1>' , '', $head);
$head .= '..';
}
// link
$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selcat&idart=$linkID[$key]&m=$m&s=$s");
echo '<tr><td height="22" style="padding:0; margin: 0;padding-left:10px;height: 22px;"><a href="'.$link.'" style="color: black; background-color:green;">'.urldecode($db->f("value")).'</a></td></tr>';
} // end while
unset($headline);
unset($text);
} // end foreach
} // end if (is_array)
echo '</table><br>';
?>
mit der funktion string strip_tags bin ich nicht klar gekommen, so fit bin ich leider noch nicht in php, wußte nicht wie ich es von der syntax her anwenden muß.
grüße
nicole
Na ja, so schwer ist es eigentlich nicht (http://de3.php.net/manual/de/function.strip-tags.php).
Man füge vor
die Zeile
ein und kommentiere die restlichen str_replace-Zeilen aus. Sollte man sie noch brauchen, kann man sie dann wieder einzeln aktivieren.
Zeilenkommentar: //
Bereichskommentar (auch über mehrere Zeilen): /* */
Gruß
HerrB
Man füge vor
Code: Alles auswählen
$head = str_replace ('<STRONG>' , '', $head);
Code: Alles auswählen
$head = strip_tags ($head);
Zeilenkommentar: //
Bereichskommentar (auch über mehrere Zeilen): /* */
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
dank dir!
mittlerweile habe ich deine liste -> Modul: Artikelliste für V4.4.x (V2.0.2) gefunden und probier mich da gerade aus. leider das gleiche problem, da ich überall headlines verwendet habe, die jetzt auch in der liste angezeigt werden sollen.
aber ein schritt nach dem anderen.
erstmal die alte liste modifizieren, ausprobieren, auf deine adaptieren und weitersehen.
muß jetzt erstmal los.
probier das nachher aus.
lg
nicole
mittlerweile habe ich deine liste -> Modul: Artikelliste für V4.4.x (V2.0.2) gefunden und probier mich da gerade aus. leider das gleiche problem, da ich überall headlines verwendet habe, die jetzt auch in der liste angezeigt werden sollen.
aber ein schritt nach dem anderen.
erstmal die alte liste modifizieren, ausprobieren, auf deine adaptieren und weitersehen.
muß jetzt erstmal los.
probier das nachher aus.
lg
nicole