9
Indiquez l’intérêt que vous portez à cette question
1

Rendre les profil visiteur public

Bonjour

Je suis en train de créer un site collaboratif sur lequel doivent pouvoir s’inscrire de nombreux utilisateurs.
J’aimerai rendre publique une page de profil que les utilisateurs enregistrés pourraient éditer eux même.
Je pense utiliser le plugin Champs-Extras-2 afin de permettre l’ajout des données dont j’ai besoin.

Mon problème : le profil des utilisateur n’ayant pas publié d’article n’est pas accessible. Seul les profils des administrateurs et les rédacteurs ayant déjà publié sont visibles.
Vous pouvez voir l’erreur sur la page :
http://evolution.aurif.fr/spip/spip...

Le mieux pour moi serai de trouver un plugin permettant de gérer des profils et de les rendre publique.

Je pense avoir localisé le fichier php où sont défini ces restrictions. Dans le fichier ecrire\exec\auteur.php , ligne 281, on peut lire :

function requete_auteurs($tri, $statut, $recherche=NULL)
{
	global $connect_statut, $spip_lang, $connect_id_auteur;

	//
	// Construire la requete
	//
	
	// si on n'est pas minirezo, ignorer les auteurs sans article
	// sauf les admins, toujours visibles.

	// limiter les statuts affiches
	if ($connect_statut == '0minirezo') {
		if ($statut[0]=='!') {
			  $statut = substr($statut,1); $not = "NOT";
		} else $not = '';
		$visit = !statut_min_redac($statut);
		$statut = preg_split('/\W+/', $statut); 
		$sql_visible = sql_in("aut.statut", $statut, $not);
	} else {
		$sql_visible = "(
			aut.statut = '0minirezo'
			OR aut.id_auteur=$connect_id_auteur
			OR " . sql_in('art.statut', array('prop', 'publie'))
		. ')';
		$visit = false;
	}

	$sql_sel = '';
	$join = $visit ?
	 ""
	 : 
	 (strpos($sql_visible,'art.statut')?("LEFT JOIN spip_auteurs_articles AS lien ON aut.id_auteur=lien.id_auteur" . " LEFT JOIN spip_articles AS art ON (lien.id_article = art.id_article)"):"");
	
	// tri
	switch ($tri) {
	case 'nombre':
		$sql_sel = "COUNT(lien.id_article) AS compteur";
		$sql_order = 'compteur DESC, unom';
		$join = $visit ?
		 "LEFT JOIN spip_forum AS lien ON aut.id_auteur=lien.id_auteur"
		 : ("LEFT JOIN spip_auteurs_articles AS lien ON aut.id_auteur=lien.id_auteur" 
		. (strpos($sql_visible,'art.statut')?" LEFT JOIN spip_articles AS art ON (lien.id_article = art.id_article)":""));
		break;
	
	case 'site':
		$sql_order = 'site, unom';
		break;
	
	case 'statut':
		$sql_order = 'statut, unom';
		break;
	
	case 'nom':
	default:
		$sql_sel = sql_multi ("nom", $spip_lang);
		$sql_order = "multi";
	}

Il me semble que c’est cette partie du code qui bloque l’accès au profil public des visiteurs. Mais n’étant vraiment pas un fou du php, j’aimerai avoir l’avis de quelqu’un d’expérimenté avant de plancher dessus si il n’existe pas de plugin