Skip to content
Extraits de code Groupes Projets
Valider fb6bbd76 rédigé par Fil's avatar Fil
Parcourir les fichiers

trois changements :

* parAuteur -> par Auteur (squelettes par défaut)
* indexation des forums, par thread (avec getion de la reindexation en cas de modération)
* mémorisation de la préférence de connexion (permanente ou temporaire) d'une fois sur l'autre
parent 37389d47
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -80,7 +80,7 @@
<h2><a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></h2>
<div class="detail">
[(#DATE|nom_jour)] [(#DATE|affdate)]
<B_auteurs><:par_auteur:><BOUCLE_auteurs(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs>
<B_auteurs><:par_auteur:> <BOUCLE_auteurs(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs>
</div>
<br>
</BOUCLE_articles>
......
......@@ -286,6 +286,13 @@ function changer_statut_forum($id_forum, $statut) {
spip_query($query);
}
}
// signaler au moteur de recherche qu'il faut reindexer le thread
// (en fait on se contente de demander une reindexation du parent)
include_ecrire('inc_index.php3');
marquer_indexer ('forum', $id_parent);
// changer le statut de toute l'arborescence dependant de ce message
$id_messages = array($id_forum);
while ($id_messages) {
$id_messages = join(',', $id_messages);
......
......@@ -189,15 +189,6 @@ function indexer_objet($type, $id_objet, $forcer_reset = true, $full = true /* f
}
break;
case 'forum':
indexer_chaine($row['titre'], 3);
indexer_chaine($row['texte'], 1);
indexer_chaine($row['auteur'], 2);
indexer_chaine($row['email_auteur'], 2);
indexer_chaine($row['nom_site'], 2);
indexer_chaine($row['url_site'], 1);
break;
case 'signature':
indexer_chaine($row['nom_email'], 2);
indexer_chaine($row['ad_email'], 2);
......@@ -212,7 +203,7 @@ function indexer_objet($type, $id_objet, $forcer_reset = true, $full = true /* f
if ($full) {
// Ajouter les titres des articles syndiques de ce site, le cas echeant
if ($row['syndication'] = "oui") {
$query_syndic = "SELECT titre FROM spip_syndic_articles WHERE id_syndic=$id_objet ORDER BY date DESC LIMIT 0,100";
$query_syndic = "SELECT titre FROM spip_syndic_articles WHERE id_syndic=$id_objet AND statut='publie' ORDER BY date DESC LIMIT 0,100";
$result_syndic = spip_query($query_syndic);
while ($row_syndic = spip_fetch_array($result_syndic)) {
indexer_chaine($row_syndic['titre'], 5);
......@@ -227,6 +218,56 @@ function indexer_objet($type, $id_objet, $forcer_reset = true, $full = true /* f
}
break;
//
// Cas tres particulier du forum :
// on indexe le thread comme un tout
case 'forum':
// 1. chercher la racine du thread
$id_forum = $id_objet;
while ($row['id_parent']) {
$id_forum = $row['id_parent'];
$s = spip_query("SELECT id_forum,id_parent FROM spip_forum WHERE id_forum=$id_forum");
$row = spip_fetch_array($s);
}
// 2. chercher tous les forums du thread
// (attention le forum de depart $id_objet n'appartient pas forcement
// a son propre thread car il peut etre le fils d'un forum non 'publie')
$thread="$id_forum";
$fini = false;
while (!$fini) {
$s = spip_query("SELECT id_forum FROM spip_forum WHERE id_parent IN ($thread) AND id_forum NOT IN ($thread) AND statut='publie'");
if (spip_num_rows($s) == 0) $fini = true;
while ($t = spip_fetch_array($s))
$thread.=','.$t['id_forum'];
}
// 3. marquer le thread comme "en cours d'indexation"
spip_log("-> indexation thread $thread");
spip_query("UPDATE spip_forum SET idx='idx'
WHERE id_forum IN ($thread,$id_objet) AND idx!='non'");
// 4. Indexer le thread
$s = spip_query("SELECT * FROM spip_forum
WHERE id_forum IN ($thread) AND idx!='non'");
while ($row = spip_fetch_array($s)) {
indexer_chaine($row['titre'], 3);
indexer_chaine($row['texte'], 1);
indexer_chaine($row['auteur'], 2);
indexer_chaine($row['email_auteur'], 2);
indexer_chaine($row['nom_site'], 2);
indexer_chaine($row['url_site'], 1);
}
// 5. marquer le thread comme "indexe"
spip_query("UPDATE spip_forum SET idx='oui'
WHERE id_forum IN ($thread,$id_objet) AND idx!='non'");
// 6. Changer l'id_objet en id_forum de la racine du thread
$id_objet = $id_forum;
break;
} // switch
$query = "DELETE FROM $table_index WHERE $col_id=$id_objet";
......@@ -260,7 +301,7 @@ function indexer_objet($type, $id_objet, $forcer_reset = true, $full = true /* f
function marquer_indexer ($objet, $id_objet) {
spip_log ("demande indexation $objet $id_objet");
$table = 'spip_'.table_objet($objet);
spip_query ("UPDATE $table SET idx='1' WHERE id_$objet=$id_objet");
spip_query ("UPDATE $table SET idx='1' WHERE id_$objet=$id_objet AND idx!='non'");
}
function indexer_article($id_article) {
marquer_indexer('article', $id_article);
......
......@@ -1249,6 +1249,10 @@ exige d\'avoir un acc&egrave;s FTP au site Web.',
'mois_non_connu' => 'non connu',
// N
'navigateur_pas_redirige' => 'Si votre navigateur n\'est pas redirig&eacute;, cliquez ici pour continuer.',
// O
'onglet_affacer_base' => 'Effacer la base',
'onglet_agenda' => 'Agenda',
......
......@@ -117,6 +117,10 @@ function login($cible = '', $prive = 'prive', $message_login='') {
$source_auteur = $row['source'];
$alea_actuel = $row['alea_actuel'];
$alea_futur = $row['alea_futur'];
if ($row['prefs']) {
$prefs = unserialize($row['prefs']);
$rester_checked = ($prefs['cnx'] == 'perma' ? ' checked':'');
}
} else if (!$flag_autres_sources) {
$erreur = _T('login_identifiant_inconnu', array('login' => htmlspecialchars($login)));
$login = '';
......@@ -175,7 +179,7 @@ function login($cible = '', $prive = 'prive', $message_login='') {
echo "<input type='password' name='session_password' class='forml' value=\"\" size='40'>\n";
echo "<input type='hidden' name='essai_login' value='oui'>\n";
echo "<br>&nbsp;&nbsp;&nbsp;&nbsp;<input type='checkbox' name='session_remember' value='oui' id='session_remember'> ";
echo "<br>&nbsp;&nbsp;&nbsp;&nbsp;<input type='checkbox' name='session_remember' value='oui' id='session_remember'$rester_checked> ";
echo "<label for='session_remember'>"._T('login_rester_identifie')."</label>";
$url = $cible->getUrl();
......
......@@ -195,7 +195,7 @@
<h2><a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></h2>
<div class="detail">
[(#DATE|nom_jour)] [(#DATE|affdate)]
<B_auteurs_recents><:par_auteur:><BOUCLE_auteurs_recents(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs_recents>
<B_auteurs_recents><:par_auteur:> <BOUCLE_auteurs_recents(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs_recents>
</div>
<br>
</BOUCLE_articles_recents>
......
......@@ -97,7 +97,7 @@
<a name="liens_forums">
<BOUCLE_forums_liens(FORUMS){id_syndic}{par date}{inverse}>
<a href="#forum#ID_FORUM"><img src="puce.gif" border="0">#TITRE</a>
<br>[(#DATE|affdate)][, <:par_auteur:>(#NOM)]
<br>[(#DATE|affdate)][, <:par_auteur:> (#NOM)]
<br>
</BOUCLE_forums_liens>
</font>
......
......@@ -162,7 +162,7 @@
<h2><a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></h2>
<div class="detail">
[(#DATE|nom_jour)] [(#DATE|affdate)]
<B_auteurs_recents><:par_auteur:><BOUCLE_auteurs_recents(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs_recents>
<B_auteurs_recents><:par_auteur:> <BOUCLE_auteurs_recents(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs_recents>
</div>
<br>
</BOUCLE_articles_recents>
......
......@@ -170,6 +170,11 @@ if ($cookie_session) {
spip_setcookie('spip_session', $cookie_session, time() + 3600 * 24 * 14);
else
spip_setcookie('spip_session', $cookie_session);
$prefs = ($row_auteur['prefs']) ? unserialize($row_auteur['prefs']) : array();
$prefs['cnx'] = ($session_remember == 'oui') ? 'perma' : '';
spip_query ("UPDATE spip_auteurs SET prefs = '".addslashes(serialize($prefs))."' WHERE id_auteur = ".$row_auteur['id_auteur']);
}
// Redirection
......@@ -183,7 +188,7 @@ else {
echo "<html><head>";
echo "<meta http-equiv='Refresh' content='0; url=".$cible->getUrl()."'>";
echo "</head>\n";
echo "<body>Si votre navigateur n'est pas redirig&eacute;, <a href='".$cible->getUrl()."'>continuer</a>.</body></html>";
echo "<body><a href='".$cible->getUrl()."'>"._T('navigateur_pas_redirige')."</a></body></html>";
}
?>
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter