Liebe Leser,
Wenn dies Ihr erster Besuch hier ist, lesen Sie bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Sie müssen sich vermutlich registrieren, bevor Sie Beiträge verfassen können. Klicken Sie rechts auf 'Jetzt registrieren.', um den Registrierungsprozess zu starten.
Ergebnis 1 bis 7 von 7
  1. #1
    Registriert seit
    07.2006
    Beiträge
    57

    Bild vor Threadtitel

    Hallo,

    ich habe folgendes Problem. Ich möchte in ein Forum (Woltlab 2.3) die Funktion einbauen, dass vor jedem Thread, der Attachments beinhaltet, die übliche Briefklammer durch das erste Attachment des Thread ersetzt wird.

    http://www.hsez.de/board/board.php?boardid=77

    Das template aus Waltlab sieht so aus:

    Code:
    <tr align="center">
      <td class="tablea"><img src="{$style['imagefolder']}/$foldericon.gif" border="0" alt="" title="" /></td>
      <td class="tableb">$threadicon</td>
      <td class="tablea" style="width:80%" align="left"><span class="normalfont">
      
      <if($threads['attachments'])>
       <then><img src="images/paperclip.gif" border="0" alt="3 Dateianh&auml;nge enthalten" title="3 Dateianh&auml;nge enthalten" /></then>
      </if>
      
      <if($firstnew==1)>
       <then><a href="thread.php?threadid=$threads[threadid]&amp;goto=firstnew{$SID_ARG_2ND}"><img src="{$style['imagefolder']}/firstnew.gif" alt="{$lang->items['LANG_BOARD_GOTO_FIRSTNEW']}" title="{$lang->items['LANG_BOARD_GOTO_FIRSTNEW']}" border="0" /></a> </then>
      </if>  
      
      <span class="prefix">
      
      <if($threads['closed']==3)>
       <then><b>{$lang->items['LANG_BOARD_MOVED']}</b> </then>
      </if>
      
      <if($threads['important']==2)>
       <then><b>{$lang->items['LANG_BOARD_ANNOUNCEMENT']}</b> </then>
      </if>
      
      <if($threads['important']==1)>
       <then><b>{$lang->items['LANG_BOARD_IMPORTANT']}</b> </then>
      </if>
      
      <if($threads['pollid']!=0 && $threads['closed']!=3)>
       <then><b>{$lang->items['LANG_BOARD_POLL']}</b> </then>
      </if>
      
      <if($threads['prefix']!="")>
       <then>$threads[prefix] </then>
      </if>
      
      </span>
      <a href="thread.php?threadid=$threads[threadid]<if($search[searchstring])><then>&amp;hilight=$search[searchstring]</then></if><if($search[searchuserid])><then>&amp;hilightuser=$search[searchuserid]</then></if>{$SID_ARG_2ND}">$threads[topic]</a></span>$multipages<span class="smallfont">
      
      <if(isset($favorites) && $favorites)>
       <then><br /><b><a href="addreply.php?threadid=$threads[threadid]{$SID_ARG_2ND}">{$lang->items['LANG_BOARD_REPLY']}</a> <a href="usercp.php?threadid=$threads[threadid]&amp;action=removesubscription{$SID_ARG_2ND}">{$lang->items['LANG_BOARD_REMOVE_SUBSCRIPTION']}</a></b></then>
      </if>
      
      <if($filename=="search.php")>
       <then><br />{$lang->items['LANG_SEARCH_BOARD']} <b><a href="board.php?boardid=$threads[boardid]{$SID_ARG_2ND}">$threads[title]</a></b></then>
      </if>
      </span></td>
      
      <td class="tableb"><span class="normalfont"><a href="javascript:who($threads[threadid])">$threads[replycount]</a></span></td>
      <td class="tablea" style="width:20%"><span class="normalfont"><if($threads['starterid']!=0)><then><a href="profile.php?userid=$threads[starterid]{$SID_ARG_2ND}">$threads[starter]</a></then><else>$threads[starter]</else></if></span></td>
      <td class="tableb"><span class="normalfont">$threads[views]</span></td>
      <if($board['allowratings']==1)><then><td class="tablea" nowrap="nowrap">$threadrating</td></then></if>
      <td class="<if($board['allowratings']==1)><then>tableb</then><else>tablea</else></if>" align="left"><table cellpadding="0" cellspacing="0" border="0" style="width:100%">
       <tr align="right" class="<if($board['allowratings']==1)><then>tableb</then><else>tablea</else></if>_fc">
        <td align="right" nowrap="nowrap"><span class="smallfont">$lastpostdate <span class="time">$lastposttime</span><br />
        {$lang->items['LANG_BOARD_FROM']} <if($threads['lastposterid']!=0)><then><b><a href="profile.php?userid=$threads[lastposterid]{$SID_ARG_2ND}">$threads[lastposter]</a></b></then><else>$threads[lastposter]</else></if></span></td>
        <td nowrap="nowrap"><span class="smallfont">&nbsp;<a href="thread.php?threadid=$threads[threadid]&amp;goto=lastpost{$SID_ARG_2ND}"><img src="{$style['imagefolder']}/lastpost.gif" alt="{$lang->items['LANG_BOARD_GOTO_LASTPOST']}" title="{$lang->items['LANG_BOARD_GOTO_LASTPOST']}" border="0" /></a></span></td>
       </tr>
      </table></td>
     </tr>
    Relevant ist:

    Code:
    <img src="images/paperclip.gif" border="0" alt="3 Dateianh&auml;nge enthalten" title="3 Dateianh&auml;nge enthalten" />
    paperclip.gif soll also durch das jeweils erste Attachment des Threads ersetzt werden.

    Wie aber definiere ich das als Variable.

    Danke für die Mühe des Lesens

    Danke

    Jonny

  2. #2
    Registriert seit
    07.2006
    Beiträge
    57
    Ich sehe gerade, dass mein Beispiellink nicht funktioniert.

    Also:

    Beispiel

    Jonny

  3. #3
    Avatar von VB-Coder
    VB-Coder ist offline Megabyte
    Mein System
    MainboardMSI P35 Neo (MS-7360)
    ProzessorIntel QuadCore Q6600 - 2400 Mhz - 2x 4MB L2 Cache
    GrafikkarteGainward GeForce 8600 GT - 1024 MB DDR2 - 128bit - PCIe
    RAM2x 2GB Transcend JM4GDDR2-8K - DDR2-800 (400 MHz)
    Festplatte(n)WesternDigital WD5000AAKS-65YGA0 (500 GB - SATA) Seagate ST3120022A (120 GB - IDE)
    Andere LaufwerkeHL-DT-ST DVD-RAM GSA-H55L
    Netzteil (inkl. Spannungswerte)Apevia ATX-AS600W-BK Input: 230V | 50 Hz | 5A Total Output: 600W max +12,+5,+3.3 Combine: 580W
    SoundkarteonBoard Sound
    BetriebssystemWindows 7 Home Premium 64bit
    AV-SoftwareAvira AntiVir Personal
    FirewallComodo Firewall Pro
    System-/OptimierungstoolsSpybot - Search & Destroy HijackThis Malwarebytes' Anti-Malware
    Art des InternetzugangsDSL-16000
    Router/ModemArcor SpeedModem200
    MonitorVideoSeven 19" TFT
    Registriert seit
    04.2007
    Ort
    406XX / NRW
    Beiträge
    1.684
    PHP-Code:
    <img src="attachment.php?attachmentid=$attachment[attachmentid]{$SID_ARG_2ND}.....> 
    versuchs mal so ... k.a. ob es funktioniert
    MfG VB-Coder

  4. #4
    Registriert seit
    07.2006
    Beiträge
    57
    Hat leider nicht funktioniert, aber vielen Dank für die Antwort.

    Wie legt man denn mit PHP fest, dass das erste Attachment des Beitrags gemeint ist.

  5. #5
    Avatar von VB-Coder
    VB-Coder ist offline Megabyte
    Mein System
    MainboardMSI P35 Neo (MS-7360)
    ProzessorIntel QuadCore Q6600 - 2400 Mhz - 2x 4MB L2 Cache
    GrafikkarteGainward GeForce 8600 GT - 1024 MB DDR2 - 128bit - PCIe
    RAM2x 2GB Transcend JM4GDDR2-8K - DDR2-800 (400 MHz)
    Festplatte(n)WesternDigital WD5000AAKS-65YGA0 (500 GB - SATA) Seagate ST3120022A (120 GB - IDE)
    Andere LaufwerkeHL-DT-ST DVD-RAM GSA-H55L
    Netzteil (inkl. Spannungswerte)Apevia ATX-AS600W-BK Input: 230V | 50 Hz | 5A Total Output: 600W max +12,+5,+3.3 Combine: 580W
    SoundkarteonBoard Sound
    BetriebssystemWindows 7 Home Premium 64bit
    AV-SoftwareAvira AntiVir Personal
    FirewallComodo Firewall Pro
    System-/OptimierungstoolsSpybot - Search & Destroy HijackThis Malwarebytes' Anti-Malware
    Art des InternetzugangsDSL-16000
    Router/ModemArcor SpeedModem200
    MonitorVideoSeven 19" TFT
    Registriert seit
    04.2007
    Ort
    406XX / NRW
    Beiträge
    1.684
    schau dir die attachment.php an eventuell bringt die dich weiter.
    MfG VB-Coder

  6. #6
    Registriert seit
    07.2006
    Beiträge
    57
    Attachment.php sieht so aus.

    PHP-Code:
    <?php
    // ************************************************************************************//
    // * WoltLab Burning Board 2
    // ************************************************************************************//
    // * Copyright (c) 2001-2004 WoltLab GmbH
    // * Web           http://www.woltlab.de/
    // * License       http://www.woltlab.de/products/burning_board/license_en.php
    // *               http://www.woltlab.de/products/burning_board/license.php
    // ************************************************************************************//
    // * WoltLab Burning Board 2 is NOT free software.
    // * You may not redistribute this package or any of it's files.
    // ************************************************************************************//
    // * $Date: 2006-06-26 15:30:00 +0200 (Mo, 26 Jun 2006) $
    // * $Author: Burntime $
    // * $Rev: 1706 $
    // ************************************************************************************//


    $filename 'attachment.php';

    require(
    './global.php');

    if (
    $attachment['postid'] && !$attachment['privatemessageid']) {
        if (
    checkpermissions('can_download_attachments') == 0access_error();
    }
    elseif (!
    $attachment['postid'] && $attachment['privatemessageid']) {
        if (!
    $wbbuserdata['userid'] || $wbbuserdata['can_use_pms'] == 0access_error();
        if (!((
    $attachment['senderid'] == $wbbuserdata['userid'] && $attachment['inoutbox'] == 1) || ($attachment['recipientid'] == $wbbuserdata['userid'] && $attachment['deletepm'] == 0))) access_error();
    }

    if (isset(
    $attachmentid)) {
        if (isset(
    $_REQUEST['thumbnail'])) $thumbnail intval($_REQUEST['thumbnail']);
        else 
    $thumbnail 0;
        if (
    $thumbnail && !$attachment['thumbnailextension']) $thumbnail 0;
        
        
    $db->unbuffered_query("UPDATE bb".$n."_attachments SET counter=counter+1 WHERE attachmentid = '$attachmentid'"1); 

        if (
    preg_match('/MSIE [0-9]\.[0-9]{1,2}/'$_SERVER['HTTP_USER_AGENT'])) $browser_type 1// IE 
        
    else if (preg_match('/Opera\/[0-9]\.[0-9]{1,2}/'$_SERVER['HTTP_USER_AGENT'])) $browser_type 2// Opera
        
    else $browser_type 3// other...
        
        
    $content_disp '';
        
    $extension = (($thumbnail == 1) ? ($attachment['thumbnailextension']) : ($attachment['attachmentextension']));
        
    $size = (($thumbnail == 1) ? ($attachment['thumbnailsize']) : ($attachment['attachmentsize']));
        if (
    $extension == 'gif'$mime_type 'image/gif';
        elseif (
    $extension == 'jpg' || $extension == 'jpeg'$mime_type 'image/jpeg';
        elseif (
    $extension == 'png'$mime_type 'image/png';
        elseif (
    $extension == 'pdf'$mime_type 'application/pdf';
        elseif (
    $extension == 'txt') {
            
    $mime_type 'text/plain';
            
    $content_disp 'attachment; ';
        }
        else {
            if (
    $browser_type == || $browser_type == 2$mime_type 'application/octetstream';
            else 
    $mime_type 'application/octet-stream';

            if (
    $browser_type == 1$content_disp 'inline; ';
            else 
    $content_disp 'attachment; ';
        }
        
    header('Content-Type: '.$mime_type);
        
        
    $filenameTranslation = array('ä' => 'ae''ö' => 'oe''ü' => 'ue''Ä' => 'Ae''Ö' => 'Oe''Ü' => 'Ue''ß' => 'ss');
        
    $attachment['attachmentname'] = strtr($attachment['attachmentname'], $filenameTranslation);
        
    $attachment['attachmentname'] = preg_replace("/[^a-z0-9_\- .@]{1}/i""_"$attachment['attachmentname']);
        
    header('Content-disposition: '.$content_disp.'filename="'.$attachment['attachmentname'].'.'.$extension.'"');
        
    header('Content-Length: '.$size);
        
        if (
    $browser_type == 1header('Pragma: public');
        else 
    header('Pragma: no-cache');

        
    header('Expires: 0');
        if (
    $thumbnail == 1) {
            
    readfile("attachments/thumbnail-".$attachment['attachmentid'].".".$attachment['thumbnailextension']);
        }
        else {
            
    readfile("attachments/attachment-".$attachment['attachmentid'].".".$attachment['attachmentextension']);
        }
    }
    else 
    error($lang->get("LANG_GLOBAL_ERROR_FALSELINK", array('$adminmail' => $adminmail)));
    ?>
    Wonach muss ich denn darin suche, oder wo steht wie die Attachments jeweils benannt sind und welche ID ihnen zugeordnet wird. und Vor allem wie sage ich damit erster Attachment im Beitrag.

    Danke

    Jonny

  7. #7
    Avatar von VB-Coder
    VB-Coder ist offline Megabyte
    Mein System
    MainboardMSI P35 Neo (MS-7360)
    ProzessorIntel QuadCore Q6600 - 2400 Mhz - 2x 4MB L2 Cache
    GrafikkarteGainward GeForce 8600 GT - 1024 MB DDR2 - 128bit - PCIe
    RAM2x 2GB Transcend JM4GDDR2-8K - DDR2-800 (400 MHz)
    Festplatte(n)WesternDigital WD5000AAKS-65YGA0 (500 GB - SATA) Seagate ST3120022A (120 GB - IDE)
    Andere LaufwerkeHL-DT-ST DVD-RAM GSA-H55L
    Netzteil (inkl. Spannungswerte)Apevia ATX-AS600W-BK Input: 230V | 50 Hz | 5A Total Output: 600W max +12,+5,+3.3 Combine: 580W
    SoundkarteonBoard Sound
    BetriebssystemWindows 7 Home Premium 64bit
    AV-SoftwareAvira AntiVir Personal
    FirewallComodo Firewall Pro
    System-/OptimierungstoolsSpybot - Search & Destroy HijackThis Malwarebytes' Anti-Malware
    Art des InternetzugangsDSL-16000
    Router/ModemArcor SpeedModem200
    MonitorVideoSeven 19" TFT
    Registriert seit
    04.2007
    Ort
    406XX / NRW
    Beiträge
    1.684
    Ich weiß wie die Attachment.php aussieht Oder was denkst du warum ich geschrieben habe, du sollst dir die ansehen ?


    $attachment['postid'] <-- enthält die ID des Postes, indem der Anhang veröffentlicht wurde
    $attachment['attachmentid'] <-- enthält die ID des Anhangs
    $attachment['attachmentname'] <-- enthällt den Dateinamen des Anhangs ohne Endung
    $attachment['attachmentextension'] <-- enthält den Dateityp (zb: jpg,png,gif,txt)

    Damit hast du schonmal alle Infos die du brauchst.

    Also kannst du die $attachment['postid'] benutzen um festzustellen in welchem Post du dich gerade befindest.


    Du packst das ganze noch in eine "Schleife" wo abgeprüft wird, in welchem Post du dich gerade zum auslesen befindest und ob der aktuelle Dateianhang i.d.R. immer der erste schon in einer Variable steht.

    ist $temppostid nicht vorhanden und $ersterDateianhang nicht vorhanden, dann erstelle beide
    jetzt erstelle den benötigten VorschauCode in der Form
    <img src="$ersterDateianhang" .....>
    wenn vorhanden, mache nichts weiter in der Schleife

    zweite Prüfung
    ist $temppostid ungleich $attachment['postid'] dann setze den Inhalt von $temppostid gleich mit dem von $attachment['postid'] und setze den Inhalt $ersterDateianhang mittels $attachment['attachmentname'] und $attachment['attachmentextension'] neu.
    jetzt erstelle den benötigten VorschauCode in der Form
    <img src="$ersterDateianhang" .....>




    Das mal so im groben und ganzen als Anhaltspunkt. Musst halt ein wenig herum Experimentieren. Oder du suchst dir im Web nen Addon/Hack. Sowas gibts bestimmt schon
    MfG VB-Coder

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
12
Content Management by InterRed