[bijna klaar voor release]Forum width is a forum option mod

Zelf bezig aan een modificatie? Wij kijken graag mee..
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
RobinTown
Berichten: 726
Lid geworden op: 17 jan 2004, 17:28
Contacteer:

[bijna klaar voor release]Forum width is a forum option mod

Bericht door RobinTown » 29 nov 2004, 12:46

//edit: mod is klaar, hier issie :)

Code: Selecteer alles

#################################################################
## Mod Title:   Forum width is a forum option mod
## Mod Version:	1.0.0
## Author:      Robin van der Markt <msn@robintown.nl> - http://www.robintown.nl/
## Description: Users can chose with this mod how width the forum is via a dropdown menu
##		with options (50-100%) in there profile.
##
## Installation Level: Easy
## Installation Time:  10 Minutes
## Files To Edit:      8
##                     admin/admin_users.php 
##                     includes/usercp_avatar.php
##			     includes/page_header.php
##                     includes/usercp_register.php
##                     language/lang_english/lang_main.php
##                     templates/subSilver/admin/user_edit_body.tpl
##                     templates/subSilver/overall_header.tpl
##                     templates/subSilver/profile_add_body.tpl
## Included Files:     n/a
#################################################################
## Author Note:
##
## Thanks to Acid's Modify Profile mod.
##
## Make sure your logo still fits!
##################################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
#################################################################
#
#-----[ SQL ]-------------------------------------------
# change phpbb_ to the database prefix you use  
# Replace 100 with your forums default.
ALTER TABLE phpbb_users ADD user_width TINYINT(4) DEFAULT "100"

# 
#-----[ OPEN ]------------------------------------------ 
#  
admin/admin_users.php 

# 
#-----[ FIND ]---------------------------------------------------
# 
		$interests = ( !empty($HTTP_POST_VARS['interests']) ) ? trim(strip_tags( $HTTP_POST_VARS['interests'] ) ) : '';

# 
#-----[ AFTER ADD ]---------------------------------------------------
# 
		$width = ( !empty($HTTP_POST_VARS['width']) ) ? trim(strip_tags( $HTTP_POST_VARS['width'] ) ) : ''; 

# 
#-----[ FIND (2x) ]--------------------------------------------
# 
			$interests = htmlspecialchars(stripslashes($interests));

# 
#-----[ AFTER ADD (2x) ]---------------------------------------------------
# 
			$width = htmlspecialchars(stripslashes($width));

# 
#-----[ FIND ]---------------------------------------------------
# 
			$sql = "UPDATE " . USERS_TABLE . "

# 
#-----[ ABOVE ADD ]---------------------------------------------------
# 
               		$width = ($width == $lang['width_choice']['0']) ? '' : $width;

# 
#-----[ IN-LINE FIND ]---------------------------------------------------
# 
$interests) . "'

# 
#-----[ IN-LINE AFTER ADD ]---------------------------------------------------
# 
, user_width = '" . str_replace("\'", "''", $width) . "'

# 
#-----[ FIND ]---------------------------------------------------
# 
		$interests = htmlspecialchars($this_userdata['user_interests']);

# 
#-----[ AFTER ADD ]---------------------------------------------------
# 
		$width = htmlspecialchars($this_userdata['user_width']);

# 
#-----[ FIND ]---------------------------------------------------
# 
			$s_hidden_fields .= '<input type="hidden" name="interests" value="' . str_replace("\"", """, $interests) . '" />';

# 
#-----[ AFTER ADD ]---------------------------------------------------
# 
			$s_hidden_fields .= '<input type="hidden" name="width" value="' . str_replace("\"", """, $width) . '" />'; 


# 
#-----[ FIND ]---------------------------------------------------
# 
		$template->set_filenames(array(
			"body" => "admin/user_edit_body.tpl")
		);

# 
#-----[ AFTER ADD ]---------------------------------------------------
# 
		$s_width = '<select name="width">';
		for($i = 0; $i < count($lang['width_choice']); $i++ )
		{
		        $s_width .= '<option value="' . $lang['width_choice'][$i] . '">' . $lang['width_choice'][$i]. '%</option>';
		}
		$s_width .= '</select>'; 
		$s_width = str_replace("value=\"".$width."\">", "value=\"".$width."\" SELECTED>" ,$s_width);

# 
#-----[ FIND ]---------------------------------------------------
# 
			'INTERESTS' => $interests,

# 
#-----[ AFTER ADD ]---------------------------------------------------
# 
			'S_WIDTH' => $s_width, 
			'L_WIDTH' => $lang['Width'],

# 
#-----[ OPEN ]------------------------------------------ 
#  
includes/usercp_avatar.php

# 
#-----[ FIND ]---------------------------------------------------
# 
function display_avatar_gallery($mode, &$category

# 
#-----[ IN-LINE FIND ]---------------------------------------------------
# 
&$interests

# 
#-----[ IN-LINE AFTER ADD ]---------------------------------------------------
# 
, &$width

# 
#-----[ FIND ]---------------------------------------------------
# 
$params = array('coppa', 'user_id'

# 
#-----[ IN-LINE FIND ]---------------------------------------------------
# 
'interests'

# 
#-----[ IN-LINE AFTER ADD ]---------------------------------------------------
# 
, 'width'

# 
#-----[ OPEN ]------------------------------------------ 
#  
includes/page_header.php

# 
#-----[ FIND ]---------------------------------------------------
# 
//
// Obtain number of new private messages
// if user is logged in
//

# 
#-----[ AFTER ADD ]---------------------------------------------------
# 
$width = $userdata['user_width'];

# 
#-----[ FIND ]---------------------------------------------------
# 
	'U_MEMBERLIST' => append_sid('memberlist.'.$phpEx),

# 
#-----[ AFTER ADD ]---------------------------------------------------
# 
	'S_WIDTH' => $width,

# 
#-----[ OPEN ]------------------------------------------ 
#  
includes/usercp_register.php

# 
#-----[ FIND ]---------------------------------------------------
# 
	$strip_var_list = array('username' => 'username', 'email' => 'email', 'icq' => 'icq', 'aim' => 'aim', 'msn' => 'msn', 'yim' => 'yim', 'website' => 'website', 'location' => 'location', 'occupation' => 'occupation', 'interests' => 'interests');

# 
#-----[ IN-LINE FIND ]---------------------------------------------------
# 
'interests' => 'interests'

# 
#-----[ IN-LINE AFTER ADD ]---------------------------------------------------
# 
, 'width' => 'width'

# 
#-----[ FIND (2x) ]---------------------------------------------------
# 
	$interests = stripslashes($interests);

# 
#-----[ AFTER ADD (2x) ]---------------------------------------------------
# 
	$width = stripslashes($width);


# 
#-----[ FIND ]---------------------------------------------------
# 
			$sql = "UPDATE " . USERS_TABLE . "

# 
#-----[ ABOVE ADD ]---------------------------------------------------
# 
               		$width = ($width == $lang['width_choice']['0']) ? '' : $width;

# 
#-----[ IN-LINE FIND ]---------------------------------------------------
# 
$interests) . "'

# 
#-----[ IN-LINE AFTER ADD ]---------------------------------------------------
# 
, user_width = '" . str_replace("\'", "''", $width) . "'

# 
#-----[ FIND ]---------------------------------------------------
# 
			$sql = "INSERT INTO " . USERS_TABLE . "

# 
#-----[ IN-LINE FIND ]---------------------------------------------------
# 
user_interests

# 
#-----[ IN-LINE AFTER ADD ]---------------------------------------------------
# 
, user_width

# 
#-----[ IN-LINE FIND ]---------------------------------------------------
# 
$interests) . "'

# 
#-----[ IN-LINE AFTER ADD ]---------------------------------------------------
# 
, '" . str_replace("\'", "''", $width) . "'

# 
#-----[ FIND ]---------------------------------------------------
# 
	$interests = $userdata['user_interests'];

# 
#-----[ AFTER ADD ]---------------------------------------------------
# 
	$width = $userdata['user_width'];

# 
#-----[ FIND ]---------------------------------------------------
# 
display_avatar_gallery($mode, $avatar_category

# 
#-----[ ABOVE ADD ]---------------------------------------------------
# 
	$width = ($width == $lang['width_choice']['0']) ? '' : $width;

# 
#-----[ IN-LINE FIND ]---------------------------------------------------
# 
$interests

# 
#-----[ IN-LINE AFTER ADD ]---------------------------------------------------
# 
, $width

# 
#-----[ FIND ]--------------------------
# 
	$template->assign_vars(array(
		'USERNAME' => $username,

# 
#-----[ AFTER ADD ]---------------------------------------------------
# 
		'S_WIDTH' => $s_width,
		'L_WIDTH' => $lang['Width'],

# 
#-----[ FIND ]---------------------------------------------------
# 
	$template->set_filenames(array(
		'body' => 'profile_add_body.tpl')
	);

# 
#-----[ AFTER ADD ]---------------------------------------------------
# 
	$s_width = '<select name="width">';
	for($i = 0; $i < count($lang['width_choice']); $i++ )
	{
	        $s_width .= '<option value="' . $lang['width_choice'][$i] . '">' . $lang['width_choice'][$i]. '%</option>';
	}
	$s_width .= '</select>'; 
	$s_width = str_replace("value=\"".$width."\">", "value=\"".$width."\" SELECTED>" ,$s_width);

# 
#-----[ OPEN ]------------------------------------------ 
#  
language/lang_english/lang_main.php

# 
#-----[ FIND ]---------------------------------------------------
# 
$lang['Interests'] = 

# 
#-----[ BEFORE ADD ]---------------------------------------------------
# 
# You can change or delete some numbers when your forum doesn't fit in
# the bowser anymore when the forum is narrower
$lang['width_choice'] = array('-','80','85','90','95','100');
$lang['Width'] = Chose the forum width;


# 
#-----[ OPEN ]------------------------------------------ 
#  
templates/subSilver/admin/user_edit_body.tpl

# 
#-----[ FIND ]---------------------------------------------------
# 
	<tr> 
	  <th class="thSides" colspan="2" height="25" valign="middle">{L_PREFERENCES}</th>
	</tr>

# 
#-----[ AFTER ADD ]---------------------------------------------------
# 
        <tr> 
          <td class="row1"><span class="gen">{L_WIDTH}</span></td> 
	  <td class="row2"> {S_WIDTH}  </td>
         </tr>
# 
#-----[ OPEN ]------------------------------------------ 
#  
templates/subSilver/overall_header.tpl

# 
#-----[ FIND ]---------------------------------------------------
#
# The 100 can be different 
<table width="100%" cellspacing="0" cellpadding="10" border="0" align="center">

# 
#-----[ IN-LINE, FIND ]---------------------------------------------------
# 
100%

# 
#-----[ REPLACE WITH ]---------------------------------------------------
# 
{S_WIDTH}

# 
#-----[ OPEN ]------------------------------------------ 
#  
templates/subSilver/profile_add_body.tpl

# 
#-----[ FIND ]---------------------------------------------------
# 
	<tr> 
	  <th class="thSides" colspan="2" height="25" valign="middle">{L_PREFERENCES}</th>
	</tr>

# 
#-----[ AFTER ADD ]---------------------------------------------------
# 
	<tr> 
	  <td class="row1"><span class="gen">{L_WIDTH}:</span></td>
	  <td class="row2"> {S_WIDTH}  </td>
	</tr>

#
#-----[ SAVE/CLOSE ]------------------------------------------
#
# EoM
Txt file:

http://www.robintown.nl/Forum_width_is_ ... on_mod.txt

Als het goed is doet alles het :)
Laatst gewijzigd door RobinTown op 30 nov 2004, 20:03, 16 keer totaal gewijzigd.

Gebruikersavatar
Rico
Berichten: 2185
Lid geworden op: 23 okt 2003, 18:45
Contacteer:

Bericht door Rico » 29 nov 2004, 12:47

dropdown menu met keuze's?
Guess who's back..

RobinTown
Berichten: 726
Lid geworden op: 17 jan 2004, 17:28
Contacteer:

Bericht door RobinTown » 29 nov 2004, 12:48

hey goed idee :) ik zal het proberen

Gebruikersavatar
Rico
Berichten: 2185
Lid geworden op: 23 okt 2003, 18:45
Contacteer:

Bericht door Rico » 29 nov 2004, 13:11

Maar hoe wou je het doen met het Logo?
je moet wel smaller logo hebben als je 50% hebt
Guess who's back..

RobinTown
Berichten: 726
Lid geworden op: 17 jan 2004, 17:28
Contacteer:

Bericht door RobinTown » 29 nov 2004, 13:25

De mod is klaar, ik ga hem nu testen

@rico: daar moet de admin voor zorgen, dat het forum gewoon blijft doen.
En wanneer het niet past vanaf bv 70, kan je de andere opties veranderen of weghalen :)
staat er ook bij

Gebruikersavatar
Rico
Berichten: 2185
Lid geworden op: 23 okt 2003, 18:45
Contacteer:

Bericht door Rico » 29 nov 2004, 13:27

Robinforum schreef:De mod is klaar, ik ga hem nu testen

@rico: daar moet de admin voor zorgen, dat het forum gewoon blijft doen.
En wanneer het niet past vanaf bv 70, kan je de andere opties veranderen of weghalen :)
staat er ook bij
Oke
deze breng je wel uit he?
Btw lees je pm ff
Guess who's back..

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Re: [dev]Breedte van het forum door gebruiker laten invullen

Bericht door mosymuis » 29 nov 2004, 14:25

Robinforum schreef:Alleen hier kom ik bij me eerste vraag: Als iemand letters invult ipv cijfers, krijg je zeker errors.
Foutieve CSS geeft géén errors. Controlen kan je het toch wel, met is_numeric().
Rico schreef:dropdown menu met keuze's?
Dat kan de gebruiker nog steeds beïnvloeden, als hij dat wil.

RobinTown
Berichten: 726
Lid geworden op: 17 jan 2004, 17:28
Contacteer:

Bericht door RobinTown » 29 nov 2004, 14:39

hij is klaar, hij staat in me eerste post :)

alleen de sql is nog niet hoe ik het wil.

Hoe doe je dat hij standaard bij alle gebruikers een getal doet?

/edit: ik weet het al, is geedit in me eerste bericht

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 29 nov 2004, 16:01

Code: Selecteer alles

## Files To Edit:      7
##                     language/lang_english/lang_main.php
##                     includes/usercp_register.php
##                     includes/usercp_avatar.php
##                     admin/admin_users.php
##                     templates/subSilver/profile_add_body.tpl
##                     templates/subSilver/overall_header.tpl
##                     templates/subSilver/admin/user_edit_body.tpl
Zou je deze niet beter op volgorde zetten? Bovendien mis je includes/page_header.php.

#
#-----[ SQL ]-------------------------------------------
#
# Replace 100 with your forums default.
ALTER TABLE phpbb_users ADD user_width VARCHAR(255) DEFAULT "100%"
Vergeet niet te vermelden dat ze phpbb_ aanpassen naar de tabel prefix. Daarnaast is VARCHAR(255) nogal onzorgvuldig voor het opslaan van percentages, CHAR(4) is dan logischer. Nog beter zou het zijn om het procentteken weg te laten, dat is immers toch altijd hetzelfde, en als kolomtype TINYINT(3) te kiezen. Controle op de invoer is dan ook beter mogelijk. % voeg je dan pas weer toe in overall_header.

RobinTown
Berichten: 726
Lid geworden op: 17 jan 2004, 17:28
Contacteer:

Bericht door RobinTown » 29 nov 2004, 16:25

mosymuis schreef:Zou je deze niet beter op volgorde zetten? Bovendien mis je includes/page_header.php.
gedaan en geadd
mosymuis schreef: Vergeet niet te vermelden dat ze phpbb_ aanpassen naar de tabel prefix. Daarnaast is VARCHAR(255) nogal onzorgvuldig voor het opslaan van percentages, CHAR(4) is dan logischer. Nog beter zou het zijn om het procentteken weg te laten, dat is immers toch altijd hetzelfde, en als kolomtype TINYINT(3) te kiezen. Controle op de invoer is dan ook beter mogelijk. % voeg je dan pas weer toe in overall_header.
Ik heb de percentage erbij staan omdat het dan in de profiel er beter uitziet en beter te begrijpen is.
Maar als het volgens jou beter is om CHAR(4) te gebruiken gebruik ik wel CHAR(4) :bier:

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 29 nov 2004, 16:37

Robinforum schreef:Ik heb de percentage erbij staan omdat het dan in de profiel er beter uitziet en beter te begrijpen is.
Dat is geen reden, je kunt % in de bezoeker menu's er ook zelf bij plaatsen. De onderliggende waarde kan dan alsnog een gewoon getal zijn.

RobinTown
Berichten: 726
Lid geworden op: 17 jan 2004, 17:28
Contacteer:

Bericht door RobinTown » 29 nov 2004, 16:41

Wat is het verschil dan? Zo werkt het toch ook goed?

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 29 nov 2004, 16:44

INT is efficiënter dan CHAR, en het controleren op waardes gaat gemakkelijker met getallen dan met strings. Bovendien is het % gewoon overbodig, je zou het je moeten aanwennen geen onnodige data dynamisch op te slaan.

RobinTown
Berichten: 726
Lid geworden op: 17 jan 2004, 17:28
Contacteer:

Bericht door RobinTown » 29 nov 2004, 16:50

nou oke, ook goed :)
hoe zorg je er dan voor dat je die % niet opslaat maar wel ziet in de editprofile

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 29 nov 2004, 16:53

admin/admin_users.php & includes/usercp_register.php schreef:$s_width .= '<option value="' . $lang['width_choice'][$i] . '">' . $lang['width_choice'][$i]. '%</option>';
Zo.
$lang['width_choice'] = array('75%','80%','85%','90%','95%','100%');
Dit is niet echt handig, je kunt er beter een $board_config waarde bij maken die je dan zelf per 5 of 10 aftelt/optelt.

RobinTown
Berichten: 726
Lid geworden op: 17 jan 2004, 17:28
Contacteer:

Bericht door RobinTown » 29 nov 2004, 17:06

mosymuis schreef:
$lang['width_choice'] = array('75%','80%','85%','90%','95%','100%');
Dit is niet echt handig, je kunt er beter een $board_config waarde bij maken die je dan zelf per 5 of 10 aftelt/optelt.
$board_config betekend toch dat je het via het acp regeld? Dat snap ik niet, wil je dan in de acp -> configuratie een optie maken dat de admin kan kiezen tussen dat het 5 of 10 per keer optelt ofzo, of sla ik nu de plank volledig mis? :D

Gebruikersavatar
DaMnNaTiOn
Berichten: 2555
Lid geworden op: 11 dec 2002, 18:29
Locatie: localhost
Contacteer:

Bericht door DaMnNaTiOn » 29 nov 2004, 17:09

Hmmm best leuk :)
lastmodified.net

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 29 nov 2004, 17:10

Robinforum schreef:$board_config betekend toch dat je het via het acp regeld?
Jep.
Robinforum schreef:Dat snap ik niet, wil je dan in de acp -> configuratie een optie maken dat de admin kan kiezen tussen dat het 5 of 10 per keer optelt ofzo
Laat de admin bijvoorbeeld kiezen wat de maximale breedte is; 100 of maar 80%. Als je denkt dat dat niet nodig is kan je de optie ook volledig achterwege laten en het menu direct opbouwen in profile_add_body.

RobinTown
Berichten: 726
Lid geworden op: 17 jan 2004, 17:28
Contacteer:

Bericht door RobinTown » 29 nov 2004, 17:15

mosymuis schreef:
Robinforum schreef:Dat snap ik niet, wil je dan in de acp -> configuratie een optie maken dat de admin kan kiezen tussen dat het 5 of 10 per keer optelt ofzo
Laat de admin bijvoorbeeld kiezen wat de maximale breedte is; 100 of maar 80%. Als je denkt dat dat niet nodig is kan je de optie ook volledig achterwege laten en het menu direct opbouwen in profile_add_body.
Lijkt me niet nodig, omdat de gebruiker dat zelf kan kiezen. Wanneer zou het handiger zijn om maximaal 80% te hebben?

over welk menu heb je het :?

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 29 nov 2004, 17:18

Robinforum schreef:Lijkt me niet nodig, omdat de gebruiker dat zelf kan kiezen. Wanneer zou het handiger zijn om maximaal 80% te hebben?
Geen idee, maar uit je $lang optie leek het me dat je iets door de admin in wou laten stellen. Zo niet, waarom maak je dat menu dan überhaupt dynamisch?

Robinforum schreef:over welk menu heb je het :?
Het selectiemenu'tje in de profielen, dat gene waar je hele mod om draait.

Gesloten