Aufruf des Hilfe/Manual-Framesets fehlerhaft

Dieses Forum enthält Diskussionen zu Bugs in ConPresso 4 und deren Lösungen.
Antworten
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Aufruf des Hilfe/Manual-Framesets fehlerhaft

Beitrag von Mr. Magpie »

Meines Erachtens muss in der Datei _manual/index.php im Zeilen-Bereich 32 bis 47 überall der Slash vor _manual entfernt werden, da sonst die Frameset-Adresse bspw.

Code: Alles auswählen

http://www.domain.tld//_manual/deutsch/index.html
lautet. Dies macht keine Probleme, solange man nicht 40x-Fehler abfängt und bspw. auf die Startseite seines Conpresso-Projektes umleitet. Tut man dies aber, erhält man beim Aufruf der Hilfe links den Navigationsframe der Hilfe und im rechten Frame den Inhalt des Conpresso-Projekts.
Der korrekte Code in der _manual/_index.php sollte also sein:

Code: Alles auswählen

$linkTo = BASE_ABS.'_manual/deutsch/index.html';

if (isset($_GET['ref'])) {
    $fileref = $_GET['ref'];
    if (strstr($_GET['ref'], '#'))
        $fileref = substr($_GET['ref'], 0, strpos($_GET['ref'], '#'));

    $helpfile = CPO_BASEDIR.'_manual/'.$cpoSystem['language'].'/'.$fileref;
    if (file_exists($helpfile) && is_readable($helpfile)) {
        $linkTo = BASE_ABS.'_manual/'.$cpoSystem['language'].'/'.$_GET['ref'];
    } else {
        $helpfile = CPO_BASEDIR.'_manual/deutsch/'.$fileref;
        if (file_exists($helpfile) && is_readable($helpfile)) {
            $linkTo = BASE_ABS.'_manual/deutsch/'.$_GET['ref'];
        } else {
            $linkTo = BASE_ABS.'_manual/missing.php';
        }
    }
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Der Bug besteht auch noch in der aktuellen Version 4.0.7. Er tritt insbesondere dann negativ in Erscheinung - die Context-Hilfe funktioniert nicht mehr richtig :( - wenn man eine wie hier gezeigte Rewrite-Regel verwendet.

Zur Abhilfe sollte die Zeile 41 (bei CPO 4.0.7) von _manual/index.php geändert werden von

Code: Alles auswählen

$linkTo = BASE_ABS.'/_manual/'.(empty($_SESSION['SID_user']['language']) ? $cpoSystem['language'] : $_SESSION['SID_user']['language']).'/'.$_GET['ref'];
zu

Code: Alles auswählen

$linkTo = BASE_ABS.'_manual/'.(empty($_SESSION['SID_user']['language']) ? $cpoSystem['language'] : $_SESSION['SID_user']['language']).'/'.$_GET['ref'];
sprich: der überflüssige Slash vor _manual sollte gelöscht werden.
Antworten