Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

PHP ( Halbgott ) Frage - noch ne Zusatzfrage

Eingetragen von Thoor (3678)
am 20.03.2009 - 17:17 Uhr in
  • Allgemeines zu Drupal
  • Drupal 6.x

Hmmm ... wenns im eigentlichen Thread nicht klappt ... versuche ich es mal so rum ...

In einer mit RULES erstellten Regel bewerkstellige ich das Löschen von hochgeladenen Bildern mit der Anweisung ( Quelle: stBorchert )

if (isset($node->field_anrissbild[0]['filepath'])) {
file_delete($node->field_anrissbild[0]['filepath']);
}

Dabei wird mir das hochgeladene Bild aus allen in Frage kommenden Verzeichnissen gelöscht. In meinem Fall im Verzeichnis sites/default/files/anrissbilder UND ausserdem im durch IMAGECACHE angelegten Verzeichnis sites/default/files/imagecache/anrissbild_teaser/anrissbilder.

Ich bin leider PHP - Nichtskönner und habe keinen blassen Schimmer, wie der obige PHP-Befehl aussehen müsste, damit explizit die Datei im Verzeichnis sites/default/files/anrissbilder gelöscht wird. Die Bilddatei im Verzeichnis sites/default/files/imagecache/anrissbild_teaser/anrissbilder MUSS vorhanden bleiben.

Bitte Ihr PHP Halbgötter :-) Verratet mir doch wie der obige PHP Schnippsel aussehen müsste ....

‹ Anzeige auf einer View-Seite falsch GELÖST ---- PHP in Beiträgen - wo kann man das einstellen? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

php

Eingetragen von stBorchert (6003)
am 20.03.2009 - 23:27 Uhr

Moin!
Ich fühl mich mal halbwegs angesprochen :-)

<?php
if (isset($node->field_anrissbild[0]['filepath'])
    && (
strpos($node->field_anrissbild[0]['filepath'],
             
'sites/default/files/anrissbilder') > 0)) {
 
file_delete($node->field_anrissbild[0]['filepath']);
}
?>

So?

hth,

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi ( mein ) Halbgott :-)

Eingetragen von Thoor (3678)
am 21.03.2009 - 14:26 Uhr

Grüß Dich Stefan,

erstmal vielen Dank für Deine Hilfe! Ich habe gestern nach stundenlangem Probieren noch auf einen eigenen Pfad für das Imagefield verzichtet, dann hat doch noch alles geklappt - DANKE!!!!!

------------------------------------------

NACHTRAG

@Stefan
Sorry, wenn ich langsam nervig werde, aber ich habe doch noch ein weiteres Detailproblem.

Wenn ich die IMAGECACHE Integration benutze, dann habe ich ja nicht allzuviele Einstellungsmöglichkeiten. Ich habe da z.B.:

Aktion: Imagecache - Execute Preset
- Feld: field_beitragbild
- Select the name of the preset to execute: beitragbild_teaser
- Reihenfolge: 0

Das klappt ja auch sehr gut, wenn man ein einzelnes Bild hat. Nur ich habe bei meinem Imagefield drei mögliche Bildwerte erlaubt. Und wenn ich jetzt di REGEL "IMAGECACHE PRESET" ausführen lasse, dann macht mir das Preset leider nur für den ersten der drei Werte meine Presets. siehe: http://www.steeldart.org/dart/drei-tiere-mit-bildern-und-anrissbild

Ich könnte jetzt natürlich bei mehreren Beitragsbildern mehrere verschiedene Imagefelder und die dazugehörigen Imagecache Presets und die Regeln ...

Aber wenn ich beispielsweise mal 12 Bilder erlaube, dann ufert das ganz schön aus ... Hast Du da noch ne elegantere Lösung für mich, mit "einem Imagefield und mehreren erlaubten Werten" für die zu erstellenden Presets?

-----------------------------------------

Wegen dem neuen Code ... ich werde ihn gut aufbewahren und demnächst mal antesten ... Derzeit muss ich erstmal meine ganzen Regeln ohne eigenes Verzeichnis "stricken" ... Unter anderem brauchts ja auch noch ne Regel für Änderungen. Da bin ich gerade am suchen, warum das alles reibungslos klappt, nur nicht bei der erstellen Imagecache-Datei ...

Aber diese RULES Integration von IMAGECACHE von Dir ist Spitzenklasse! Hut ab. Bei einem durchschnittlichen 2MB Foto eines Users spart man mit diesen Regeln 90% des ansonsten benötigten Webspaces ... das macht sich bei einigen hundert Usern, die Bilder uploaden echt bemerkbar!

Schätze mal, dass ich da demnächst mal ein kleines Tutorial dazu schreiben muss ...

-------------------------------------------------------------------------------
Drupal ist das "Coolste", was mir in 10 Jahren Webworking untergekommen ist!
Meine persönliche Drupal Spielwiese

  • Anmelden oder Registrieren um Kommentare zu schreiben

mehrfache Bilder

Eingetragen von stBorchert (6003)
am 21.03.2009 - 15:14 Uhr

Moin!
Das Skript (also die Rules-Integration) ist für eine Datei ausgelegt. Es müsste also umgeschrieben werden, so dass es auch mit mehrfachen Werten im image-Feld klarkommt...

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Schade, hatte ich fast

Eingetragen von Thoor (3678)
am 21.03.2009 - 19:29 Uhr

Schade,

hatte ich fast befürchtet. Die "Löschungen" liesen sich ja relativ einfach mit "field_anrissbild[0]['filepath']","field_anrissbild[1]['filepath']","field_anrissbild[2]['filepath']" ... usw. ansprechen. Es klappt also leider nicht, wenn es mehrere Bilddateien in einem Node gibt :-(

... falls Du die Integration mal abänderst, dann würde ich mich sehr freuen, davon zu erfahren! Ich würde das gerne einsetzen. An sich ist es nämlich echt genial!

Nochmal DANKE!!!

--------------------------------

Hat vielleicht noch jemand ne andere Lösung parat, wie man das Verzeichnis sites/default/files
in regelmäßigen Abständen ( vielleicht per Cron ) von .png, jpg und .gif Dateien "säubern" könnte?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Thoor schrieb Hat

Eingetragen von einfachfragen (150)
am 22.03.2009 - 00:25 Uhr
Thoor schrieb

Hat vielleicht noch jemand ne andere Lösung parat, wie man das Verzeichnis sites/default/files
in regelmäßigen Abständen ( vielleicht per Cron ) von .png, jpg und .gif Dateien "säubern" könnte?

Ist das noch aktuell?

Also ich hoffe ich setze mich jetzt nicht in die Nesseln und versteh deine Frage, aber als PHP Laie würde ich es so machen:

<?php
    $folder
= opendir('files');
    while(
$file = readdir($folder)){
     
$endung = substr($file, -4);
        if (
$endung == ".png" or $endung == ".jpg" or $endung == ".gif") {
           
unlink('files/'.$file);
        }
    }
   
closedir($folder);
?>

Natürlich nur das Verzeichnis noch anpassen und wenn man das dann per cron aufruft, müsste das laufen oder?

Gruß

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi ... prima, daß sich noch

Eingetragen von Thoor (3678)
am 22.03.2009 - 10:14 Uhr

Hi ... prima, daß sich noch jemand einklinkt.

Also erreicht werden sollte, daß die upgeloadeten Originalbilder aus einem Imagefield auf dem Server gelöscht werden, nachdem entsprechende Imagecache Presets vorhanden sind. Ich habe jetzt zwei Tage mit der RULES Integration für Imagecache "probiert" ... Allerdings klappt es leider ( noch nicht ), wenn man mehr als eine Bilddatei im Imagefield hat.

Wie schon erwähnt ... Sehr schade! Mit einzelnen Dateien und RULES klappt es aber gut.

Ich habe deshalb mittlerweile in einem Inhaltstyp ( Soll ein Multiuser Dart Blog werden ) zwei Bildtypen per Imagefield angelegt. Beispielseite: http://www.steeldart.org/dart/testbeitrag-mit-tierbild Ein Feld "Field_startbild" das ich mit Imagecache als Teaser- und Artikelbild anzeige. Presets ( startbild_teaser & startbild_artikel ) Hier habe ich die Integration von stBorchert genutzt und es klappt recht gut mit dem automatischen Löschen der Ursprungsdatei. Für dieses Bild können potentielle User dann Ihre MB-Riesenfotos hochladen, aber mich kümmert es nicht, da eben die Originaldateien beim speichern und Ändern per RULES gelöscht werden.

Außerdem will ich Minigalerien ( Weitere Bilder zum Beitrag )erlauben bei den Beiträgen, mit erstmal bis zu drei Bildern. Da ich die RULES Integration hier aufgrund der Restriktion auf eine Datei ( noch ) nicht nutzen kann, um Presets zu erstellen, habe ich mir folgenden Weg gedacht: Es könnte doch eigentlich eine Regel angelegt werden, die bei einer Änderung von Inhalten alle bisherigen Originaldateien im entsprechenden Verzeichnis löscht. So wären auch nicht mehr zuviele Dateien auf dem Server, die unnötig Geld kosten können.

Damit wären alle Imagecache Presets erstellt, die Bilddateien würden korrekt angezeigt und nach nur einer erfolgten Änderung wäre der Webspace vom Ballast bereinigt. Was haltet Ihr von der Lösung?

Würde ich gerne ausprobieren, aber leider bin ich wie schon mehrmals erwähnt PHP-Depp. Deshalb noch eine Frage an

@einfachfragen

In meinem Beispiel möchte ich bei Änderungen alle Bilder aus dem Verzeichnis mit dem Pfad sites/default/files/bilder löschen. Wäre dann Dein Code folgendermaßen richtig?

$folder = opendir('sites/default/files/bilder');
    while($file = readdir($folder)){
      $endung = substr($file, -4);
        if ($endung == ".png" or $endung == ".jpg" or $endung == ".gif") {
            unlink('files/'.$file);
        }
    }
    closedir($folder);

Würde ich dann mal ausprobieren, wenn Du meinst, daß das dann klappt :-)
-------------------------------------------------------------------------------
Drupal ist das "Coolste", was mir in 10 Jahren Webworking untergekommen ist!
Meine persönliche Drupal Spielwiese

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi. Sofern du die Datei in

Eingetragen von einfachfragen (150)
am 22.03.2009 - 19:15 Uhr

Hi.

Sofern du die Datei in die root legst sollte es klappen. Aber "vorsicht" mach ein Backup, da wird ohne Rückfrage gelöscht.

Irgendwie habe ich aber sonst noch nicht so ganz gepeilt was du noch möchtest, hehe.

Gruß

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 6 Tagen
  • Hey danke
    vor 2 Wochen 12 Stunden
  • Update: jetzt gibt's ein
    vor 2 Wochen 1 Tag
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 3 Tagen
  • In der entsprechenden View
    vor 3 Wochen 3 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 3 Tagen
  • gelöst
    vor 5 Wochen 6 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 12 Stunden

Statistik

Beiträge im Forum: 250233
Registrierte User: 20451

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 26 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association