[spip-dev] Protection de rubriques et d'articles par .htpasswd

Le 6/02/03 21:06, Fil (fil@rezo.net) a ecrit:

Afin de tester mes idées, j'ai d'abord crée les mot-clés "public" et
"privé" que je mets dans chaque article et rubriques.

S'ils sont exclusifs l'un de l'autre, pas la peine d'en mettre deux ; il
suffit de mettre "public" si c'est public et rien sinon.

J'avais oublié que je m'en étais déjà rendu compte.

des squelettes "article_prv" et "rubrique_prv" normaux et j'ai modifié
les squelettes publiques pour qu'ils n'affichent pas les articles privés :
<BOUCLE_article_principal(ARTICLES) {id_article} {id_mot=1}>

OK

Puis j'ai protégé mes squelettes privés par .htaccess :
Et enfin j'ai modifié le "inc-urls-standard.php3" afin qu'il écrive les
liens en fonction des deux mots clés :

OK ; mais il faut le renommer en inc-urls.php3 (qui ne sera pas écrasé lors
d'une mise à jour)

Merci du conseil. Pour l'instant ce n'est qu'un test alors ce ne serait
pas trop grave car je garde toujours une copie en local.

function generer_url_article($id_article) {
  $url = "article.php3?id_article=$id_article"; // par defaut
  if (! $id_article) $id_article = 0;
  $result = spip_query("SELECT id_mot FROM spip_mots_articles WHERE
id_article=$id_article");
  $row = spip_fetch_array($result);

...

  if ($id_mot == 2) $url = "article_prv.php3?id_article=$id_article";

Là ça n'est pas bon, car si jamais tu ajoutes d'autres mots-clés dans ton
système tu ne pourras pas garantir que le premier spip_fetch_array() te
rende bien le mot-clé numéro 2 (s'il est présent).

Je vois ça. Comme je suis néophyte en PHP je n'ai pas trouvé comment
vérifier dans toute la colonne, et pourtant ce n'est pas faute d'avoir
essayé, j'aurais bien voulu y arriver ne serait-ce que par parce que
j'aime bien finir ce que j'ai commencé :wink:

Surtout, je pense que tu t'embêtes un peu trop. Il serait plus facile de
faire une truc du genre de ce qui est dans la doc (avec
if($auteur_session...) ), mais en remplaçant #LOGIN_PUBLIC par un code php
qui demande un mot de passe http : la fonction de ecrire/inc_session.php3:
ask_php_auth(), est là pour ça.

-- Fil

Ouais bon et bien dans l'état des choses c'est au-delà de mes compétences.
Là pour moi c'est du chinois ! :sunglasses: Mais il va bien faloir que je
comprenne un jour, car il faut que je d'une façon ou d'une autre que je
fasse ce site et je tiens à le faire en spip...

En tous cas, je te remercie Fil pour tes réponses.

Sacha