0251 / 590 837 15
info@a-coding-project.de
;

Renner Bugfixes (CMS)

Code & Blog Logo

Code & Blog Logo

Der Renner hat noch ein paar Bugs in unserem CMS gefunden, welche heute behoben werden. Fangen wir an mit sagen wir einer IE-Verbesserung. Denn im IE und vielleicht noch anderen Browsern, wird bei den verlinkten Bildern dieser blaue Rahmen angezeigt – den Kennt ihr bestimmt alle. Den können wir einfach durch eine Änderung im Stylesheet entfernen. Fangen wir im admin Bereich an(/admin/index.php):

.dbtable tbody tr:hover{
  background-color:#ddd;
}
img{
  border:0;
}

Und im Stylesheet des nicht-Admin Bereich darf das natürlich auch nicht fehlen (/system/skins/default/sytle.css):

body{
  background-color: #fff;
  background-image: url('images/bg.jpg');
  background-repeat:repeat-x;
}
#globalmenu{
  list-style-type : none;
}
#globalmenu li{
  display:inline;
}
#container{
  width:90%;
  text-align:left;
}
#content{
  background-color:#fff;
  padding:1%;
}
#localmenu{
  float:left;
}
img{
  border:0;
}

Weiter geht’s mit einem PHP-Fehler. Da steht im TinyMCE „Warning: fread() [function.fread]: Length parameter must be greater than 0 in xxxx/cms/system/classes/page.php on line 52“ wenn man das Menü ändert. Ich hab zusätzlich noch ein paar kleine Verbesserungen eingebaut, so dass folgendes dabei rauskam.

Fangen wir an mit der Datei in der Fehlermeldung: /system/classes/page.php in der Funktion readContent. Diese bekommt nun eine Sicherheitsabfrage:

function readContent($dirpraefix){
    $filename = $dirpraefix."content/articles/".$this->alias.".php";
    $handle = @fopen ($filename, "rb");
    if($handle && filesize($filename) > 0){
      $contents = fread ($handle, filesize ($filename));
      fclose ($handle);
    }
    else{
      $contents = "";
    }
    return $contents;
  }

Dann haben wir schon mal den Bug selbst behoben. Ich hab noch etwas in der /admin/includes/site-edit.php gefunden, was noch nicht so gut ist. Hier werden bei der Änderung des Menüs andere Änderungen verworfen. Das neue Laden der Eigenschaften hab ich so gelöst:

<?PHP
  $page = new Page();
  $page->loadProperties(mysql_real_escape_string($_GET['site']));
  if($_POST['save']){
    $page->deleteContent("../");
    $page->save();
    $page->writeContent("../",$_POST['content']);
    $content = $_POST['content'];
  }
  else if(isset($_POST['menu'])){
    $page->title = $_POST['title'];
    $page->alias = $_POST['alias'];
    $page->menu = $_POST['menu'];
    $content = $_POST['content'];
  }
  else{
    $content = $page->readContent("../");
  }
?>

Nun müssen wir nur noch beim Anzeigen des Contents auch die $content Variable benutzen:

</script>
    <textarea name="content"><?PHP echo $content; ?></textarea>
  </div>

Kommentare

Renner schrieb am 11.10.2009:

Da fühl ich mich aber geehrt das extra ein artikel wegen mir verfasst wude *gg dank dir werd es gleich testen

Renner schrieb am 11.10.2009:

Wenn wir grad in dem Beitrag sind: Liste gesammelter BUGS von MJRENNER: - Verzeichniss: admin/index.php (loginfeld) Fehler: Wenn man sich falsch einloggt kommen die Loginfelder ein 2tes mal. Screen zum Fehler: http://mjrenner.de/bilderupload/cgi-bin/upload/files/mjrenner/bug_loginfeld.png - Verzeichniss: admin/includes/site-edit.php Fehler: Wenn ich bei einer Seite das "Zweite Menü" einstellen möchte funktioniert es nicht. Scrren: Wird denke ich nicht benötigt. - Verzeichniss: admin/index.php?page=sites Fehler: Beim Seite erstellen werden keine Titel eingetragen. Desweiteren werden dann in der Tabelle cms_pages "owner" = -1 eingetragen und menu = -1 &lt; Ist das korrekt?