Automatische Links erzeugen
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Zum einen sollten die Begriffe automatisch aus der Rubrik Glossar ermittelt werden und zum anderen ist es natürlich hübscher einen Link in der Form
<a href="/_style/detail.php?title=Hanf&rubric=Glossar">Hanf</a>
auszubilden
Ansonsten ist es genau der benötigte Codeschnipsel, der nun eben aus einer Abfrage sein Futter bekommen sollte... kannst Dich aber natürlich auch als Schreibkraft bezahlen lassen... ... SCNR
<a href="/_style/detail.php?title=Hanf&rubric=Glossar">Hanf</a>
auszubilden
Ansonsten ist es genau der benötigte Codeschnipsel, der nun eben aus einer Abfrage sein Futter bekommen sollte... kannst Dich aber natürlich auch als Schreibkraft bezahlen lassen... ... SCNR
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Lass mich nicht dumm sterben ! Meine PHP-Kenntnisse reichen leider nur für kleine Änderungen und nicht für Abfragen dieser Art:
Leider versteht PHP mich nicht
Code: Alles auswählen
if (ein Begriff im Titel eines Artikels der Rubrik "Glossar" auftaucht) {
$template_datei = preg_replace(
array(
'@Begriff@',
),
array(
'<a href=\"/_style/detail.php?title=Begriff&rubric=Glossar">Begriff</a>',
),
$template_datei
);
}
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Code: Alles auswählen
<?php
$db_glossar = new db;
$replace = array();
$with = array();
$db_glossar->query("SELECT titel FROM ".CPO_NEWS." WHERE rubric_id='ID_DER_GLOSSAR_RUBRIK'");
while ($db_glossar->next_record()) {
$glossarbegriff = trim($db_glossar->v('titel'));
$replace[] = '@'.$glossarbegriff.'@';
$with[] = '<a href=\"/_style/detail.php?title='.$glossarbegriff.'&rubric=Glossar">'.$glossarbegriff.'</a>';
}
$template_datei = preg_replace($replace, $with, $template_datei);
?>
Wobei sich, nach erfolgreichem Test, die Geschwindigkeit durch Teilung des Codes erhöhen lässt, weil im Grund ja einmal pro Seite das Auslesen der Glossarbegriffe reicht und nicht zwingend für jeden Artikel neu erfolgen muß...
edit: einmal $db in $db_glossar geändert...
Zuletzt geändert von MarkusR am 01.09.2006 15:34, insgesamt 1-mal geändert.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Hi Markus,
sitze jetzt an der Umsetzung der Glossarfunktion und komme nicht so recht weiter...
In der parser.php habe ich also folgenden Code eingefügt:
Beim Aufrufen der Seite wird der Glossarbegriff "Bambus" im Browser jetzt so angezeigt (das ist die um ca. 90% gekürzte Fassung!):
Zumindest kann man so nicht übersehen, dass dieser Begriff etwas Besonderes ist
Der Link sieht übrigens so aus:
Den folgenden Forumsbeitrag habe ich übrigens nicht gefunden, dementsprechend auch noch nicht berücksichtigt:
sitze jetzt an der Umsetzung der Glossarfunktion und komme nicht so recht weiter...
Jepp, habe ich gemacht: Die Rubrik (id=25) heißt "Material-Info" und hat Artikel mit Namen wie "Bambus", "Kokos" etc.MarkusR hat geschrieben:Du versiehst die Artikel in der Glossar-Rubrik einfach mit dem Begriff als Titel.
In der parser.php habe ich also folgenden Code eingefügt:
Code: Alles auswählen
$db_glossar = new db;
$replace = array();
$with = array();
$db_glossar->query("SELECT titel FROM ".CPO_NEWS." WHERE rubric_id='25'");
while ($db_glossar->next_record()) {
$glossarbegriff = trim($db_glossar->v('titel'));
$replace[] = '@'.$glossarbegriff.'@';
$with[] = '<a href="/_style/detail.php?title='.$glossarbegriff.'&rubric=Material-Info">'.$glossarbegriff.'</a>';
}
$template_datei = preg_replace($replace, $with, $template_datei);
Code: Alles auswählen
Material-Info">Bambus&rubric=Material-Info">
Material-Info">Bambus&rubric=Material-Info">
Material-Info">Bambus&rubric=Material-Info">
Material-Info">Bambus&rubric=Material-Info">
Material-Info">Bambus&rubric=Material-Info">
Der Link sieht übrigens so aus:
Code: Alles auswählen
http://www.teppichkontor.lokal.de/_tk/%5C%22/_style/detail.php?title=%3Ca
Kannst Du mir einen Tipp geben, wo ich suchen muss und wie ich das oben genannte Problem lösen könnte?MarkusR hat geschrieben:Dann muß Du nur noch das von mir beschriebene Aufrufen von Artikeln über ihren Titel statt über die Nummer benutzen und schon ist das Glossar fertig.
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
ok ok... da der Titel selbst wieder eingesetzt wird, wird auch das erneut ersetzt, etc...
Probiere mal
Code: Alles auswählen
$db_glossar = new db;
$replace = array();
$with = array();
$db_glossar->query("SELECT titel FROM ".CPO_NEWS." WHERE rubric_id='25'");
while ($db_glossar->next_record()) {
$glossarbegriff = trim($db_glossar->v('titel'));
$replace[] = '/(\s)'.$glossarbegriff.'([.,;!\s])/i';
$with[] = '$1<a href="/_style/detail.php?title='.$glossarbegriff.'&rubric=Glossar">'.$glossarbegriff.'</a>$2';
}
$template_datei = preg_replace($replace, $with, $template_datei);
http://community.conpresso.de/viewtopic.php?t=3045
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Hi Markus,
hab´mir ein kleines Wochenend-Päuschen gegönnt javascript:emoticon(':D')
Very Happy
Dein Codeschnipsel funktioniert jetzt schon viel besser Nur: ein Begriff der sich z.B. innerhalb eines Tags befindet, also z.B. <p>Bambus</p> wird ignoriert. Für Begriffe innerhalb von a-Tags ist das allerdings unbedingt notwendig, damit der Begriff nicht doppelt verlinkt wird
Doof wäre also:
<a href="xyz.php"><a href="glossar.php">Bambus</a></a>
hab´mir ein kleines Wochenend-Päuschen gegönnt javascript:emoticon(':D')
Very Happy
Dein Codeschnipsel funktioniert jetzt schon viel besser Nur: ein Begriff der sich z.B. innerhalb eines Tags befindet, also z.B. <p>Bambus</p> wird ignoriert. Für Begriffe innerhalb von a-Tags ist das allerdings unbedingt notwendig, damit der Begriff nicht doppelt verlinkt wird
Doof wäre also:
<a href="xyz.php"><a href="glossar.php">Bambus</a></a>
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Ja, das mit den Begriffen innerhalb von Tags ist noch ein Problem, für das ich noch keine Lösung gefunden habe.
Vielleicht hat ja einer eine Idee, wie man alles zulässt außer einem schließenden </a>... ich habe da hin und her probiert und keine Lösung gefunden. Einzelne Zeichen kann man ja ausschließen, aber eine Zeichenkette?
Vielleicht hat ja einer eine Idee, wie man alles zulässt außer einem schließenden </a>... ich habe da hin und her probiert und keine Lösung gefunden. Einzelne Zeichen kann man ja ausschließen, aber eine Zeichenkette?
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Das wäre doch ein interessantes Projekt, um sich in reguläre Ausdrücke einzuarbeiten...
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Dann hier mal ein Hinweis:
Der replace-Ausdruck sucht etwas, was mit > oder einem Leerzeichen beginnt (>|\s) und mit einem Satzzeichen oder Leerschritt oder einem der gelisteten schließenden Tags beendet wird ([.,;!\s]|<\/i>|\<\/td>|<\/li>|<\/strong>|<\/h1>).
Das kann von Dir jetzt ergänzt werden, mußt nur das / durch ein \ maskieren.
Code: Alles auswählen
$replace[] = '/(>|\s)'.$glossarbegriff.'([.,;!\s]|<\/i>|\<\/td>|<\/li>|<\/strong>|<\/h1>)/i';
$with[] = '$1<a href="/_style/detail.php?title='.$glossarbegriff.'&rubric=Glossar">'.$glossarbegriff.'</a>$2';
Das kann von Dir jetzt ergänzt werden, mußt nur das / durch ein \ maskieren.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Parsen bedeutet ja, daß bei der Anzeige die Seite erst erstellt wird.
Es wird also am eigentlichen Artikel nichts, aber auch gar nichts verändert. Nur bei der Ausgabe werden die Begriffe "ergänzt". Fällt also ein Begriff weg, dann gibt es eben keinen Link aufs Glossar mehr.
Es wird also am eigentlichen Artikel nichts, aber auch gar nichts verändert. Nur bei der Ausgabe werden die Begriffe "ergänzt". Fällt also ein Begriff weg, dann gibt es eben keinen Link aufs Glossar mehr.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle