Wie stellt DedeCMS fest, ob der Kurztitel leer ist und zeigt dann den vollständigen Titel an?
Vorwort
Ich glaube, jeder kennt es. Wenn wir das DedeCMS-Systemprogramm zum Entwickeln von Websites verwenden, werden wir aufgrund des Webseitenlayouts auf viele Einschränkungen stoßen Die Breite des Artikeltitels erfordert eine Wortbeschränkung. Die übliche Methode besteht darin, dem Tag ein Titelattribut hinzuzufügen, damit der vollständige Titel angezeigt wird, wenn die Maus darauf platziert wird.
Aber der Titel ist unvollständig, da einige Zeichen abgeschnitten wurden. Hier gibt es mehrere andere Möglichkeiten, den Titel zu nennen. Bei der Beurteilung des Titels zeigt DedeCMS beispielsweise den vollständigen Titel an, wenn es den abgekürzten Titel beurteilt ist leer.
Empfohlenes Lernen: Dreamweaver cms
Die spezifische Methode ist wie folgt:
Methode 1:
{dede:field name='array' runphp='yes'} if (@me['shorttitle']=='') @me=@me['title'];else @me=@me['shorttitle'];{/dede:field}
Methode 2:
[field:array runphp='yes'] if (@me['shorttitle']=='') @me=@me['title'];else @me=@me['shorttitle'];[/field:array]
Diese Methode kann im Tag {dede:arclist} angewendet werden.
Methode 3:
Manchmal ist der Titel zu lang und die Anzeige des gesamten Titels führt zu Verwirrung im Layout und beeinträchtigt das Erscheinungsbild. Der Anzeigeteil beeinflusst jedoch das Benutzererlebnis. Wir hoffen, dass, wenn der Titel innerhalb eines bestimmten Längenbereichs liegt, der vollständige Titel angezeigt wird. Wenn der Titel veraltet ist, wird nur eine bestimmte Länge angezeigt, gefolgt von Auslassungspunkten, und wenn die Maus dann nach oben bewegt wird. Der gesamte Inhalt des Titels wird angezeigt. Dadurch wird das Layout nicht beeinträchtigt.
Hier ist eine Methode, die keine Änderung des Programms, sondern nur eine Änderung der Vorlage erfordert. In der Titelliste unten beträgt der längste Titel beispielsweise 50 Byte und es werden nur 30 Byte angezeigt. Der Vorlagencode lautet wie folgt:
<ul> {dede:arclist titlelen='50' row='10'} <li><a title="[field:title /]" href="[field:filename /]">[field:title function='( strlen("@me")>30 ? cn_substr("@me",30)."..." : "@me" )'/]</a></li> {/dede:arclist} </ul>
Offensichtlich ist der Schlüssel zur Lösung des Problems Das Problem besteht darin, dass [field :title function='( strlen("@me")>34 ? cn_substr("@me",30)."..." : "@me" ) ' /] das Original ersetzt [field:title / ], es gibt einen zusätzlichen Beurteilungsprozess bei der Ausgabe des Titels. Beurteilen Sie zunächst, ob der Titel größer als 34 Bytes ist. Wenn er größer ist, wird nur die Länge von 30 Bytes ausgegeben hinzugefügt. Title="[field:title /]" bleibt davon unberührt und der gesamte Inhalt des Titels wird angezeigt, wenn die Maus nach oben bewegt wird.
Methode 4:
Zusätzlich zu den oben genannten Methoden zur Änderung von Vorlagen gibt es auch Programmier- oder CSS-Methoden. Für Probleme, die durch Vorlagen gelöst werden können, ist jedoch keine Programmierung erforderlich. Die CSS-Methode lautet wie folgt:
<a style="width:120px; text-overflow:ellipsis; white-space:nowrap; overflow:hidden;" title="DedeCMS2007即将发布" href=" " >DedeCMS2007即将发布</a>
Erläuterung: width:120px; begrenzte Länge, text-overflow:ellipsis: Wenn der Text im Objekt überläuft, wird das Auslassungszeichen angezeigt. ., white-space: nowrap: erzwingt die Anzeige des Textes in einer Zeile, overflow:hidden: Überlaufinhalt wird ausgeblendet. Weitere Tipps zur Verwendung finden Sie in diesem Artikel: https://www.jb51.net/article/50258.htm
Die CSS-Methode ist einfacher als das Ändern der Vorlage. Leider hat das Attribut text-overflow:ellipsis in Firefox keine Auswirkung. Lassen Sie uns also die oben beschriebene Methode zum Ändern der Vorlage verwenden.
Ich habe kürzlich auch ein anderes Problem entdeckt, dede Titellink, wenn es verlinkt werden kann, wenn nicht, wird es nicht verbunden. Hier ist die Lösung:
{dede:list pagesize='15' orderby='weight' orderway='desc'} <dl> <dt>[field:pubdate function='strftime("%Y/%m/%d",@me)'/]</dt> <dd> [field:array runphp='yes'] if (@me['body']=='') @me=@me['title'];else{ @me = '<a href="'.@me['arcurl'].'" title="'.@me['description'].'" target="_blank">'.@me['title'].'</a>';}[/field:array] </dd> </dl> {/dede:list}
Das obige ist der detaillierte Inhalt vonWie erkennt DedeCMS, ob der Kurztitel leer ist und zeigt den vollständigen Titel an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!