1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Bild vor Threadtitel

Discussion in 'Web-Know-how für die Homepage' started by jonny x, Dec 20, 2009.

Thread Status:
Not open for further replies.
  1. jonny x

    jonny x Byte

    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. jonny x

    jonny x Byte

    Ich sehe gerade, dass mein Beispiellink nicht funktioniert.

    Also:

    Beispiel

    Jonny
     
  3. VB-Coder

    VB-Coder Megabyte

    PHP:
    <img src="attachment.php?attachmentid=$attachment[attachmentid]{$SID_ARG_2ND}.....>
    versuchs mal so ... k.a. ob es funktioniert
     
  4. jonny x

    jonny x Byte

    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. VB-Coder

    VB-Coder Megabyte

    schau dir die attachment.php an eventuell bringt die dich weiter.
     
  6. jonny x

    jonny x Byte

    Attachment.php sieht so aus.

    PHP:
    <?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. VB-Coder

    VB-Coder Megabyte

    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 ;)
     
Thread Status:
Not open for further replies.

Share This Page