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

  • Нужен совет по выбору оптимального варианта
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • 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
Weiter

Neue Kommentare

  • Naja ich habe nichts an den
    vor 1 Woche 1 Tag
  • Ich sehe ja dein Theme nicht
    vor 1 Woche 2 Tagen
  • Zwischenzeitlich habe ich
    vor 1 Woche 4 Tagen
  • Ok ich habe die anderen
    vor 1 Woche 4 Tagen
  • Toll
    vor 1 Woche 5 Tagen
  • Vielen Dank
    vor 1 Woche 5 Tagen
  • Vielen Dank für diese sehr
    vor 1 Woche 5 Tagen
  • Wieso willst du dass denn
    vor 1 Woche 5 Tagen
  • Oh, der Klassiker unter den
    vor 1 Woche 5 Tagen
  • Naja ich achte immer drauf on
    vor 1 Woche 6 Tagen

Statistik

Beiträge im Forum: 250259
Registrierte User: 20472

Neue User:

  • MichaeldrufF
  • JeffreyPaf
  • StevenEness

» Alle User anzeigen

User nach Punkten sortiert:
wla9463
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