Neuigkeiten:

moziloCMS verwendet Cookies. Wenn Sie auf unserer Seite weitersurfen, stimmen Sie der Cookie-Nutzung zu Datenschutzerklärung
moziloCMS Layouts
moziloCMS Plugins

Hauptmenü

Seite Nicht vorhanden = Startseite. Änderbar?

Begonnen von -FuFu-, 25. April 2013, 16:00:11

« vorheriges - nächstes »

stefanbe

#15
probier das mal

if(empty($CAT_REQUEST_URL))
    return null;
if(empty($PAGE_REQUEST_URL) and $CAT_REQUEST_URL == substr(CAT_REQUEST,3))
    return null;
if($PAGE_REQUEST_URL == substr(PAGE_REQUEST,3) and $CAT_REQUEST_URL == substr(CAT_REQUEST,3))
    return null;

ab hier die fehler sache


die $CAT_REQUEST und $PAGE_REQUEST brauchst du nicht mein fehler
die gibts als constanten  CAT_REQUEST und PAGE_REQUEST

mit
header("HTTP/1.0 404 Not Found");
header("Status: 404 Not Found");
sendest du denn error status

du must also nur noch denn inhalt von $syntax->content ändern

lg

-FuFu-

ergibt leider das selbe ergebniss.
jeder aufruf mit cat und page leitet zur fehlerseite weiter, selbst wenn die seiten vorhanden sind.

komplett sieht der code derzeit so aus:
<?php

class Error404 extends Plugin {

    function 
getContent($value) {
        
        global 
$CAT_REQUEST_URL;
        global 
$PAGE_REQUEST_URL;
        global 
$CAT_REQUEST;
        global 
$PAGE_REQUEST;

        
if($this->settings->get("Aktivieren") == "true") {

if(empty($CAT_REQUEST_URL))
return null;
if(empty($PAGE_REQUEST_URL) and $CAT_REQUEST_URL == substr(CAT_REQUEST,3))
return null;
if($PAGE_REQUEST_URL == substr(PAGE_REQUEST,3) and $CAT_REQUEST_URL == substr(CAT_REQUEST,3))
return null;
if ($this->settings->get("ownSide")) {
$ownSide "../../";
$ownSide .= $this->settings->get("ownSide");
}
  
$Error404Code NULL;
header("HTTP/1.0 404 Not Found");
header("Status: 404 Not Found");

$Error404Code .= '<meta http-equiv="refresh" content="0; URL=';
#$Error404Code .= '<a href="';
$Error404Code .= "$ownSide";
#$Error404Code .= '" target="_blank">Test</a>';
$Error404Code .= '">';

return $Error404Code


            }
    }

    
/***************************************************************
    * 
    * Gibt die Konfigurationsoptionen als Array zurück.
    * 
    ***************************************************************/
    
function getConfig() {
        
$config = array();
        
        
$config['ownSide'] = array(
            
"type" => "text",                           // Pflicht:  Eingabetyp
            
"description" => "Eigene Fehlerseite."
        
);
        
        
$config['Aktivieren'] = array(
            
"type" => "checkbox",                       // Pflicht:  Eingabetyp 
            
"description" => "Eigene Fehlerseite Aktivieren?"            // Pflicht:  Beschreibung
        
);
            return 
$config;
    } 
// function getConfig
    
function getInfo() {
$info = array(
            
// Plugin-Name
            
"<b>Own Error Page</b> Version 0.1",
            
// CMS-Version
            
"1.12",
            
// Kurzbeschreibung
            
'Eigene Fehlerseite einstellen.<br />
<br />
            <span style="font-weight:bold;">Wichtig:</span><br />
            Die eigene Fehlerseite sollte im Root des Servers liegen.<br />
 <span style="font-weight:bold;">Nutzung:</span><br />
{Error404} am besten in das Template direkt vor /head einbinden!<br />'
,
            
// Name des Autors
            
"-FuFu-",
            
// Download-URL
            
"http://www.droid-world.tk",
            array(
                
'{Error404}' => 'Am besten ins das Template einbinden')
            );
            return 
$info;
    }


// class

?>

testen kannst du es gern hier: http://droid-world.bplaced.net/
egal was man aufruft, er leitet auf die fehlerseite weiter.

stefanbe

das geht bei mir aber erstmal ohne mod_rewrite

    function getContent($value) {
        global $CAT_REQUEST_URL;
        global $PAGE_REQUEST_URL;

        if(empty($CAT_REQUEST_URL))
            return null;
        if(empty($PAGE_REQUEST_URL) and $CAT_REQUEST_URL == substr(CAT_REQUEST,3))
            return null;
        if($PAGE_REQUEST_URL == substr(PAGE_REQUEST,3) and $CAT_REQUEST_URL == substr(CAT_REQUEST,3))
            return null;
        global $syntax;
        # status code setzen/senden
        header("HTTP/1.0 404 Not Found");
        header("Status: 404 Not Found");
        # die komplette seite zerlegen
        list($content_first,$content,$content_last) = $syntax->splitContent();
        # $value ist der inhalte einer Inhaltseite da im Plugin als [include] übergeben wurde
        $syntax->content = $content_first.$value.$content_last;
        # das ist wichtig damit der Plugin Platzhalter mit lehrsting ersetzt wird
        return null;
    }


im template setzte einfach ein {Error404|[include| nee error Inhaltseite ]} rein

lg

stefanbe

bei deiner version wo hast du da den Pluginplatzhalter eingetragen?

-FuFu-

ich hab den Platzhalter vor </head> eingetragen.

bei deiner version auch, und er zeigt wieder bei jeder seite, die error seite an

stefanbe

trag das mal unter den globals ein damit man mal sieht was die so enthalten
echo $CAT_REQUEST_URL."<br />\n";
echo $PAGE_REQUEST_URL."<br />\n";
echo substr(CAT_REQUEST,3)."<br />\n";
echo substr(PAGE_REQUEST,3)."<br />\n";


lg

stefanbe

ok änder die constanten mal wieder in variablen also mit nem $ dafor und wieder mit global einbinden

-FuFu-

okay, jetzt sieht das ganze so aus:
function getContent($value) {
        global $CAT_REQUEST_URL;
        global $PAGE_REQUEST_URL;
global $CAT_REQUEST;
        global $PAGE_REQUEST;

echo $CAT_REQUEST_URL."<br />\n";
echo $PAGE_REQUEST_URL."<br />\n";
echo $CAT_REQUEST."<br />\n";
echo $PAGE_REQUEST."<br />\n";

        if(empty($CAT_REQUEST_URL))
            return null;
        if(empty($PAGE_REQUEST_URL) and $CAT_REQUEST_URL == $CAT_REQUEST)
            return null;
        if($PAGE_REQUEST_URL == $PAGE_REQUEST and $CAT_REQUEST_URL == $CAT_REQUEST)
            return null;
        global $syntax;
        # status code setzen/senden
        header("HTTP/1.0 404 Not Found");
        header("Status: 404 Not Found");
        # die komplette seite zerlegen
        list($content_first,$content,$content_last) = $syntax->splitContent();
        # $value ist der inhalte einer Inhaltseite da im Plugin als [include] übergeben wurde
        $syntax->content = $content_first.$value.$content_last;
        # das ist wichtig damit der Plugin Platzhalter mit lehrsting ersetzt wird
        return null;

aber weiterhin wird immer die Errorseite angezeigt

stefanbe

das mit dem substr($CAT_REQUEST,3) und substr($PAGE_REQUEST,3) soltest du schonn lasse weil die position stört nur :)

-FuFu-

so?
function getContent($value) {
        global $CAT_REQUEST_URL;
        global $PAGE_REQUEST_URL;
global $CAT_REQUEST;
        global $PAGE_REQUEST;

echo $CAT_REQUEST_URL."<br />\n";
echo $PAGE_REQUEST_URL."<br />\n";
echo substr(CAT_REQUEST,3)."<br />\n";
echo substr(PAGE_REQUEST,3)."<br />\n";

        if(empty($CAT_REQUEST_URL))
            return null;
        if(empty($PAGE_REQUEST_URL) and $CAT_REQUEST_URL == substr(CAT_REQUEST,3))
            return null;
        if($PAGE_REQUEST_URL == substr(PAGE_REQUEST,3) and $CAT_REQUEST_URL == substr(CAT_REQUEST,3))
            return null;
        global $syntax;
        # status code setzen/senden
        header("HTTP/1.0 404 Not Found");
        header("Status: 404 Not Found");
        # die komplette seite zerlegen
        list($content_first,$content,$content_last) = $syntax->splitContent();
        # $value ist der inhalte einer Inhaltseite da im Plugin als [include] übergeben wurde
        $syntax->content = $content_first.$value.$content_last;
        # das ist wichtig damit der Plugin Platzhalter mit lehrsting ersetzt wird
        return null;

ergibt aber das selbe verhalten

stefanbe

und das $ solteste noch vor CAT_REQUEST und PAGE_REQUEST setzen :)

-FuFu-

jap, habs gerade gesehen ;)
so scheint es dann zu gehen und er zeigt nur den fehler, wenn auch wirklich ein fehler vorliegt ;)

danke vielmals, dann kann ich ja jetzt weiter basteln, das man es per plugin einstellungen einstellen kann

-FuFu-

und das ganze läuft mit und ohne mod_rewrite ;)
gerade auf einem anderem Server getestet.

dann werd ich mal versuchen ein komplettes plugin fertig zu machen, was dann auch jeder nutzen kann :) wenn er es braucht :D

stefanbe

#28
stat
list($content_first,$content,$content_last) = $syntax->splitContent();
# $value ist der inhalte einer Inhaltseite da im Plugin als [include] übergeben wurde
$syntax->content = $content_first.$value.$content_last;

kanst du auch den inhalt einer datei verwenden

global $BASE_DIR, $PLUGIN_DIR_NAME;
# eine date aus dem Plugin Ordner verwenden
$inhalt = file_get_contents($BASE_DIR.$PLUGIN_DIR_NAME."/Error404/ die datei ");
$syntax->content = $inhalt;

-FuFu-

ich bin fast fertig :)
ich danke dir vielmals für deine Geduld und Hilfe.

wenn ich das Plugin soweit fertig hab, werd ich es hier im Forum im Plugin Bereich nochmal vorstellen.

derzeit gibt es die Option eine eigene Fehlerseite (htm(l)) oder eine Inhaltsseite zu nutzen, beide frei definierbar :)
aber mehr dazu dann später im Plugin Bereich, vielleicht kann es ja noch erweitert/verbessert werden.

aber nochmals vielen vielen dank :)