Nochmal: Einbinden der Lightbox in spezielles Coppermine-Theme

Begonnen von breakdancer, 01 Oktober 2008, 08:37:59

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 2 Gäste betrachten dieses Thema.

breakdancer

Hallo,

ich benutze das Theme "Theme PlusXL 3.0" von DaMysterious und komme mit dem Einbinden der Lightbox in die theme.php nicht klar. Die Datei unterscheidet sich in allen Belangen von der, die im "How to..." beschrieben wird. Die Stelle, wo der erste Teil des Lightbox-Updates eingebunden wird, finde ich da ned...

Den zweiten Teil habe ich einfach vor dem PHP-Schlusstag eingefügt.

Anbei meine theme.php - kann mir jemand verraten, wo ich den ersten Teil einfügen muss, damit die Lightbox läuft ?

Liebe Grüße

Markus

Mainzer

#1
Hi breakdancer,
ich glaube das Du einen teil von dem code in der theme.php vergessen hast bzw da fehlt etwas!

Schau Dir nochmal diesen code an!
Am besten kopierst den hier und überschreibst den alten! Fängt bei Dir bei zeile 106 an! :thumbup:

// Displays a picture
function theme_html_picture()
{
    global $CONFIG, $CURRENT_PIC_DATA, $CURRENT_ALBUM_DATA, $USER;
    global $album, $comment_date_fmt, $template_display_media;
    global $lang_display_image_php, $lang_picinfo;

    $pid = $CURRENT_PIC_DATA['pid'];
    $pic_title = '';

    if (!isset($USER['liv']) || !is_array($USER['liv'])) {
        $USER['liv'] = array();
    }
    // Add 1 to hit counter
    if (!USER_IS_ADMIN && !in_array($pid, $USER['liv']) && isset($_COOKIE[$CONFIG['cookie_name'] . '_data'])) {
        add_hit($pid);
        if (count($USER['liv']) > 4) array_shift($USER['liv']);
        array_push($USER['liv'], $pid);
    }

    if($CONFIG['thumb_use']=='ht' && $CURRENT_PIC_DATA['pheight'] > $CONFIG['picture_width'] ){ // The wierd comparision is because only picture_width is stored
      $condition = true;
    }elseif($CONFIG['thumb_use']=='wd' && $CURRENT_PIC_DATA['pwidth'] > $CONFIG['picture_width']){
      $condition = true;
    }elseif($CONFIG['thumb_use']=='any' && max($CURRENT_PIC_DATA['pwidth'], $CURRENT_PIC_DATA['pheight']) > $CONFIG['picture_width']){
      $condition = true;
    }else{
     $condition = false;
    }

    if ($CURRENT_PIC_DATA['title'] != '') {
        $pic_title .= $CURRENT_PIC_DATA['title'] . "\n";
    }
    if ($CURRENT_PIC_DATA['caption'] != '') {
        $pic_title .= $CURRENT_PIC_DATA['caption'] . "\n";
    }
    if ($CURRENT_PIC_DATA['keywords'] != '') {
        $pic_title .= $lang_picinfo['Keywords'] . ": " . $CURRENT_PIC_DATA['keywords'];
    }

    if (!$CURRENT_PIC_DATA['title'] && !$CURRENT_PIC_DATA['caption']) {
        template_extract_block($template_display_media, 'img_desc');
    } else {
        if (!$CURRENT_PIC_DATA['title']) {
            template_extract_block($template_display_media, 'title');
        }
        if (!$CURRENT_PIC_DATA['caption']) {
            template_extract_block($template_display_media, 'caption');
        }
    }

    $CURRENT_PIC_DATA['menu'] = html_picture_menu(); //((USER_ADMIN_MODE && $CURRENT_ALBUM_DATA['category'] == FIRST_USER_CAT + USER_ID) || ($CONFIG['users_can_edit_pics'] && $CURRENT_PIC_DATA['owner_id'] == USER_ID && USER_ID != 0) || GALLERY_ADMIN_MODE) ? html_picture_menu($pid) : '';

    if ($CONFIG['make_intermediate'] && $condition ) {
        $picture_url = get_pic_url($CURRENT_PIC_DATA, 'normal');
    } else {
        $picture_url = get_pic_url($CURRENT_PIC_DATA, 'fullsize');
    }

    $image_size = compute_img_size($CURRENT_PIC_DATA['pwidth'], $CURRENT_PIC_DATA['pheight'], $CONFIG['picture_width']);

    $pic_title = '';
    $mime_content = cpg_get_type($CURRENT_PIC_DATA['filename']);


    if ($mime_content['content']=='movie' || $mime_content['content']=='audio') {

        if ($CURRENT_PIC_DATA['pwidth']==0 || $CURRENT_PIC_DATA['pheight']==0) {
            $CURRENT_PIC_DATA['pwidth']  = 320; // Default width

            // Set default height; if file is a movie
            if ($mime_content['content']=='movie') {
                $CURRENT_PIC_DATA['pheight'] = 240; // Default height
            }
        }

        $ctrl_offset['mov']=15;
        $ctrl_offset['wmv']=45;
        $ctrl_offset['swf']=0;
        $ctrl_offset['rm']=0;
        $ctrl_offset_default=45;
        $ctrl_height = (isset($ctrl_offset[$mime_content['extension']]))?($ctrl_offset[$mime_content['extension']]):$ctrl_offset_default;
        $image_size['whole']='width="'.$CURRENT_PIC_DATA['pwidth'].'" height="'.($CURRENT_PIC_DATA['pheight']+$ctrl_height).'"';
    }

    if ($mime_content['content']=='image') {
        if (isset($image_size['reduced'])) {
#################################################
              //First part of lightbox update                     
          $pic_html = lightbox_list($CURRENT_PIC_DATA);
         //End of first part
#################################################
        } else {
            $pic_html = "<img src=\"" . $picture_url . "\" {$image_size['geom']} class=\"image\" border=\"0\" alt=\"\" /><br />\n";
        }
    } elseif ($mime_content['content']=='document') {
        $pic_thumb_url = get_pic_url($CURRENT_PIC_DATA,'thumb');
        $pic_html = "<a href=\"{$picture_url}\" target=\"_blank\" class=\"document_link\"><img src=\"".$pic_thumb_url."\" border=\"0\" class=\"image\" /></a>\n<br />";
    } else {
        $autostart = ($CONFIG['media_autostart']) ? ('true'):('false');

        $players['WMP'] = array('id' => 'MediaPlayer',
                                'clsid' => 'classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" ',
                                'codebase' => 'codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701" ',
                                'mime' => 'type="application/x-mplayer2" ',
                               );
        $players['RMP'] = array('id' => 'RealPlayer',
                                'clsid' => 'classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" ',
                                'codebase' => '',
                                'mime' => 'type="audio/x-pn-realaudio-plugin" '
                               );
        $players['QT']  = array('id' => 'QuickTime',
                                'clsid' => 'classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" ',
                                'codebase' => 'codebase="http://www.apple.com/qtactivex/qtplugin.cab" ',
                                'mime' => 'type="video/x-quicktime" '
                               );
        $players['SWF'] = array('id' => 'SWFlash',
                                'clsid' => ' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ',
                                'codebase' => 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" ',
                                'mime' => 'type="application/x-shockwave-flash" '
                               );
        $players['UNK'] = array('id' => 'DefaultPlayer',
                                'clsid' => '',
                                'codebase' => '',
                                'mime' => ''
                               );

        if (isset($_COOKIE[$CONFIG['cookie_name'].'_'.$mime_content['extension'].'player'])) {
            $user_player = $_COOKIE[$CONFIG['cookie_name'].'_'.$mime_content['extension'].'player'];
        } else {
            $user_player = $mime_content['player'];
        }

                // There isn't a player selected or user wants client-side control
        if (!$user_player) {
            $user_player = 'UNK';
        }

        $player = $players[$user_player];

        $pic_html  = '<object id="'.$player['id'].'" '.$player['classid'].$player['codebase'].$player['mime'].$image_size['whole'].'>';
        $pic_html .= "<param name=\"autostart\" value=\"$autostart\" /><param name=\"src\" value=\"". $picture_url . "\" />";
        $pic_html .= '<embed '.$image_size['whole'].' src="'. $picture_url . '" autostart="'.$autostart.'" '.$player['mime'].'></embed>';
        $pic_html .= "</object><br />\n";
    }

    $CURRENT_PIC_DATA['html'] = $pic_html;
    $CURRENT_PIC_DATA['header'] = '';
    $CURRENT_PIC_DATA['footer'] = '';

    $CURRENT_PIC_DATA = CPGPluginAPI::filter('file_data',$CURRENT_PIC_DATA);

    $params = array('{CELL_HEIGHT}' => '100',
        '{IMAGE}' => $CURRENT_PIC_DATA['header'].$CURRENT_PIC_DATA['html'].$CURRENT_PIC_DATA['footer'],
        '{ADMIN_MENU}' => $CURRENT_PIC_DATA['menu'],
        '{TITLE}' => bb_decode($CURRENT_PIC_DATA['title']),
        '{CAPTION}' => bb_decode($CURRENT_PIC_DATA['caption']),
        );

    return template_eval($template_display_media, $params);
}

[color=red]#################################################
//Second part of lightbox update

function lightbox_list($picId) {
        ################################################
  //Set max number of images
        $max = -1;                      //(-1 for all pics in album)
      ################################################
    global $lang_display_image_php, $CONFIG;
      $i = 0;
   $pid = $picId['pid'];
   $aid = empty($_GET['album']) ? $picId['aid'] : $_GET['album'];
      $pic_data = get_pic_data($aid, $pic_count, $album_name, -1, -1, false);
   $imax = 0;                      //counter
$max = $max/2;
    foreach ($pic_data as $picture){
          if ($picture['pid'] == $pid) {
          //the number of the picture in  order
                $picnumber = $imax;
               }
$imax++;
  }       
  //Check beginning and ending of album
     if(! ($max == ((-1)/2))){
         if ($imax > $max){
                     if ($picnumber < $max || $picnumber == 0){
                             $down = 0;
                                $up = 0 + ($max*2);
                       }elseif (($picnumber + $max) > $imax){
                         $down = $imax - ($max*2);
                         $up = $imax;
                      }else{
                            $down = $picnumber - $max;
                                $up = $picnumber + $max;
                  }
         }else{
                    $down = 0;
                        $up = $imax;
              }
}else{
                    $down = 0;
                        $up = $imax;
      }
         
  foreach ($pic_data as $picture) {
         if ($i >= $down && $i <= $up){
                      if($CONFIG['thumb_use']=='ht' && $picture['pheight'] > $CONFIG['picture_width'] ){
                       $condition = true;
                 }elseif($CONFIG['thumb_use']=='wd' && $picture['pwidth'] > $CONFIG['picture_width']){
                    $condition = true;
                 }elseif($CONFIG['thumb_use']=='any' && max($picture['pwidth'], $picture['pheight']) > $CONFIG['picture_width']){
                       $condition = true;
                 }else{
                    $condition = false;
                       }
                 if (is_image($picture['filename'])) {
                           if ($CONFIG['make_intermediate'] && $condition ) {
                                      $picture_url = get_pic_url($picture, 'normal');
                         } else {
                                  $picture_url = get_pic_url($picture, 'fullsize');
                               }
                         $picture_url_fullsize = get_pic_url($picture, 'fullsize');
                              $pic_title = ($picture['title'] ? $picture['title'] : strtr(preg_replace("/(.+)\..*?\Z/", "\\1", htmlspecialchars($picture['filename'])), "_", " "));
                               if ($picture['pid'] == $pid) {
                          $picList .= "<a href=\"$picture_url_fullsize\" rel=\"lightbox[list]\" title=\"$pic_title\">";
                               $picList .= "<img src=\"$picture_url\" class=\"image\" border=\"0\" alt=\"$lang_display_image_php[view_fs]\" /><br />";
                             $picList .= "</a>\n";
                             }else{
                            $picList .= "<a href=\"$picture_url_fullsize\" rel=\"lightbox[list]\" title=\"$pic_title\"></a>\n";
                           }
                 }
         }
         $i++;
     }
return $picList;
}//End of second part
#################################################

?>[/color]


Was meinst Du damit,
Zitat von: breakdancer am 01 Oktober 2008, 08:37:59
Hallo,

Die Stelle, wo der erste Teil des Lightbox-Updates eingebunden wird, finde ich da ned...


breakdancer

Hi Mainzer,

tja, genau das scheint das Problem zu sein... In der theme.php findest Du ziemlich weit oben einen Satz:

// This theme has all CORE items removed //

Ich vermute also mal, dass dieser Code ganz absichtlich so spartanisch gehalten wurde. Und jetzt - da wesentliche Teile fehlen (wie sie in den anderen theme.php´s stehen) weiss ich eben net, wo ich in diesen wenigen Zeilen den ersten Teil einbinden kann.

In der Beispiel theme.php, die auch im Download enthalten ist, sind die geänderten Stellen ja mit "First part of lightbox update" und "Second part of lightbox update" gekennzeichnet...

Liebe Grüße

Markus

Mainzer

Hmm :gruebel:,
hast Du mal versucht die theme.php von PatSatanus komplett zu übernehmen?
Ich weiß nicht ob das was damit zu tun hat:
  ********************************************
  Coppermine version: 1.4.4
  $Source: /cvsroot/coppermine/stable/themes/classic/theme.php,v $
  $Revision: 1.15 $
  $Author: gaugau $
  $Date: 2006/02/24 13:32:45 $
**********************************************/
bei mir :
* Coppermine version: 1.4.14
* $Revision: 1.4 $
* $Author: tora60 $
* $Date: 2007/11/26 17:17:57 $
* pragmaMx-Port written by A.Ellsel (Andi), http://pragmamx.org
*/

Mach Dir mal eine Sicherung Deiner jetzigen theme.php und spiel die Von Pat auf!
Schau mal was da passiert, ob da auch wieder etwas gelöscht wird!
gruß

breakdancer

#4
Hi nochmal,

also, das Theme läuft auch mit der theme.php von Pat soweit eigentlich ganz einwandfrei. Danke schonmal für den Tip.

Was allerdings noch nicht läuft ist die Lightbox. Die Darstellung ist wie vorher auch, debug-Modus meckert nicht.

Liebe Grüße

Markus

Mainzer

Hallo,
Arbeit fertig und ich auch :hallucine:
So mal ganz kurz zu Deinem Problem!
Ich würde noch folgendes versuchen:
Update auf die neueste bridge von coppermine, bin nicht sicher was Deine theme.php ändert!
Einfach mal neuestes update von coppermine
neue bridge und evtl pmx updaten!
Hoffe Dein fehler wird behoben, es kann ja nur an coppermine liegen :gruebel:
gruß

breakdancer

Hi Mainzer,

die Versionsnummer über die Du gestolpert bist steht lediglich in der einzelnen Datei und ist nicht dynamisch. Selbstverständlich sind sowohl meine CPG als auch mein PMX auf dem neuesten Stand...

Und wie kommst Du also drauf, dass etwas meine theme.php ändert ??? Ganz und gar nicht... Der Text "// This theme has all CORE items removed //" ist Teil des Themes, das war schon immer so und bleibt auch so, es ändert sich nicht ! :-) Denke mal, da hast Du was falsch verstanden.

Liebe Grüße

Markus

Pat Satanus

Hi Markus.
Kann sein, daß das Problem nicht in der theme.php liegt, sondern in anderen Dateien, z.B. der template.html. Geh bitte noch einmal Schritt für Schritt die Anleitung How to: Lightbox in Coppermine einbauen durch und stell sicher, daß alle Pfade korrekt angegeben sind.
Drücken wir einmal die Daumen, daß dort ein Fehlerchen ist, sonst wird´s sehr knifflig.

So long...
good luck!
Cuiusvis hominis est errare, nullius nisi insipientis in errore perseverare.
-Cicero-

Mainzer

Genau!
Geh am besten schritt für schritt nocheinmal alles durch!
Ich versuche mal alles aus zu schließen und komme dabei auf 1000ende Gedanken!
Öffnet sich bei Dir überhaupt die Lightbox?
Denke mal nicht!
Öffnet sich das Bild im neuen Fenster? Oder wie?
Bei mir waren am Anfang auch Probleme bis ich dann kleine Fehler entdeckt habe!
Bedenke PatSatanus hat dieses theme für mx-port erstellt, ich benutze mx-port-black also anderer Pfad in der template.html

<link rel="stylesheet" href="http://www.deineDomaine.de/modules/Gallery/themes/mx-port-black/css/lightbox.css" type="text/css" media="screen"/>
<script type="text/javascript" src="http://www.deineDomaine.de/modules/Gallery/themes/mx-port-black/js/prototype.js"></script>
<script type="text/javascript" src="http://www.deineDomaine.de/modules/Gallery/themes/mx-port-black/js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="http://www.deineDomaine.de/modules/Gallery/themes/mx-port-black/js/lightbox.js"></script>


Schritt für schritt und wir bekommen auch das noch hin ;)
gruß