[phpBB] Interdire l'édition du titre

WRInaute accro
Bonjour,

je souhaiterait interdire l'édition du titre des sujets (url rewriting oblige)

néanmoin je souhaite permettre aux modos et aux admins la possibilité de le faire


avez vous une idée ?

merci
 
WRInaute accro
tu mets le champ d'édition du titre en affichage admin only

dans /includes/page_header.php :
Code:
if ($userdata['user_level'] == '1') { $template->assign_block_vars('user_admin', array()); } else { 	$template->assign_block_vars('user_not_admin', array()); }

puis, dans posting_body.tpl :
Code:
<!-- BEGIN user_admin -->
<tr> 
	<td class="row1" width="22%"><span class="gen"><b>{L_SUBJECT}</b></span></td>
	<td class="row2" width="78%"><input type="text" name="subject" size="45" maxlength="60" style="width:98%" tabindex="2" class="post" value="{SUBJECT}" /></td>
</tr>
<!-- END user_admin -->

ainsi, le champ du topic ne sera affiché qu'aux admins (pour le faire aux modos j'ai pas le level user la, mais tu peut le trouver facilement ;) )

squawk le probleme, c'est que si un membre renomme son topic, ca change l'adresse du sujet aussi...
 
WRInaute accro
squawk a dit:
je sais pas mais je vois pas le probleme avec l'url rewriting ?

-> regarde les urls de mes topics

un topic de 300 pages qui change de nom et c'est la grosse cata

---

merci à toi KaZhaR ;-)

je vai adapter ça aux modos :D
 
WRInaute accro
petit problème

ça marche tellement bien qu'un membre ne peu pas poster de nouveau sujet :lol:
 
WRInaute passionné
Ohax a dit:
un topic de 300 pages qui change de nom et c'est la grosse cata

Normalement pas tant que ça ..
-http://www.adojeunz.com/ftopic_2079-0-suggestions-damelioration.html

Et

-http://www.adojeunz.com/ftopic_2079-0-tagadaga-pouet-pouet-wahoo.html

Rapportent à la même page vu que c'est ton htacces qui fait tout le boulot .. Si le titre change, les pages sur google ne seront pas des 404 ;)
 
WRInaute discret
[hs pas tant que ça] Ca fait des mois que je cherche à mettre le titre dans l'url ... Comment as-tu fait ?
[/hs qui pourrait bien m'être utile si tu réponds :) ]
 
WRInaute accro
Pouzy le probleme, c'est que ca fera pas un 404, mais un duplicate...

Ohax j'ai réalisé apres etre allé me coucher (et j'ai eu la flemme de rallumer l'écran)
rajoute une vérification sur le fait que c'est une edition, et pas un post (y'a une variable passée en GET)
 
WRInaute accro
lorsque tu edite un sujet, la variable $_GET['mode'] est égale à editpost

il suffit que tu ajoute cette vérification avec la vérification admin ;)
 
WRInaute accro
elle est définie dans l'url... et définit que tu édite un topic, pas que tu en créé un
en gros, tu fait cela :
Code:
if ($userdata['user_level'] != '1' && $_GET['mode'] == 'editpost') { $template->assign_block_vars('can_not_edit', array()); } else {    $template->assign_block_vars('can_edit', array()); }
ca devrait fonctionner
(ca réponds à ta question en mp ?)
 
WRInaute accro
arggg toujours le même problème

je pige plus rien :cry:


edit : je croi que je vai revenir à l'ancien url rewriting...
 
WRInaute accro
le principe :
si la personne n'est pas admin et que le topic est en édition, il ne peut changer le titre
donc, on ne définit pas can_edit, et on définit can_not_edit

sinon, la personne est admin, ou le topic est en écriture, on définit le can_edit...

c'est clair cette fois ci ?
 
WRInaute impliqué
A mon avis ce qui bloque, c'est que le le sujet n'est pas envoyé lors de l'édition par un membre, et donc il renvoie betement au formulaire.

Alors que si tu mets l'input du sujet pour les non admin en type="hidden" ou en disabled, je pense que ça devrai passer.

Si tu veux cacher l'input, ça devrai donner :

includes/page_header.php :
Code:
if ($userdata['user_level'] == '1') 
{ 
  $template->assign_block_vars('user_admin', array());
} else {
  $template->assign_block_vars('user_not_admin', array());
}

posting_body.php :
Code:
<!-- BEGIN user_admin -->
<tr>
   <td class="row1" width="22%"><span class="gen"><b>{L_SUBJECT}</b></span></td>
   <td class="row2" width="78%"><input type="text" name="subject" size="45" maxlength="60" style="width:98%" tabindex="2" class="post" value="{SUBJECT}" /></td>
</tr>
<!-- END user_admin -->

<!-- BEGIN user_not_admin -->
   <input type="hidden" name="subject"  value="{SUBJECT}" />
<!-- END user_not_admin -->
 
WRInaute accro
C'est pas génant le duplicate de cette façon... google reindexera les pages et voila, il affichera une seule des urls et pas de 404 donc tout va bien... en plus ça concerne un nombre minuscule de topic. :)
 
WRInaute impliqué
Un simple disabled sur le input du sujet et c'est fini 8O

Où à la limite tu le met en hidden si tu veux pas le voir
 
WRInaute accro
squawk a dit:
C'est pas génant le duplicate de cette façon... google reindexera les pages et voila, il affichera une seule des urls et pas de 404 donc tout va bien... en plus ça concerne un nombre minuscule de topic. :)

tu pense donc qu'il n'y à aucun risque?

j'ai peur de voir un topic de 300 pages ce faire éditer 8O

c'est déjà arrive en plus...
 
WRInaute impliqué
Ah ouai j'avais zappé ce post ! Milles excuses à Ohax, je m'applique maintenant à la tache.
 
WRInaute impliqué
Ah une réponse ^^

Bah normalement si tu mets un disabled dans le input tu peux plsu écrire dedans :)

Met le en hidden alors ^^
 
WRInaute impliqué
C'est bon Ohax j'ai trouvé :D

Voir post en dessous....

Logiquement il ne devrait y avoir AUCUN bug !

En virant l'input du sujet ça ferait peut être plus beau.
Je vais voir ce que ça donne ;)
 
WRInaute accro
mowmow a dit:
Ah une réponse ^^

excuse moi j'ai la tête ailleur en ce moment :oops: :oops: :oops:



merci beaucoup Genzo,

je met ça en place ce soir :D

ça permet égallement aux modos d'éditer ?



merci à vous tous
 
WRInaute impliqué
Ohax a dit:
merci beaucoup Genzo,

je met ça en place ce soir :D

ça permet égallement aux modos d'éditer ?

Hop je met mon "Mod" à jour, car en cachant directement la ligne du sujet, c'est encore plus beau :D

En plus j'ai rajouté le fait qu'il soit possible d'éditer le titre par les administrateurs, mais aussi les modérateurs, sans avoir à modifier le code !

Code:
############################################################## 
## MOD Title: Editer le titre des messages, seulement pour les admins et modos
## MOD Author: Genzo < genzo[at]webpratique.net > http://www.webpratique.net 
## 
## MOD Description: Ce MOD permet aux administrateurs et modérateurs uniquement
##                  d'éditer les titres des posts dans le forum.
## 
## MOD Version: 1.0.3 
## 
## Niveau d'installation: Facile 
## Temps d'installation: 1 Minute 
##
## Fichiers à éditer: (2) 
##      - includes/page_header.php 
##      - templates/subSilver/posting_body.tpl 
##
## Fichier(s) inclu(s): (n/a) 
##
##############################################################  


# 
#-----[ OUVRIR ]------------------------------------------ 
# 
includes/page_header

# 
#-----[ TROUVER ]------------------------------------------ 
# 

//
// The following assigns all _common_ variables that may be used at any point
// in a template.
//

# 
#-----[ AVANT, AJOUTER ]------------------------------------------ 
# 

// pour editer un message si on est admin
if ( ($userdata['user_level'] == ADMIN || $userdata['user_level'] == MOD ) && $mode == 'editpost')
{
  $template->assign_block_vars('user_admin_edit_title', array());
}
// pour editer un message si on est PAS admin
if ( ($userdata['user_level'] != ADMIN && $userdata['user_level'] != MOD ) && $mode == 'editpost')
{
  $template->assign_block_vars('user_not_admin_edit_title', array());
} 
// pour les autres cas d'utilisation du formulaire (hors editpost)
if ($mode != 'editpost'){
  $template->assign_block_vars('not_editpost', array());
}



# 
#-----[ OUVRIR ]------------------------------------------ 
# 

templates/** Nom du thème **/posting_body.tpl

# 
#-----[ TROUVER ]------------------------------------------ 
# 

		<input type="text" name="subject" size="45" maxlength="60" style="width:450px" tabindex="2" class="post" value="{SUBJECT}" />

#
#-----[ REMPLACER PAR ]------------------------------------------ 
#

	<!-- BEGIN user_admin_edit_title -->
	<tr> 
	  <td class="row1" width="22%"><span class="gen"><b>{L_SUBJECT}</b></span></td>
	  <td class="row2" width="78%"> <span class="gen"> 
		<input type="text" name="subject" size="45" maxlength="60" style="width:450px" tabindex="2" class="post" value="{SUBJECT}" />
		</span> </td>
	</tr>
	<!-- END user_not_admin_edit_title -->

	<!-- BEGIN user_not_admin_edit_title -->
	<tr style="DISPLAY: none"> 
	  <td class="row1" width="22%"><span class="gen"><b>{L_SUBJECT}</b></span></td>
	  <td class="row2" width="78%"> <span class="gen"> 
		<input type="text" name="subject" size="45" maxlength="60" style="width:450px" tabindex="2" class="post" value="{SUBJECT}" />
		</span> </td>
	</tr>
	<!-- END user_not_admin_edit_title -->

	<!-- BEGIN not_editpost -->
	<tr> 
	  <td class="row1" width="22%"><span class="gen"><b>{L_SUBJECT}</b></span></td>
	  <td class="row2" width="78%"> <span class="gen"> 
		<input type="text" name="subject" size="45" maxlength="60" style="width:450px" tabindex="2" class="post" value="{SUBJECT}" />
		</span> </td>
	</tr>
	<!-- END not_editpost -->


# 
#-----[ SAUVEGARDER/FERMER TOUS LES FICHIERS ]------------------------------------------ 
# 
# EoM

Je met à jour l'autre aussi au dessus, comme ça pas de confusion.

En tout cas je le laisse sur mon forum :lol:
 
WRInaute impliqué
De rien. ;)
J'avais encore une petite erreur dans le script mais réparé dans la foulée.

Si ça peut servir à d'autres !
 
WRInaute accro
je vient d'installer

ça marche super :D

bon j'ai juste eu un bug graphique à corriger mais rien de méchant




merci beaucoup :D
 
Discussions similaires
Haut