Kontakt aufnehmen

Mediathek im FileListWidget (CMS)

Im FileListWidget im CMS werden derzeit schon Bilder erkannt und angezeigt. Jedoch findet hier keine Abfrage der Mediathek statt. Heute werden wir hier den Titel aus der Mediathek hinzufügen, sowie beim Löschen des Bildes im FileListWidget auch den Mediathek-Eintrag löschen.

Hinter der Mediathek steckt die Klasse ImageServer. Diese bekommt heute die zwei Funktionen getImageData und delete verpasst. Es sind beides Zweizeiler (zumindest im Subversion) und der Sinn dahinter sollte klar sein:

/system/classes/imageserver.phpPHP
public static function getImageData($path){
  $path = $GLOBALS['db']->EscapeString($path);
  return $GLOBALS['db']->ReadRow("SELECT * FROM {'dbprefix'}images 
                                  WHERE path = '".$path."'");
}

public static function delete($path){
  $path = $GLOBALS['db']->EscapeString($path);
  return $GLOBALS['db']->Execute("DELETE FROM {'dbprefix'}images 
                                  WHERE path = '".$path."'");
}

Im FileListWidget selbst gibt es auch zwei neue Funktionen: getImageCode und delete. Diese wurden aus der Hauptfunktion load extrahiert und greifen auf unsere neuen Funktionen des ImageServers zurück:

/system/plugins/filelistwidget.phpPHP
protected function getImageCode($uploadpath,$dir,$file){
  $res = "";
  $path_info = pathinfo($uploadpath.$dir."/".$file);
  if(strtolower($path_info['extension'] == 'jpg') or
     strtolower($path_info['extension'] == 'jpeg') or
     strtolower($path_info['extension'] == 'gif') or
     strtolower($path_info['extension'] == 'png') or
     strtolower($path_info['extension'] == 'bmp')){
    if($dir == "" || $dir == "/"){
      $imagePath = Settings::getInstance()->get("host")."content/uploads/".$file;
    }
    else{
      $imagePath = Settings::getInstance()->get("host")."content/uploads".$dir."/".$file;
    }
    $imageData = ImageServer::getImageData($imagePath);
    $res = "<img src="".$imagePath."" style="max-width:100px;max-height:100px;"";
    if($imageData){
      $res .= " title="".htmlentities($imageData->name).""";
    }
    else{
      $res .= " />";
    }
  }
  return $res;
}

protected function delete($uploadpath){
  if(isset($_GET['deletefile']) && file_exists($uploadpath.$_GET['dir']."/".
     $_GET['deletefile'])){
    if($_GET['dir'] == "" || $_GET['dir'] == "/"){
      $imagePath = Settings::getInstance()->get("host")."content/uploads/".
                   $_GET['deletefile'];
    }
    else{
      $imagePath = Settings::getInstance()->get("host")."content/uploads".
                   $_GET['dir']."/".$_GET['deletefile'];
    }
    ImageServer::delete($imagePath);
    unlink($uploadpath.$_GET['dir']."/".$_GET['deletefile']);
    $this->template->assign_var("MESSAGE",$GLOBALS['language']->getString("FILE")." ".
      htmlentities($_GET['deletefile'])." ".$GLOBALS['language']->getString("WAS_DELETED"));
  }
}

Alle Änderungen im Detail stehen in r92 und r93.

Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Cookie-Einstellungen

Helfen Sie dabei, uns noch besser zu machen. Wir nutzen Cookies und ähnliche Technologien, um die Website auf Ihre Bedürfnisse anzupassen. Zur Datenschutzerklärung

Auswahl speichern