Es gibt bestimmt bessere Lösungen
am 17.02.2010 - 10:36 Uhr in
Hallo zusammen,
ich möchte ein Modul schreiben, welches einige Besonderheiten bieten soll, aber trotzdem so weit wie möglich mit Drupal Funktionen arbeiten soll.
Dann möchte ich mal versuchen das Modul zu beschreiben:
Es geht um eine Gallery, welche nur auf zwei Mausevents mittels jQuery reagiert, mit dem "hover" wird das angewählte Bild doppelt so gross angezeigt, mit "click" nochmal doppelt so gross(also 4x).
So weit so gut...
Nun habe ich mit PHP einige wahrscheinlich unsaubere Codes erzeugt und glaube dass man einiges auch noch mit Drupal Funktionen anstatt mit PHP lösen könnte. Was ich aber nicht möchte, ist; die einzelnen Bilder in der files Tabelle ablegen, die Bilder sollen nur zur jeweiligen Kategorie, also einem einzigen Node verknüpft sein.
Lange Rede - kurzer Sinn. Ich zeige einfach mal alles auf. Danke euch jetzt schon für Ratschläge, Verbesserungen und die Hilfe. Ich bin um jede Meinung froh!
-- CODE IST IN LINK zur Zipdatei (mein nächster Eintrag) --
Wenn jemand das Modul gerne ausprobieren möchte, ich sende es gerne über E-Mail zu. Es ist lauffähig und funktioniert mittlerweile recht gut und sauber.
Meine wichtigsten Fragen zum Modul sind folgende:
kann ich die POST-Werte auch anders reinholen, anstatt mit $_FILES[], auch wenn ich keine Nodes oder Tabelleinträge für die Bilder in Drupal möchte, sondern nur in meiner eigenen Tabelle?
Wahrscheinlich habe ich auch noch einige Sachen in die falschen Hooks gepackt :-(
Der hook_init benutze ich um bei jedem starten der Galerie, die Variable für den Seitenstatus wieder auf das Bild 0 zu setzen. Von diesem Punkt aus kann man dann hoch und runter blättern.
Gruss und nochmals Danke im voraus
Fredi
- Anmelden oder Registrieren um Kommentare zu schreiben
Tipp
am 17.02.2010 - 13:23 Uhr
Hallo.
Du möchtest
1) imagecache zur Erstellung der Bilder verwenden,
2) Coder installieren und verwenden und
3) (optional) den Quelltext in Dateien packen, hier anhängen und die Code-Blöcke wieder entfernen.
Das macht das Ganze weitaus übersichtlicher und leserlicher.
Achso, dann möchtest Du Dir noch anschauen, wie man aus einem Modul heraus css-Dateien lädt.
Stefan
--
Sei nett zu Deinem Themer!
Hallo Stefan, Danke erstmal
am 17.02.2010 - 14:14 Uhr
Hallo Stefan,
Danke erstmal für den Blick darauf.
1) imagecache zur Erstellung der Bilder verwenden,
Du meinst hier das Modul imagecache? Ich möchte das eigentlich ohne weiteres Modul machen, denn es werden sowieso immer nur die Bilder der aktiven Seite angezeigt. Ursprung ist, dass ich eine Ausgabe erstellen möchte die kaum RAM benötigt. Aber ich les mir gern mal den gnenauen Sinn von Imagecache durch.
2) Coder installieren und verwenden
Ein guter Tipp :-), hätte ich eigentlich eher beachten können.
3) (optional) den Quelltext in Dateien packen, hier anhängen und die Code-Blöcke wieder entfernen.
Ich hole das gleich nach, muss noch einen funktionierenden Link zur Verfügung stellen...
CSS:
In dem Fall ist es die bessere Wahl, wenn ich die CSS vom Modul aus verfügbar mache, eigentlich logisch. Die js Datei habe ich ja auch mit drupal_add_js eingebunden, ich denke du meinst dass beim css das drupal_add_css() gut wäre.
Besten Dank erstmal, ich werde das umstellen und den Downloadlink jeweils aktualisieren.(kommt gleich)
Fredi
EDIT: Nachtrag
- die CSS habe ich geändert. Ein Fehler der Umbenennung von bestehenden Images musste ich auch noch verbessern, sollte jetzt passen.
zip.download
Review
am 17.02.2010 - 14:08 Uhr
Du meinst hier das Modul imagecache? Ich möchte das eigentlich ohne weiteres Modul machen, denn es werden sowieso immer nur die Bilder der aktiven Seite angezeigt. Ursprung ist, dass ich eine Ausgabe erstellen möchte die kaum RAM benötigt. Aber ich les mir gern mal den gnenauen Sinn von Imagecache durch.
Imagecache nimmt Dir die Verkleinerung der Bilder ab und kümmert sich dann auch gleich um die "Verwaltung" der Bilder. Somit reicht es von Deiner Seite her, im Modul ein oder zwei default-presets für imagecache zu definieren und dann die Bilder per
theme('imagecache', ...)
einzubinden/anzuzeigen.ich denke du meinst dass beim css das drupal_add_css() gut wäre.
Ja. Mich hats ein wenig bei folgendem Konstrukt gegruselt:
<?php
/* Einfuegunen von fh */
function phptemplate_mygallery() {
return '<link type="text/css" rel="stylesheet" media="all" href="'. base_path() . path_to_theme() .'/mycss/mycss.css" />';
}
?>
Und hier die einzige veränderte Zeile in der node.tpl.php:
<?php
print phptemplate_mygallery();
?>
Stefan
--
Sei nett zu Deinem Themer!
Danke :-)
am 17.02.2010 - 14:33 Uhr
Hallo Stefan,
ich konnte mir das Schmunzeln auch nicht mehr verkneifen, ab der Einbindung der CSS.
Na ja, das ist jetzt behoben. Es wird für mich noch einiges zu lernen geben, vor allem was die ganzen Aufrufe und Operationen von Drupal betrifft.
Das wird nun mal jedem sein Los sein, wenn Drupal verstanden werden will. Spass macht es trotzdem, oder gerade deswegen.
Manchmal bin ich einfach nur blind für das Naheliegende. Jetzt werde ich versuchen deine Vorschläge um zu setzen und habe auch daran gedacht, dass ich die Bildgrössen im Modul selber verändere...
Bei diesen Modulen möchte ich vor allem Drupal besser verstehen, deshalb der Verzicht auf mögliche Einbindungen von Hilfsmodulen.
Mit Views und cck wäre das ja in kürzester Zeit aufgebaut, doch möchte ich auch verstehen "Warum" etwas funktioniert.
Ich weiss deine Hilfe sehr zu schätzen.
Gruss
Fredi
kleine Bemerkung am Rande,
am 17.02.2010 - 15:33 Uhr
kleine Bemerkung am Rande, vielleicht hast es ja schon gemacht:
Solltest du für dein Modul, wie dir empfohlen wurde, andere Module wie z. Bsp. ImageCache benutzen, dann solltest du in deiner info-Datei auch festlegen, dass diese Module aktiviert sein müssen, also ungefähr so:
; $Id: dein_modul.info,v 1.0.0.
name = Dein Modul
description = Deine Beschreibung.
dependencies[] = anderes_modul
core = 6.x
resize eingebaut ...
am 19.02.2010 - 14:56 Uhr
Hallo zusammen,
die Angabe mit den dependencies[]... kenne ich, bin trotzdem dankbar für jeden Tipp.
ich habe nun das resize der Bilder eingebaut mit der Funktion image_resize(), das funktioniert sehr gut mit jpg und gif - png muss ich noch testen. Dann werde ich auch die Variable "validations" an das file_move() übergeben müssen, damit nicht plötzlich *.bmp und weiteres angegeben wird, ist mir gerade vorher passiert.
Dazu möchte ich auch noch die Grösse vor dem Resize überprüfen, wenn die Grösse kleiner als 240px in der Höhe hat, gebe ich am besten eine Meldung aus. Jetzt bin ich immerhin bei gut 18kb pro Bild, was bei einer Seitenanzeige von z.B. 20 Bildern gut 360kb ausmacht, der RAM-Bedarf wird da wohl höher sein wegen der Komprimierung usw.
Morgen stelle ich im Verlauf des Tages nochmal eine neue zip auf den angegebenen Link(oben). Werde es dann gerne mitteilen, sobald die neue Version oben ist und vor allem auch läuft.
Die Denkanstösse sind wirklich unbezahlbar!! Echt nett von euch...
Gruss
Fredi
P.S. habe mit dem coder-Modul alle Meldungen ausgemerzt.
EDIT:
Das Modul läuft nun einigermassen, beim Link zum Download habe ich noch einige wichtige Angaben gemacht.
Die nächsten Tage möchte ich das Modul auf der selben Domain wie der Link installieren. So kann man das auch auf der Site austesten. Mehr wenn es soweit ist...
P.S. Wenn mir jemand bei den englischen Texten helfen möchte, bin um Verbesserungen sehr froh. Vielleicht könnte ich mich mit anderen Arbeiten revanchieren?!? Bitte am liebsten über den Kontakt hier melden, oder eine E-Mail an info1@my-webshop.ch
Nochmal den Link zum Download mygallery
Ach ja:
Der Speicherverbrauch mit z.B. 30 Images pro Seite liegt unter dem Verbrauch von Aufrufen der Verwaltung(16MB auf Testumgebung) oder sonstigen Aufrufen. Wird die Gallery gestartet, so werden nur noch etwa 11 - 12MB benötigt.
Das Modul ist einzig vom "upload" Modul abhängig, welches bei Drupal integriert ist.
Broken Link
am 19.02.2010 - 13:09 Uhr
Nochmal den Link zum Download mygallery
Hier kann ich leider nichts ausser deiner 404-Seite finden.
Gruss Roger
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen (1. Posting vom Thema) <==> das erleichtert das finden von Lösungen
Richtiger Link zur zip-Datei
am 19.02.2010 - 15:03 Uhr
Hallo Roger,
entschuldige und danke für den Hinweis.
Ich habe den Link oben jetzt korrigiert, habe nicht beachtet dass mir pathauto den Pfad wieder ändert, wenn ich den Eintrag bearbeite. Der Link sollte jetzt für die nächsten paar Jahre stimmen.
Gruss
Fredi
Hier nochmal als Text,
http://drupalvideo.frediundlilli.ch/content/download-beispiel-modul-myga...