Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module ›

Zwei kleine Quickhacks zum Modul Album Photo

Eingetragen von Tostan (26)
am 10.01.2009 - 13:30 Uhr in
  • Module
  • Drupal 6.x

Hallo,

Ich nutze das Modul Album Photo in der Version photos-6.x-2.5-beta4. Zwei Sachen haben mich in dem Modul gestört.

Die Thumbnail-Ansicht ist so "zusammengeklatscht", Photo direkt an Photo

Ich hätte die Photos gern schön geordnet in Spalten und Zeilen wie eine Tabelle.

Dazu habe ich die Datei photos.module editiert.
Zuerst die Funktion photos_view_list_image

Original:

function photos_view_list_image($image, $type = 'view') {
  global $user;
  switch ($type){

Geändert:

function photos_view_list_image($image, $type = 'view') {
  global $user;
  if(variable_get('photos_t_w', '100x100')){
    list($w,$h) = explode('x',trim(variable_get('photos_t_w', '100x100')));
  }else{
    $w = 100;
    $h = 100;
  }
  $w=$w+18;
  $h=$h+18;
  switch ($type){

Erklärung:
hier wird einfach die maximalgröße der Thumbnails ermittelt (gibt es keine Angabe wird der Standard 100x100 genommen). Dann werden noch für margin, padding und border 18 Pixel hinzuaddiert.

Gleich darunter wird noch eine Zeile eingefügt:
Original:

  switch ($type){
    case 'view':
      $image = _photos_get_path($image, 'list');
      $title = _photos_node_title($image['pid']);
      $output = l('<img alt="'.check_plain($title).'" title="'.$image['des'].'" src="'._photos_file_create_url($image['p1']).'">','photos/image/'.$image['fid'], array('class'=> 'imageview','html'=>true));
    break;

Geändert:

  switch ($type){
    case 'view':
      $image = _photos_get_path($image, 'list');
      $title = _photos_node_title($image['pid']);
      $output = l('<img alt="'.check_plain($title).'" title="'.$image['des'].'" src="'._photos_file_create_url($image['p1']).'">','photos/image/'.$image['fid'], array('class'=> 'imageview','html'=>true));
      $output = '<div class="photos-thmb" style="height:'.$h.'px; width:'.$w.'px;"><div class="photos-thmb-inner">'.$output.'</div></div>'."\n";
    break;

Erklärung:
Hier werden um jedes Bild noch einmal zwei Boxen gelegt, in denen das Bild dann zentriert werden soll.

In der Funktion photos_nodeapi wird auch noch eine Zeile eingefügt.
Original:

         foreach ($p as $image) {
            $t .= photos_view_list_image($image,'view');
          }
          $t .= $pager;
        }

Geändert:

         foreach ($p as $image) {
            $t .= photos_view_list_image($image,'view');
          }
          $t .= '<p style="clear:both; height:00px; margin:0px;" />';
          $t .= $pager;
        }

Erklärung:
Der unsichtbare Absatz sorgt dafür, dass der Text unter den Bildern im Teaser wieder links beginnt und nicht direkt hinter dem letzten Bild. (keine Ahnung warum das mit span nicht funktioniert...)

Zum schluss noch in die .css Datei folgende Zeilen einfügen

.photos-thmb{
  display:table;
  float:left;
  margin:0px;
}
.photos-thmb-inner{
  display:table-cell;
  text-align:center;
  vertical-align:middle;
  margin:0px;
}

und fertig. Die Bilder werden tabellenartig dargestellt, bei Firefox und Opera horizontal und vertikal zentriert, beim IE leider nur horizontal.

Links im Teaser linken direkt auf das Bild, nicht auf das Album

Wenn ich ein Bild im Teaser anklicke, will ich, dass das Album erscheint, nicht das Bild. Dazu ändere ich wieder die
Datei photos.module, zuerst die Funktion photos_nodeapi.

Original:

          foreach ($p as $image) {
            $t .= photos_view_list_image($image,'view');
          }

Geändert:

          foreach ($p as $image) {
            if ( $teaser ) $t .= photos_view_list_image($image,'view',$node->path);
            else           $t .= photos_view_list_image($image,'view');
          }

Erklärung:
Hier wird einfach der aufgerufenen Funktion ein link mitgegeben, falls der teaser angezeigt wird. Die funktion muss dann natürlich auch noch geändert werden.

Original:

function photos_view_list_image($image, $type = 'view') {
  global $user;
  switch ($type){
    case 'view':
      $image = _photos_get_path($image, 'list');
      $title = _photos_node_title($image['pid']);
      $output = l('<img alt="'.check_plain($title).'" title="'.$image['des'].'" src="'._photos_file_create_url($image['p1']).'">','photos/image/'.$image['fid'], array('class'=> 'imageview','html'=>true));
}

Geändert:

function photos_view_list_image($image, $type = 'view', $linkpath='') {
  global $user;
  switch ($type){
    case 'view':
      $image = _photos_get_path($image, 'list');
      $title = _photos_node_title($image['pid']);
      if ($linkpath == '') $linkpath = 'photos/image/'.$image['fid'];
      $output = l('<img alt="'.check_plain($title).'" title="'.$image['des'].'" src="'._photos_file_create_url($image['p1']).'">',$linkpath, array('class'=> 'imageview','html'=>true));
}

Erklärung:
Hier erfolgt nun noch die Behandlung des vorhin übergebenen Links.

... und fertig.

Natürlich muss das bei jeder neuen Version wieder gemacht werden :(
Wenn jemand ideen zur Verbesserung hat, bzw. wie man auch den IEW dazu bringen kann, die Bilder vertikal zu zentrieren, wäre ich dafür dankbar.

‹ Advanced Forum: Leere Seite wird angezeigt! Drupal Events in Outlook importieren ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Ist gut dass du hier soetwas

Eingetragen von dawehner (2639)
am 11.01.2009 - 13:48 Uhr

Ist gut dass du hier soetwas detailiert beschreibst aber etwas finde ich nicht so gut

1. warum veröffentlichst du nicht die Verändung als Patch, das ist für manche benutzer viel einfacher zu benutzen :)
2. warum führst du nicht in das schlecht geschriebene Modul Theme Funktionen ein, diese werden vom Maintainer auch übernommen und du kannst in dener template.php anpassen wie du willst

Trotzdem weiter so
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING

  • Anmelden oder Registrieren um Kommentare zu schreiben

ad 1) klar, patch ist

Eingetragen von Tostan (26)
am 11.01.2009 - 15:52 Uhr

ad 1) klar, patch ist einfacher zu handhaben, aber gilt halt nur für die oben genannte Version ... mit den Erklärungen kann man es meiner Meinung nach einfacher für spätere Versionen implementieren.

ad 2)
a: Weil ich absolut keine Ahnung von Modulentwicklung für Drupal habe.
b: Weil das Modul recht schwer verständlich da unkommentiert ist. Deshalb sind das auch wirklich nur Quickhacks, das geht sicher noch viel besser.

  • 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 6 Tagen 6 Stunden
  • Hey danke
    vor 1 Woche 1 Stunde
  • Update: jetzt gibt's ein
    vor 1 Woche 19 Stunden
  • Hallo, im Prinzip habe ich
    vor 1 Woche 5 Tagen
  • Da scheint die Terminologie
    vor 1 Woche 5 Tagen
  • Kannst doch auch alles direkt
    vor 2 Wochen 2 Tagen
  • In der entsprechenden View
    vor 2 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 2 Wochen 2 Tagen
  • gelöst
    vor 4 Wochen 6 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 1 Stunde

Statistik

Beiträge im Forum: 250233
Registrierte User: 20450

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» 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 13 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