Pagina 1 van 2

[ MOD ] Oplossing Voor Lange Berichten

Geplaatst: 04 nov 2004, 16:01
door ElbertF
Eenvoudig modje dat ervoor zorgt dat wanneer één post extreem lang is (door bijv. een afbeelding), dat alle andere posts binnen de huidige (!) breedte van het scherm blijven. Quote en edit knoppen blijven altijd in beeld.

Screenshot, rood omlijnd voor de duidelijkheid:

Afbeelding

Wellicht dat er al een dergelijk mod bestaat, maar hij was zó eenvoudig te maken...

Code: Selecteer alles

##############################################################
## MOD Title: Wrap Messages Mod
## MOD Author: etncrew < spambots@hotmail.com > (Oker) http://www.etncrew.com/forum
## MOD Description: Long images or strings will stretch the board, this mod wraps all the
## other messages to the current window width. It also prevents the quote and edit buttons to
## move out of sight. This mod will even work with wide signatures.
## Screenshot: http://img110.exs.cx/img110/310/Untitled-3.gif
## MOD Version: 1.0.5
##
## Installation Level: Easy
## Installation Time: 3 Minutes
## Files To Edit: viewtopic_body.tpl
## Included Files: n/a
##############################################################
## For Security Purposes, Please Check: http://www.phpbb.com/mods/ for the
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered
## in our MOD-Database, located at: http://www.phpbb.com/mods/
##############################################################
## Author Notes: Thanks to Mosymuis (http://www.phpBB.nl) for ideas.
##
##############################################################
## MOD History:
##
##   2004-10-20 - Version 1.0.5
##      - Bugfix
##
##   2004-10-20 - Version 1.0.4
##      - Added multiple browser support
##
##   2004-10-20 - Version 1.0.3
##      - Quote and edit boxes will never be out of sight
##      - Mod is now a little bit faster
##
##   2004-10-20 - Version 1.0.1
##      - Max width is automaticly set to the current window width with JavaScript.
##
##   2004-10-20 - Version 1.0.0
##      - Creation
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################


#
#-----[ OPEN ]------------------------------------------
#

templates/subSilver/viewtopic_body.tpl

#
#-----[ FIND ]------------------------------------------
#

<table class="forumline" width="100%" cellspacing="1" cellpadding="3" border="0">

#
#-----[ BEFORE, ADD ]------------------------------------------
#

<!-- Start Wrap Posts Mod
ADD -->
<script language="javascript" type="text/javascript">
	var getSize = document.body.offsetWidth - 205;
	
	function writeTable() {
		document.write('<table width="' + getSize + '" style="border:0px dotted #444444" cellpadding="0" cellspacing="0">');
	}
</script>
<!-- End Wrap Posts Mod -->


#
#-----[ FIND ]------------------------------------------
#

		<td class="{postrow.ROW_CLASS}" width="100%" height="28" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
			<tr>

#
#-----[ AFTER, ADD ]------------------------------------------
#

	<!-- Start Wrap Posts Mod
	ADD -->
				<td>
					<script language="javascript" type="text/javascript">writeTable();</script>
						<tr>
	<!-- End Wrap Posts Mod -->


#
#-----[ FIND ]------------------------------------------
#

				<td width="100%"><a href="{postrow.U_MINI_POST}"><img src="{postrow.MINI_POST_IMG}" width="12" height="9" alt="{postrow.L_MINI_POST_ALT}" title="{postrow.L_MINI_POST_ALT}" border="0" /></a><span class="postdetails">{L_POSTED}: {postrow.POST_DATE}<span class="gen">&nbsp;</span>&nbsp; &nbsp;{L_POST_SUBJECT}: {postrow.POST_SUBJECT}</span></td>
				<td valign="top" nowrap="nowrap">{postrow.QUOTE_IMG} {postrow.EDIT_IMG} {postrow.DELETE_IMG} {postrow.IP_IMG}</td>
			</tr>

#
#-----[ AFTER, ADD ]------------------------------------------
#

	<!-- Start Wrap Posts Mod
	ADD -->			
			</tr>
		</table>
	</td>
	<!-- End Wrap Posts Mod -->

#
#-----[ FIND ]------------------------------------------
#

			</tr>
			<tr>
				<td colspan="2"><span class="postbody">{postrow.MESSAGE}{postrow.SIGNATURE}</span><span class="gensmall">{postrow.EDITED_MESSAGE}</span></td>

#
#-----[ REPLACE WITH ]------------------------------------------
#

	<!-- Start Wrap Posts Mod
	REMOVE
			</tr>
			<tr>
				<td colspan="2"><span class="postbody">{postrow.MESSAGE}{postrow.SIGNATURE}</span><span class="gensmall">{postrow.EDITED_MESSAGE}</span></td>
	ADD -->
			</tr>
			<tr>
				<td colspan="2">
					<script language="javascript" type="text/javascript">writeTable();</script>
						<tr>
							<td><span class="postbody">{postrow.MESSAGE}{postrow.SIGNATURE}</span><span class="gensmall"><font style="color: #333333">{postrow.EDITED_MESSAGE}</font></span></td>
						</tr>
					</table>
				</td>
	<!-- End Wrap Posts Mod -->

#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
Update: versie 1.0.1
Update: versie 1.0.3
Update: versie 1.0.4
Update: versie 1.0.5

Geplaatst: 04 nov 2004, 16:02
door Rico
mooi gedaan
zoiets was ik ook mee bezig

Geplaatst: 04 nov 2004, 16:11
door LazyTiger
hij bestaat al ja:
http://www.phpbbhacks.com/download/2183

volgens mij is die wel uitgebreider.

Geplaatst: 04 nov 2004, 16:16
door ElbertF
P.T. schreef:hij bestaat al ja:
http://www.phpbbhacks.com/download/2183

volgens mij is die wel uitgebreider.
Maar ik maak uit de beschijving op dat dit geen oplossing bied voor lange afbeeldingen..?

Geplaatst: 04 nov 2004, 17:16
door mosymuis
Heb je ergens een demo forum lopen? Ik kan me niet voorstellen dat één extra tabel in staat is om woorden af te breken, laat staan plaatjes. De tabel zal gewoon meerekken waar dat nodig is. Woorden wrappen moet serverside gebeuren.

Geplaatst: 04 nov 2004, 17:18
door ElbertF
Kijk m'n onderschrift voor een demo. En zoals je op de screenshot ziet (^), worden lange berichten ook niet afgebroken, maar het zorgt ervoor dat de rest van de berichten niet meerekken. Geen high tech code dus, maar een simpele oplossing voor iets waar ik me al een tijdje aan irriteer :)

Geplaatst: 04 nov 2004, 17:20
door mosymuis
Spambot schreef:En zoals je op de screenshot ziet (^), worden lange berichten ook niet afgebroken, maar het zorgt ervoor dat de rest van de berichten niet meerekken.
Ah kijk, dat gebeurt inderdaad wel. Al vind ik de titel dan wel ietwat misleidend.

Geplaatst: 04 nov 2004, 17:22
door ElbertF
Hmm het is maar hoe je het ziet.. Maar als je een mooie compacte titel hebt pas ik 'm wel aan hoor :bier:

Geplaatst: 04 nov 2004, 17:23
door mosymuis
Ik weet zo ook niets beters. Ik zie template hacks ook nooit echt als volwaardig.

*edit typo

Geplaatst: 04 nov 2004, 17:25
door ElbertF
Volwaardig :wink:

Ik ben trouwens wel van plan de max breedte automatisch aan de schermbreedte aan te passen.. Ik ben geen JavaScript expert, maar maybe binnenkort een kleine upgrade :)

Geplaatst: 04 nov 2004, 18:01
door ElbertF
Update naar versie 1.0.1

Zie vorige post, de max breedte is nu automatisch de schermbreedte van de gebruiker 8)

Geplaatst: 04 nov 2004, 18:04
door mosymuis

Code: Selecteer alles

      <script language="JavaScript">
      <!--
         var winwidth = parseFloat(self.innerWidth - 200);
         document.write('<table width="');
         document.write(winwidth);
         document.write('" cellpadding="0" cellspacing="0">');
      //-->
      </script>
kan je ook schrijven als:

Code: Selecteer alles

<script>document.write('<table width="'+parseFloat(self.innerWidth - 200)+'" cellpadding="0" cellspacing="0">');</script>

Geplaatst: 04 nov 2004, 18:10
door ElbertF
Haha ik weet het.. Niet dat het wat uitmaakt.. Wat vindt je zo van m'n modje? Ik vindt 'm erg praktisch 8)

Geplaatst: 04 nov 2004, 18:23
door mosymuis
Misschien is het verstandiger om dat script op één plek in de pagina te plaatsen, om hem dan telkens kort aan te roepen in de postrow. Dat spaart de server en laadtijd, omdat het toch telkens enkele regels per post minder is. Vooral op druk bezochte forums en forums met veel posts per pagina kan dat verschil maken.

Geplaatst: 04 nov 2004, 18:26
door ElbertF
Weet je zeker dat het dan sneller gaat? Als je 'm aanroept moeten die regels toch alsnog gelezen worden? :roll: Of bedoel je dat ik de variabele één keer aanmaak en meerdere keren gebruik? Kan dat eigenlijk wel..?

Geplaatst: 04 nov 2004, 18:28
door mosymuis
Het aantal bytes per pagina gaat dan snel omlaag, omdat je het script buiten de postrow opstelt en dan slechts kort aanroept binnen de postrow. Binnen de postrow wordt alles immers stom herhaald, wat zonde en onnodig is.

Geplaatst: 04 nov 2004, 18:30
door ElbertF
Maar als ik binnen de postrow een functie aanroep, dan wordt deze toch ook bij elk bericht weer doorlopen? Of klopt dat niet..

Geplaatst: 04 nov 2004, 18:36
door mosymuis
Ja. Het gaat om de pagina grootte, probeer beiden eens uit, vraag telkens de HTML source op in je browser en vergelijk het aantal regels van de pagina.

Geplaatst: 04 nov 2004, 18:41
door ElbertF
Ik ga het toepassen.. Ik ga het ook zo maken dat de quote en edit knoppen nooit buiten beeld vallen, ook niet bij grote berichten..

Geplaatst: 04 nov 2004, 19:45
door ElbertF
Update: versie 1.0.3

Alle voorgaande dingetjes toegepast. Hij zou nu sneller moeten werken en de quote en edit knoppen verdwijnen nooit buiten beeld 8)