Submitted by bonzai on
Bonjour à tous,
Malgrès mes recherches je ne trouve pas comment supprimer l'affichage de l'historique sur les pages de profils de façon simple.
Bon certain me dirons que dans la vie rien n'est simple ( et encore moins avec le web ), mais je suis sur qu'un drupalaunote à bien trouvé une petite astuce pour supprimer cette info sans avoir à creer un template de la page de profil...
Euh pas sur ...
Bon je continue mes recherches mais si jamais ... merci d'avance
Hello; je n'ai pas la
Permalien Soumis par nyl auster le 19 Août, 2009 - 11:07
Hello; je n'ai pas la réponse mais voici quelques pistes, à toi de voir en fonction de tes connaissances :
1) cherche un module qui fait ça. tu pourrais regarder déjà si ce module te convient : http://drupal.org/project/alterprofilepage
Sinon tu fais le tour dans la catégories qui t'intéresse ou tu vas sur drupalmodules.com et tu regardes le petit bloc magique "module related qui est très pratique
2) le masquer en css.
3) jouer sur le template chargé de l'affichage du profil (il doit y avoir un template dans le module user que tu peux copier coller dans ton theme puis éditer après vidage du theme registry). Dois y avoir une boucle php ou tu dois pouvoir court-circuiter l'affichage de l'historique. Mais bon, en fait c'est une mauvaise idée car le theme ne doit servir QUE à de la mise en forme et pas à des manips de ce genre normalement.
4) créer un module en utilisant le hook_profile_alter(&$account) qui sert à manipuler justement les catégories qui s'affichent sur cette page.
Salut nyl auster, Dejà
Permalien Soumis par bonzai le 19 Août, 2009 - 17:43
Salut nyl auster,
Dejà merci pour ton aide :)
1)pour le module que tu propose ce n'est pas tout à fait celà qu'il me faut puisque ce dernier 'apparament ne supprime pas completement l'historique'
Pour le 2) c'est une solution a laquelle j'avais pensé mais qui n'est pas tres propre tout de meme (mais que je garde sous le coude )
Sinon je vais regarder en utilisant le hook_profile_alter je connais pas donc je me documente et je fais un retour ...
En mettant faire un module
Permalien Soumis par nyl auster le 19 Août, 2009 - 17:59
En mettant faire un module juste pour cacher un champ je trouve ça un peu beaucoup :-/
Mais bon il te servira surement à d'autres choses. Si tu fais du php c'est la solution la plus propre AHMA et qui te donneras le plus de controle sur les profils.
pour le 2) pas très propre mais parfois faut faire la part des choses entre une solution propre qui met trois heures (recherches de modules, essai avec le template ou l'override de theme, codage d'un petit module) et la solution "pas propre" qui met... 20 secondes. Mais je dis ça parce que j'ai décidé de plus passer 1 heures sur un truc qui me prenait 1 minutes à l'époque ou je faisais tout le php et css/html du site (et puis j'ai pas le choix, faut travailler plus pour gagner plus tout ça.)
Il faut juste se rappeler qu'on l'a mis en display : none; sinon c'est la crise de nerfs assurée mais c'est une question d'organisation...
Bonsoir les drupalaunautes
Permalien Soumis par bonzai le 29 Septembre, 2009 - 21:46
Bonsoir les drupalaunautes :)
Je me permet de faire remonter ce post car je suis toujours face au même souci...
nyl auster m'as donné des bonnes pistes mais j'aimerais vraiment arriver à enlever cet historique sans le cacher...
J'ai fouiller le forum et ai trouvé quelques post sans reponses au même problème.
J'ai tenté de creer un "user-profile.tpl.php" mais avec les champs que j'ai rajouté je ne m'en sort pas vraiment.
Quelqu'un sait il peut etre dans quelle fonction et apelé ce fameux historique ?
J’ai donc fini par trouver
Permalien Soumis par bonzai le 30 Septembre, 2009 - 21:18
J'ai donc fini par trouver :) ( 2mois plus tard )
Voilà donc ma solution pour ceux qui se confronterais au même problème, j'ai supprimé directement dans le fichier 'user.module' la partie ci dessous
if (!isset($account->content['summary'])) {
$account->content['summary'] = array();
}
$account->content['summary'] += array(
'#type' => 'user_profile_category',
'#attributes' => array('class' => 'user-member'),
'#weight' => 5,
'#title' => t('History'),
);
$account->content['summary']['member_for'] = array(
'#type' => 'user_profile_item',
'#title' => t('Member for'),
'#value' => format_interval(time() - $account->created),
);
ATTENTION CETTE SOLUTION EST SUREMENT DU BRICOLAGE DONC A PRENDRE AVEC DES PINCETTES
mais pour moi c'est resolu :)
Merci d'avoir mis la
Permalien Soumis par timos le 29 Octobre, 2009 - 10:51
Merci d'avoir mis la solution en ligne.
Je relance quand même le débat, n'y a-til pas moyen de faire ça en évitant de modifier le core ? (je vais cherché un peu, mais bon c'est vrai que passer des heures pour virer un élément c'est pénible !!!)
Tim
Hello, c'est encore moi, ok
Permalien Soumis par timos le 29 Octobre, 2009 - 11:40
Hello, c'est encore moi,
ok je pense avoir résolu le problème de manière un peu plus propre.
pour "thèmer" le page profil il faut utiliser le fichier user-profil.tpl.php (dans le module du core user).
Ce fichier est de base très simple puisque constitué ainsi :
<div class=profile>
<?php print $user_profile;?>
</div>
En fait on peut contrôler ce que l'on veut faire apparaître en utilisant la variable $profile plutôt que $user_profile. Cette variable est un tableau associatif qui associe des champs à du contenu html.
Par exemple $profile['picture'] affiche bien sûr la photo !
Pour afficher l'ensemble des champs et des valeurs du tableau $profile on peut utiliser la ligne de code suivante :
print '<pre>'. check_plain(print_r($profile, 1)) .'</pre>';
Ces modifs sont bien sûr à faire dans une copie du fichier user-profile.tpl.php à placer dans son répertoire de thème.
Plus de détails en commentaire dans le fichier modules/user/user-profile.tpl.php
Si quelqu'un peut confirmer tout ça, ça fait peu de temps que je mets les mains dans le cambouis ;) , so...
merci
Tim
oui c'est une bien meilleure
Permalien Soumis par nyl auster le 29 Octobre, 2009 - 13:45
oui c'est une bien meilleure solution (que j'indique d'ailleurs dans ma première réponse)
Merci Nyl, j'avais vu ta
Permalien Soumis par timos le 29 Octobre, 2009 - 13:55
Merci Nyl,
j'avais vu ta réponse, mais j'avais un doute du fait que tu précises :
Dois y avoir une boucle php ou tu dois pouvoir court-circuiter l'affichage de l'historique. Mais bon, en fait c'est une mauvaise idée car le theme ne doit servir QUE à de la mise en forme et pas à des manips de ce genre normalement.
D'un autre côté, c'est bien de la mise en forme là, non ?
Tim
ha oui, j'exagère en disant
Permalien Soumis par nyl auster le 29 Octobre, 2009 - 14:03
ha oui, j'exagère en disant que c'est une mauvaise idée.
Disons que la manière la plus logique pour moi est sans doute de passer par un hook (création d'un module) pour récupérer les informations qui vont être communiquées au profil et d'en retirer la variable que l'on ne veut pas voir (si on cherche à supprimer une informations); mais passer par le thème c'est bien aussi; beaucoup mieux que de toucher un module du coeur :-)
Hello, bon ça va faire
Permalien Soumis par timos le 15 Janvier, 2010 - 11:14
Hello, bon ça va faire remonter le post, mais voici comment faire pour retirer l'information en passant par un module et non en cachant l'info dans le thème (ce qui permet de supprimer l'information et pas seulement de la masquer).
Il suffit de faire un petit module effectivement dont le fichier mon_module.module contient les simples lignes suivantes :
Pour cacher la partie "membre depuis :"
function hidden_history_profile_alter(&$account) {
unset($account->content['summary']['member_for']);
}
Pour cacher l'ensemble de l'Historique (mais attention certains module, comme blog par exemple y affiche des infos, la même chose mais en prenant tout le champ "summary" du tableau $account->content:
function hidden_history_profile_alter(&$account) {
unset($account->content['summary']['member_for']);
}
C'était donc bien un hook_profile_alter ;-)
A+
Ok, merci, J'attaque bientôt
Permalien Soumis par timos le 15 Janvier, 2010 - 11:26
Ok, merci,
J'attaque bientôt mon auto-formation sur les hooks et le dev de module perso, je sens que ça va être du bonheur :) !
Tim