Titel im Detaillink

Fragen zur Implementierung und/oder Anpassung von ConPresso 3.x werden in diesem Forum diskutiert.
Dani1978
ConPresso-Checker
Beiträge: 217
Registriert: 15.12.2005 09:27
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Beitrag von Dani1978 »

Habe den obengennannten Code in die i_detail.php eingebaut.

Daraufhin erschien eine leere News-Seite mit "Es wurde kein Artikel gefunden!".
Tor3
ConPresso-User
Beiträge: 82
Registriert: 11.12.2006 13:02
Danksagung erhalten: 5 Mal

Beitrag von Tor3 »

Wie hast Du ihn eingebaut???

Ich beziehe mich mal auf die von Dir genannte Ausgangssitaution, die so lautete:
MarkusR hat geschrieben:Hier der Code

suche

Code: Alles auswählen

if (!defined('CPO')) exit;
danach einfügen

Code: Alles auswählen

if (!isset($_REQUEST['nr']) && isset($_REQUEST['title'])) {
	$query = "SELECT article_nr "
			."FROM ".CPO_NEWS." "
			."WHERE titel='".$_REQUEST['title']."' "
			."AND rubric_id=".$cpoRubricId." AND artikel_archiv=0";
	DEBUG(2, $query, __FILE__, __LINE__);   
	$db = new DB;
	$db->query($query);
	$db->next_record();
	$_REQUEST['nr'] = $db->v('article_nr');
	$_GET['nr'] = $db->v('article_nr');
}
Das müsste jetzt bei Dir so lauten:

suche

Code: Alles auswählen

if (!defined('CPO')) exit;
danach einfügen

Code: Alles auswählen

if (!isset($_REQUEST['nr']) && isset($_REQUEST['title'])) {
	$query = "SELECT nr FROM cpo_news WHERE titel='".$_REQUEST['titel']."' AND artikel_archiv=0 AND kategorie='news'"; 
	DEBUG(2, $query, __FILE__, __LINE__);   
	$db = new DB;
	$db->query($query);
	$db->next_record();
	$_REQUEST['nr'] = $db->v('nr');
	$_GET['nr'] = $db->v('nr');
}
Dani1978
ConPresso-Checker
Beiträge: 217
Registriert: 15.12.2005 09:27
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Beitrag von Dani1978 »

Und genau dies habe ich gemacht. Siehe Anhang:
Dateianhänge
download_www2ftp_26874.zip
(1.83 KiB) 634-mal heruntergeladen
Tor3
ConPresso-User
Beiträge: 82
Registriert: 11.12.2006 13:02
Danksagung erhalten: 5 Mal

Beitrag von Tor3 »

Ändere mal title in titel...

ändere
$_REQUEST['nr'] = $db->v('nr');
$_GET['nr'] = $db->v('nr');
in
$nr = $db->v('nr');

und entferne mal diese komische Zeile nach // Statistics [END] ...
Dani1978
ConPresso-Checker
Beiträge: 217
Registriert: 15.12.2005 09:27
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Beitrag von Dani1978 »

Klappt. Danke!

Was ist der Grund für die % und die 20 Zeichen zwischen den Wörtern.
Tor3
ConPresso-User
Beiträge: 82
Registriert: 11.12.2006 13:02
Danksagung erhalten: 5 Mal

Beitrag von Tor3 »

So sehen Leerschritte in URLs aus.

Und bitte lies Dir diesen Thread durch und prüfe mal, wie lange es jeweils gedauert hat, nachdem Du eine Datei angehängt hast, bis das Problem gelöst war... dann überlege ob es nicht sinnvoll ist ohne Nachfragen Deine Dateien anzuhängen...
Dani1978
ConPresso-Checker
Beiträge: 217
Registriert: 15.12.2005 09:27
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Beitrag von Dani1978 »

Danke nochmal für die Hinweise.

Nur noch mal eine Frage. Bisslang hatte ich auf den Detailseiten im title-tag die Überschrift (http://community.conpresso.de/viewtopic ... rift+title) eingebunden.

Warum verschwindet dieser bei Detail-Seiten, die den Titel in der Endung haben?
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Dani1978 hat geschrieben:Warum verschwindet dieser bei Detail-Seiten, die den Titel in der Endung haben?
Ist das wirklich die Frage, die Du jetzt stellst?

Dann muß ich folgendermaßen antworten:
der verwendete Code

Code: Alles auswählen

if ($_GET['nr']) { 
$query_title = "SELECT titel FROM ".$dbPrefix."_news WHERE nr=".$_GET['nr']; 
DEBUG(2, $query_title, __FILE__, __LINE__); 
$db_title = new DB; 
$db_title->query($query_title); 
$db_title->next_record(); 
$Artikel_header = $db_title->v('titel'); 
}
prüft ja, ob in der URL der Parameter nr drin ist. Isser nicht drin, wird der Code nicht ausgeführt (und könnte auch nicht ausgeführt werden)

Hätte man stattdessen gefragt, was man tun kann, damit auch jetzt noch der Titel angezeigt wird, dann hätte man da eben noch eine entsprechende Codezeile hinzufügen müssen, die folgendes macht:
Wenn die URL den Parameter titel enthält, dann soll $Artikel_header gleich dessen Wert sein.
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
Dani1978
ConPresso-Checker
Beiträge: 217
Registriert: 15.12.2005 09:27
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Beitrag von Dani1978 »

Ok, damit kenne ich jetzt den Grund. Der Titel der News im title ist an die Nummer oder ID gekoppelt.

Und ich muss nun einen request machen, der nr = titel setzt?
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Und ich muss nun einen request machen, der nr = titel setzt?
Nein. Ist Dir schon mal aufgefallen, daß nr eine Zahl und titel ein Text ist? Wie sollte man sowas gleichsetzen können? Kannst Du das? 23 = Schuhcreme oder was?

Du mußt folgendes machen:
Eine PHP-Zeile, die folgendes macht
Wenn die URL den Parameter titel enthält, dann soll $Artikel_header gleich dessen Wert sein.
In PHP sieht das so aus:

Code: Alles auswählen

if ($_GET['titel']) $Artikel_header = $_GET['titel'];
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
Dani1978
ConPresso-Checker
Beiträge: 217
Registriert: 15.12.2005 09:27
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Beitrag von Dani1978 »

Vielen Dank für den Hinweis.

So muss der Code schlussendlich aussehen:

if ($_GET['nr']) {
$query_title = "SELECT titel FROM ".$dbPrefix."_news WHERE nr=".$_GET['nr'];
DEBUG(2, $query_title, __FILE__, __LINE__);
$db_title = new DB;
$db_title->query($query_title);
$db_title->next_record();
$Artikel_header = $db_title->v('titel');
}
if ($_GET['titel']) $Artikel_header = $_GET['titel'];
Dani1978
ConPresso-Checker
Beiträge: 217
Registriert: 15.12.2005 09:27
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Beitrag von Dani1978 »

Habe mittels htaccess nun folgende Endung : cpo/kategorie/titel.html

Bisslang habe ich aber bei google damit noch keine Trefferquote.
Dani1978
ConPresso-Checker
Beiträge: 217
Registriert: 15.12.2005 09:27
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Beitrag von Dani1978 »

Mmh kann jemand mit folgendem Codeschnipsel etwas anfangen.

$url = str_replace ( array ( ' '), array ( '-'), $url );

Könnte ich so den Linktitel der News mittels Bindestrichen generieren?
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Habe mittels htaccess nun folgende Endung : cpo/kategorie/titel.html

Bisslang habe ich aber bei google damit noch keine Trefferquote.
Du hast das seit gestern drin und erwartest heute schon Quoten dafür?
Herzlichen Glückwunsch zu Deinem Optimismus :D

Am Rande:
Du wirst es nicht ändern können oder wollen, aber mit dem zusätzlichen /content/conpresso in jeder URL machst Du Deine Seiten unnötig schlecht.
Und:
Leider sind die Seiten durch Deine htacess nicht aufrufbar, zumindest die mit Umlauten. Merke: Umlaute vor dem ? in der URL sind tabu, dahinter könenn soviele vorkommen wie Du willst. Sprich: in cpo/kategorie/titel.html dürfen keine Umlaute vorkommen.
Mmh kann jemand mit folgendem Codeschnipsel etwas anfangen.

$url = str_replace ( array ( ' '), array ( '-'), $url );

Könnte ich so den Linktitel der News mittels Bindestrichen generieren?
Sicher kannst Du das.
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
Dani1978
ConPresso-Checker
Beiträge: 217
Registriert: 15.12.2005 09:27
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Beitrag von Dani1978 »

Mmh, das mit den Umlauten wusste ich nicht. Wo steht das?

Ich habe google schon mal getestet. Nur 2 Stunden nach der Veröffentlichung war das Ergebnis online zu suchen!
Antworten