Deutschland United States United Kingdom
ContentLion - Open Source CMS

Start probleme

Kann sein das bei dir die Datei system/classes/menu.php fehlt? ;-)

doch die gibt es.
doch kann sein das sie nicht includiert ist.

Wo müste das gemacht werden.

Hallo,

Da ich ebenfalls gewisse Startprobleme habe, wollte ich mich hier einmal erkundigen. Bisher habe ich es anhand des Tutorials und der in den Kommentaren aufgezeigten Lösungsideen bis Kapitel 14 mit dem Skincontroller geschafft. Allerdings bekomme ich nun gewisse Fehlermeldungen, die mir zum einen nichts sagen und zum anderen mit eben diesem Skincontroller zusammenhängen. Wenn ich die index.php im hauptverzeichnis(htdocs/cms) aufrufe erhalte ich folgende Fehlermeldungen:

Zitat


Notice: Undefined index: include in C:\xampp\htdocs\cms\index.php on line 14
Die angegebene Seite existiert nicht!(inhalt der 404.php im errors-verzeichnis)
Strict Standards: Non-static method SkinController::getCurrentSkinPath() should not be called statically in C:\xampp\htdocs\cms\index.php on line 15
Strict Standards: Non-static method SkinController::getCurrentSkinName() should not be called statically in C:\xampp\htdocs\cms\system\classes\skincontroller.php on line 21
Strict Standards: Non-static method SkinController::getCurrentSkinId() should not be called statically in C:\xampp\htdocs\cms\system\classes\skincontroller.php on line 11
Test erfolgreich!(inhalt der test.php im skins/default verzeichnis)
Da ich in einer PN bereits den Tipp mit den Unterverzeichnissen erhalten habe hier die Inhalte einiger Dateien, ich hoffe dies hilft:

Index.php im cms verzeichnis

PHP-Quelltext

1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">  <head>  <title>Kommt in einen sp&auml;teren Beitrag</title>  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />  </head>  <body>  <?PHP  include("system/dbconnect.php");  include("system/settings.php");  include("system/classes/skincontroller.php");  include("system/filterfilename.php");  include(filterfilename("content/articles/".$_GET['include']));  include(SkinController::getCurrentSkinPath()."/test.php"); ?>  </body></html>



htaccess im cms verzeichnis

PHP-Quelltext

1
2
Options +FollowSymlinks
RewriteEngine on RewriteCond %{REQUEST_URIcms/(.*).htmlRewriteRule (.*) index.php?include=%1



filterfilename im cms/system verzeichnis

PHP-Quelltext

1
<?PHPfunction filterfilename($filename){    $filename strtolower($filename);    $filename preg_replace("/[^a-z0-9\-\/]/i","",$filename);    if($filename[0] == "/"){        $filename substr($filename,1);    }    $filename .= ".php";    if(!file_exists($filename)){        $filename "content/articles/errors/404.php";    }    return $filename;}?>



skincontroller.php im verzeichnis cm/system/classes

PHP-Quelltext

1
2
3
4
<?PHPclass SkinController{
  function getCurrentSkinId(){    return getSetting("selectedskin");  }
  function getCurrentSkinName(){    global $dbpraefix;    $res mysql_query("SELECT name FROM ".$dbpraefix."skins                         WHERE id = '".SkinController::getCurrentSkinId()."'");    if($row mysql_fetch_row($res)){      return $row[0];    }    else{      return "default";    }  }
  function getCurrentSkinPath(){    return "system/skins/".SkinController::getCurrentSkinName();  }}?>



Ich denke mal das waren alle relevanten Dateien. Falls der Beitrag nicht passt mache ich gerne einen extra Thread auf.

MfG
El Majore

PS: ich weiss auch nicht aber irgendwie will der phpcode nicht in lesbares Format...

Neuer Thread wär zwar schöner, aber jetzt hast es schon hier gepostet, dann kanns auch hier bleiben ;-)

Das mit dem PHP-Code muss ich mir auch nochmal anschauen. Wie du mir ja beigebracht hast, macht WBB auch noch grad ein paar Mucken bzgl der Aktivierung, dass schau ich mir als erstes an ;-)

Hallo,

nun habe ich mal alles ins htdocs verzeichnis gepackt und in der htaccess den ordner rausgenommen. Doch die Fehler habe ich wie zuvor.

weiß nicht, wie weit die setting-Tabelle schon ist, da müsstest dann auch den ordner an passen. DIe Warnungen und Notizen musst halt über php.ini abschalten.
Sind alte Relikte, heute gibt's natürlich keine mehr ;-)

wo in den 2271-Zeilen der PHP.ini finde ich die einstellungen für die oben genannten fehler?

Such mal nach error_reporting. Nimm dort mal E_ERROR | E_WARNING | E_PARSE.

http://php.net/manual/de/function.error-reporting.php.

ok, das sieht doch schon mal besser aus...

mit

PHP-Quelltext

1
error_reporting(E_ERROR E_WARING E_PARSE)


habe schon mal keine Fehlermeldungen mehr :)

mal sehen wann ich das nächste mal festsitze... :thumbsup:

es ist wieder soweit...

Zitat

Fatal error: Class 'Page' not found in C:\xampp\htdocs\index.php on line 8
die dateien:

system/classes/page.php

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?PHP
class Page{
  var $id = -1;
  var $alias '';
  var $title '';
  function loadProperties($alias){
    global $dbpraefix;
    $res mysql_query("SELECT id,title FROM ".$dbpraefix."pages 
                        WHERE alias = '".$alias."'");
    if($row mysql_fetch_row($res)){
      $this->id $row[0];
      $this->title $row[1];
      $this->alias $alias;
    }
  }
  function getContent(){
    include(filterfilename("../content/articles/".$this->alias));
  }
}
?>


index.php(hauptverzeichnis):

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
<?PHP
  error_reporting(E_ERROR E_WARNING E_PARSE);
  include("system/dbconnect.php");
  include("system/settings.php");
  include("system/classes/skincontroller.php");
  include("system/filterfilename.php");
  include("system/sys.php");
  $currentpage = new Page();
  $currentpage->loadProperties($_GET['include']);
  include(SkinController::getCurrentSkinPath()."/test.php");
?>


system/sys.php

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?PHP
class sys{
  function includeContent(){
    global $currentpage;
    $currentpage->getContent();
  }
  function includeHeader(){
    global $dbpraefix,$currentpage;
    echo "<title>".$currentpage->title."</title>
          <meta http-equiv="Content-Type" content="text/html; 
          charset=iso-8859-1" />";
    $res mysql_query("SELECT name, content
                        FROM ".$dbpraefix."meta_global
                        UNION SELECT name, content
                        FROM ".$dbpraefix."meta_local
                        WHERE page = '".$currentpage->id."'");
    while($row mysql_fetch_row($res)){
      echo "<meta name="".$row[0]."" content="".$row[1]."" />";
    }
  }
}
?>


PS: Man muss den PHP-Code im Quellcode einfügen und nicht im editor der entfernt anscheinend unnötige whitespaces
MfG
El Majore

Hi,

entweder fehlt dir der include der system/classes/pages.php, oder aber der autoloader.

Beides in der index.php

Gruß Stefan

der include hat gefehlt, wohl übersehen... was ist eigentlich mit autoloader gemeint?
wo ist eigentlich der like button?
naja was muss ich eigentlich genau aufrufen bei dem breadcrump-kapitel?
testseite3.htm ist erstellt aber wie muss ich die aufrufen?
mit index.php?include=testseite3.htm??? Da kommt test erfolgreich egal was ich eingebe
nur wenn ich die datei direkt anwähle also über:
content/articles/testseite3.htm erhalte ich die ausgabe des inhalts aber ohne navigation
Wie wird eigentlich die verbindung zum content/articles inhalt aufgebaut?
Vielleicht habe ich dort ja einen Fehler.

MfG El Majore
PS: Ich hoffe ich störe nicht zu sehr. Ich bin noch ein sehr blutiger Anfänger in php.

- Der Autoloader lädt die Klassen automatisch, wenn sie nicht da sind. In der aktuellen Version sieht der so aus: http://code.contentlion.de/filedetails.p…%2Fautoload.php
- Hier: http://www.facebook.com/contentlion
- Verstehe deine Frage nicht ;-)
- index.php?include=testseite3 sollte es eigentlich sein
- ich glaub das war in der page klasse, den gibt's derzeit nichtmehr, musst mir mal deinen Stand zuschicken, dann kann ich genaueres sagen.
- Störst nicht ;-)

- hab den aktuellen stand verschickt(siehe pn)
- like nummer 36 ausgeführt
- thread erfolgreich wiederbelebt

Bin heut etwas busy, schau ich mir morgen an.

sicher kein problem, manche leute haben wenigstens noch ein rl :)

Verbindung zu content/articles wird in der system/classes/page gemacht ;-)

ok, dort hab ich die funktion:

PHP-Quelltext

1
2
3
function getContent() { 
  include(filterfilename("../content/articles/".$this->alias));   
}

in welches verzeichnis muss dieser autoloader?
Was genau erzeugt die Fehlermeldung:

Zitat

Fatal error: Class 'Page' not found in C:\xampp\htdocs\index.php on line 8