##
##
##          Titre mod :  Plugile
##
##        Version mod :  1.2
##         Pour PunBB :  1.2.x
##               Date :  28/03/2007
##           Date 1.1 :  17/03/2007
##           Date 1.0 :  02/03/2007
##
##             Auteur :  BN [http://la-bnbox.info]
##
##        Description :  Cette mod permet d'ajouter un systme de plugin
##                        la page profile. Cela fonctionne comme les
##                       plugins rservs aux administrateurs et modrateurs.
##
##  Fichiers affects :  include/functions.php
##                       profile.php
##
##     Affecte la BDD :  non
##
##
##         DISCLAIMER :  Veuillez noter que ces mods ne sont pas
##                       officiellement supports par PunBB. L'installation
##                       de ces modifications est  vos risques et prils.
##                       N'oubliez pas de sauvegarder la base de donnes et
##                       les fichiers affects avant de procder 
##                       l'installation de cette modification.
##

#
#---------[ 0. A NOTER ]-------------------------------------
#

Pour mettre  jour la v.1.1 : suivre les tapes 1,4,5,6,11,12,13,14


#
#---------[ 1. TELECHARGER LES FICHIERS ]-------------------------------------
#

lang/LANG/plugile.php dans lang/LANG
upload/plugins/AP_Plugile.php dans /plugins/
upload/plugins/UP_Exemple.php dans /plugins/
upload/plugins/UPP_Exemple.php dans /plugins/ 
(Les 2 derniers fichiers sont des exemples, supprimez-le ensuite)

#
#---------[ 2. OUVRIR ]-------------------------------------------------------
#

include/functions.php


#
#---------[ 3. TROUVER ]-----------------------------------------------------
#

<div id="profile" class="block2col">
	<div class="blockmenu">
		<h2><span><?php echo $lang_profile['Profile menu'] ?></span></h2>
		<div class="box">
			<div class="inbox">
				<ul>
					<li<?php if ($page == 'essentials') echo ' class="isactive"'; ?>><a href="profile.php?section=essentials&amp;id=<?php echo $id ?>"><?php echo $lang_profile['Section essentials'] ?></a></li>
					<li<?php if ($page == 'personal') echo ' class="isactive"'; ?>><a href="profile.php?section=personal&amp;id=<?php echo $id ?>"><?php echo $lang_profile['Section personal'] ?></a></li>
					<li<?php if ($page == 'messaging') echo ' class="isactive"'; ?>><a href="profile.php?section=messaging&amp;id=<?php echo $id ?>"><?php echo $lang_profile['Section messaging'] ?></a></li>
					<li<?php if ($page == 'personality') echo ' class="isactive"'; ?>><a href="profile.php?section=personality&amp;id=<?php echo $id ?>"><?php echo $lang_profile['Section personality'] ?></a></li>
					<li<?php if ($page == 'display') echo ' class="isactive"'; ?>><a href="profile.php?section=display&amp;id=<?php echo $id ?>"><?php echo $lang_profile['Section display'] ?></a></li>
					<li<?php if ($page == 'privacy') echo ' class="isactive"'; ?>><a href="profile.php?section=privacy&amp;id=<?php echo $id ?>"><?php echo $lang_profile['Section privacy'] ?></a></li>
					<?php if ($pun_user['g_id'] == PUN_ADMIN || ($pun_user['g_id'] == PUN_MOD && $pun_config['p_mod_ban_users'] == '1')): ?>					<li<?php if ($page == 'admin') echo ' class="isactive"'; ?>><a href="profile.php?section=admin&amp;id=<?php echo $id ?>"><?php echo $lang_profile['Section admin'] ?></a></li>
					<?php endif; ?>

#
#---------[ 4. APRES, AJOUTER ]-----------------------------------------
#

					<?php
					// See if there are any plugins
					$plugins = array();
					$d = dir(PUN_ROOT.'plugins');
					while (($entry = $d->read()) !== false)
					{
						$prefix = substr($entry, 0, strpos($entry, '_'));
						$suffix = substr($entry, strlen($entry) - 4);

						// UP <=> User Plugin (visible par tous) - UPP <=> User Private Plugin (visible par le membre et les administrateurs)
						if ($suffix == '.php' && ($prefix == 'UP' || $prefix == 'UPP'))
							$plugins[] = array(substr(substr($entry, strpos($entry, '_') + 1), 0, -4), $entry);
					}
					$d->close();

					// Did we find any plugins?
					if (!empty($plugins))
					{
						if($pun_config['o_plugile_menu'] == '1')
						{
										?>
									</ul>
								</div>
							</div>
							

							<h2><span><?php echo $pun_config['o_plugile'] ?></span></h2>
							<div class="box">
								<div class="inbox">
									<ul>
										<?php
						}
					while (list(, $cur_plugin) = @each($plugins))
						echo "\t\t\t\t\t".'<li'.(($page == $cur_plugin[1]) ? ' class="isactive"' : '').'><a href="profile.php?plugin='.$cur_plugin[1].'&amp;id='.$id.'">'.str_replace('_', ' ', $cur_plugin[0]).'</a></li>'."\n";
					?>
				</ul>
			</div>
		</div>
	<?php
	}
	?>
	
#
#---------[ 5. SUPPRIMER ]-------------------------------------------------------
#

				?>
				</ul>
			</div>
		</div>
	<?php


#
#---------[ 6. OUVRIR ]-------------------------------------------------------
#

profile.php


#
#---------[ 7. TROUVER ]-----------------------------------
#

	<div class="inform">
				<fieldset>
				<legend><?php echo $lang_profile['User activity'] ?></legend>
					<div class="infldset">
						<dl>
<?php if ($posts_field != ''): ?>							<dt><?php echo $lang_common['Posts'] ?>: </dt>
							<dd><?php echo $posts_field ?></dd>
<?php endif; ?>							<dt><?php echo $lang_common['Last post'] ?>: </dt>
							<dd><?php echo $last_post ?></dd>
							<dt><?php echo $lang_common['Registered'] ?>: </dt>
							<dd><?php echo format_time($user['registered'], true) ?></dd>
						</dl>
						<div class="clearer"></div>
					</div>
				</fieldset>
			</div>


#
#---------[ 8. APRES, AJOUTER ]------------------------------------------
#

			<?php
			// See if there are any plugiles
			$plugins = array();
			$d = dir(PUN_ROOT.'plugins');
			while (($entry = $d->read()) !== false)
			{
				$prefix = substr($entry, 0, strpos($entry, '_'));
				$suffix = substr($entry, strlen($entry) - 4);

				if ($suffix == '.php' && $prefix == 'UP')
					$plugins[] = array(substr(substr($entry, strpos($entry, '_') + 1), 0, -4), $entry);
			}
			$d->close();

			// Did we find any plugins?
			if (!empty($plugins))
			{
				while (list(, $cur_plugin) = @each($plugins))
				{
					// Make sure the file actually exists
					if (!file_exists(PUN_ROOT.'plugins/'.$cur_plugin[1]))
						message('Il n\'y a pas de plugile nomm \''.$cur_plugin[0].'\' dans le rpertoire de plugin.');
					// Construct REQUEST_URI if it isn't set
					if (!isset($_SERVER['REQUEST_URI']))
						$_SERVER['REQUEST_URI'] = (isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : '').'?'.(isset($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : '');
					?>
					<div class="inform">
						<fieldset>
						<legend><?php echo str_replace('_', ' ', $cur_plugin[0]); ?></legend>
							<div class="infldset">
							<?php
							include PUN_ROOT.'plugins/'.$cur_plugin[1];
							?>
							<div class="clearer"></div>
							</div>
						</fieldset>
					</div>
					<?php
					if (!defined('PUN_PLUGIN_LOADED'))
						message('Le chargement du plugile \''.$cur_plugin[0].'\' a chou.');
				}
			}
			?>

			
#
#---------[ 9. TROUVER ]-----------------------------------
#

if (!$section || $section == 'essentials')


#
#---------[ 10. REMPLACER PAR ]------------------------------------------
#

if ((!$section AND !$_GET['plugin']) || $section == 'essentials')


#
#---------[ 11. TROUVER (fin du fichier) ]------------------------------------------------
#

?>
	<div class="clearer"></div>
</div>
<?php

	require PUN_ROOT.'footer.php';
}


#
#---------[ 12. AVANT AJOUTER ]-------------------------------------
#

	elseif(!isset($section) AND isset($_GET['plugin']))
	{
		// The plugin to load should be supplied via GET
		$plugin = isset($_GET['plugin']) ? $_GET['plugin'] : '';
		if (!preg_match('/^UP?P_(\w*?)\.php$/i', $plugin))
					message($lang_common['Bad request']);

		$prefix = substr($plugin, 0, strpos($plugin, '_'));
		$suffix = substr($plugin, strlen($plugin) - 4);
		// UP <=> User Plugin (visible par tous) - UPP <=> User Private Plugin (visible par le membre et les administrateurs)
		if ($suffix == '.php' && ($prefix == 'UP' || $prefix == 'UPP'))
			$plugins[] = array(substr(substr($plugin, strpos($plugin, '_') + 1), 0, -4), $plugin);

		// Make sure the file actually exists
		if (!file_exists(PUN_ROOT.'plugins/'.$plugin))
					message('Il n\'y a pas de plugin nomm \''.$plugin.'\' dans le rpertoire de plugin.');

		// Construct REQUEST_URI if it isn't set
		if (!isset($_SERVER['REQUEST_URI']))
			$_SERVER['REQUEST_URI'] = (isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : '').'?'.(isset($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : '');

		$page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Profil / '.str_replace('_', ' ', $plugins[0][0]);
		require PUN_ROOT.'header.php';
		
		// Attempt to load the plugin. We don't use @ here to supress error messages,
		// because if we did and a parse error occurred in the plugin, we would only
		// get the "blank page of death".
		include PUN_ROOT.'plugins/'.$plugin;
		if (!defined('PUN_PLUGIN_LOADED'))
			message('Le chargement du plugin \''.$plugin.'\' a chou.');
	}


#
#---------[ 13. ENREGSITRER/ENVOYER SUR LE SERVEUR ]----------------------------
#

include/functions.php
profile.php


#
#---------[ 14. FIN ET REGLAGES ]----------------------------------------------
#

Pour terminer l'installation de cette mod, vous devez vous rendre sur le plugin
d'administration. C'est aussi la que vous pourrez modifier l'affichage des plugiles.
Pour crer un nouveau plugile : tout est expliqu dans le plugile exemple UP_Exemple.php
