Willkommen im PC-Welt-Forum
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.
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
Thema: Bild vor Threadtitel
-
20.12.2009, 18:59 #1
Byte
- 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:
Relevant ist: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änge enthalten" title="3 Dateianhänge enthalten" /></then> </if> <if($firstnew==1)> <then><a href="thread.php?threadid=$threads[threadid]&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>&hilight=$search[searchstring]</then></if><if($search[searchuserid])><then>&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]&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"> <a href="thread.php?threadid=$threads[threadid]&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>
paperclip.gif soll also durch das jeweils erste Attachment des Threads ersetzt werden.Code:<img src="images/paperclip.gif" border="0" alt="3 Dateianhänge enthalten" title="3 Dateianhänge enthalten" />
Wie aber definiere ich das als Variable.
Danke für die Mühe des Lesens
Danke
Jonny
-
20.12.2009, 20:10 #2
Byte
- Registriert seit
- 07.2006
- Beiträge
- 57
Ich sehe gerade, dass mein Beispiellink nicht funktioniert.
Also:
Beispiel
Jonny
-
21.12.2009, 14:49 #3versuchs mal so ... k.a. ob es funktioniertPHP-Code:
<img src="attachment.php?attachmentid=$attachment[attachmentid]{$SID_ARG_2ND}" .....>
MfG VB-Coder
-
21.12.2009, 18:57 #4
Byte
- 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.
-
21.12.2009, 20:00 #5
schau dir die attachment.php an eventuell bringt die dich weiter.
MfG VB-Coder
-
21.12.2009, 21:16 #6
Byte
- Registriert seit
- 07.2006
- Beiträge
- 57
Attachment.php sieht so aus.
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.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') == 0) access_error();
}
elseif (!$attachment['postid'] && $attachment['privatemessageid']) {
if (!$wbbuserdata['userid'] || $wbbuserdata['can_use_pms'] == 0) access_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 == 1 || $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 == 1) header('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)));
?>
Danke
Jonny
-
22.12.2009, 08:06 #7
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
12

Zitieren
Lesezeichen