Advanced search  

News:

CPG Release 1.6.26
Correct PHP8.2 issues with user and language managers.
Additional fixes for PHP 8.2
Correct PHP8 error with SMF 2.0 bridge.
Correct IPTC supplimental category parsing.
Download and info HERE

Pages: [1]   Go Down

Author Topic: CPG 1.4.25 - MOD-HACK Enregistrement des recherches  (Read 3976 times)

0 Members and 1 Guest are viewing this topic.

fefed22

  • Coppermine novice
  • *
  • Offline Offline
  • Gender: Male
  • Posts: 30
CPG 1.4.25 - MOD-HACK Enregistrement des recherches
« on: August 17, 2009, 11:01:47 am »

Bonjour,
Je poste ici mon mod/hack (reprise de mon poste en séction support Anglais)
Ce mod est une reprise de "Nibbler" compatible avec la version 1.4.25
Il permet d'enregistrer dans la base de donnée les recherche effectué par les utilisateurs et par la suite de les ordonnées dans un tableau rangée par date (dans un premier temps)
Je post au fur est à mesure que le projet avance ...

je vous met donc le début :

1) ----> Création de la table :
Code: [Select]
CREATE TABLE `cpg14x_search` (
  `user_id` varchar(11) NOT NULL default '',
  `user_name` varchar(25) NOT NULL default '',
  `searchterm` text NOT NULL,
  `raw_ip` tinytext,
  `hdr_ip` tinytext,
  `date` datetime NOT NULL default '0000-00-00 00:00:00'
) TYPE=MyISAM;


2)---> Rechercher le fichier init.inc.php à la ligne 196
Code: [Select]
# see http://php.net/mbstring for details

if (function_exists('mb_internal_encoding')) { mb_internal_encoding('UTF-8'); }

$CONFIG['TABLE_PICTURES']   = $CONFIG['TABLE_PREFIX'].'pictures';
$CONFIG['TABLE_ALBUMS']     = $CONFIG['TABLE_PREFIX'].'albums';
$CONFIG['TABLE_COMMENTS']   = $CONFIG['TABLE_PREFIX'].'comments';
$CONFIG['TABLE_CATEGORIES'] = $CONFIG['TABLE_PREFIX'].'categories';
$CONFIG['TABLE_CONFIG']     = $CONFIG['TABLE_PREFIX'].'config';
$CONFIG['TABLE_USERGROUPS'] = $CONFIG['TABLE_PREFIX'].'usergroups';
$CONFIG['TABLE_VOTES']      = $CONFIG['TABLE_PREFIX'].'votes';
$CONFIG['TABLE_USERS']      = $CONFIG['TABLE_PREFIX'].'users';
$CONFIG['TABLE_BANNED']     = $CONFIG['TABLE_PREFIX'].'banned';
$CONFIG['TABLE_EXIF']       = $CONFIG['TABLE_PREFIX'].'exif';
$CONFIG['TABLE_FILETYPES']  = $CONFIG['TABLE_PREFIX'].'filetypes';
$CONFIG['TABLE_ECARDS']     = $CONFIG['TABLE_PREFIX'].'ecards';
$CONFIG['TABLE_TEMPDATA']   = $CONFIG['TABLE_PREFIX'].'temp_data';
$CONFIG['TABLE_FAVPICS']    = $CONFIG['TABLE_PREFIX'].'favpics';
$CONFIG['TABLE_BRIDGE']     = $CONFIG['TABLE_PREFIX'].'bridge';
$CONFIG['TABLE_VOTE_STATS'] = $CONFIG['TABLE_PREFIX'].'vote_stats';
$CONFIG['TABLE_HIT_STATS']  = $CONFIG['TABLE_PREFIX'].'hit_stats';

A LA SUITE mettre
Code: [Select]
// search config
$CONFIG['TABLE_SEARCHLOG'] = $CONFIG['TABLE_PREFIX'].'search';

3)---> rechercher le fichier thumbnails.php à la ligne 70
Code: [Select]
            thumb_get_subcat_data($subcat['cid'], $album_set_array);
        }   
    }
}
/*** Main code
 */

A LA SUITE mettre
Code: [Select]
    // searchlog
    $searchterm = $_POST['search'];
    $user_id = !GALLERY_ADMIN_MODE ? 0 : USER_ID;
    $results = cpg_db_query("SELECT user_name FROM {$CONFIG['TABLE_USERS']} WHERE user_id = '$user_id'");
    $USER_DATA = mysql_fetch_array($results);
    $user_name = $USER_DATA['user_name'];
    $query = "INSERT INTO {$CONFIG['TABLE_SEARCHLOG']} VALUES ('$user_id', '$user_name', '$searchterm', '$raw_ip', '$hdr_ip', NOW())";
    cpg_db_query($query);

Dans un premier temps cette modification vous permet de remplir votre table "searchlog" avec le nom de la personne logger avec la date et les mots recherchés

Ensuite il faut que je règle le problème de l'enregistrement des accents et la mise en place d'une page sous "ADMIN" pour permettre de visualiser les 100 dernières recherches

Voilà
Si vous avez des suggestions n'hésitez pas.

Fred
Logged

fefed22

  • Coppermine novice
  • *
  • Offline Offline
  • Gender: Male
  • Posts: 30
Re: CPG 1.4.25 - MOD-HACK Enregistrement des recherches
« Reply #1 on: August 17, 2009, 12:20:19 pm »

Voilà la suite ...
Il faut créer un fichier PHP a la racine du site au nom de search_hist.php

4)---> créer search_hist.php avec ce code :
Code: [Select]
<?php
// search_hist.php
// run from cpg dir
define('IN_COPPERMINE'true);
define('CALENDAR_PHP'true);
require(
'include/init.inc.php');
pageheader('enregistrement des recherches');
echo 
'<br>';
$htab $CONFIG['TABLE_PREFIX'] . "search";
$utab $CONFIG['TABLE_USERS'];
if( !
USER_IS_ADMIN ) {
 echo 
'<br><br><b>accés reservé aux admins</b>';
 exit;
}
//echo "</br></br>";
starttable('100%','Recherches effectuées et rangées par date');
$query "SELECT  user.user_name,hist.date,hist.searchterm,hist.raw_ip FROM $utab As user,$htab As hist  WHERE " .
         
"hist.user_id=user.user_id ORDER BY hist.date DESC " .
 "LIMIT 100";
$res cpg_db_query$query );          
echo 
"<tr><td><table CELLPADDING=\"5\">\n";
echo 
"<b><tr class=\"tableb\">\n";
    
echo "<td>\n";
    
echo "<b>user</b>";
    
echo "</td>\n";
    
echo "<td>\n";
    
echo "<b>date</b>";
    
echo "</td>\n";
    
echo "<td>\n";
    
echo "<b>Mots</b>";
    
echo "</td>\n";  
    
echo "</td>\n";  
    
     echo "<td>\n";
    
echo "<b>ip-address</b>";
    
echo "</td>\n";    
    echo 
"</tr></b>\n";
 while(
$row mysql_fetch_row($res)) 
  { 
    echo 
"<tr class=\"tableb\">\n";
    
echo "<td>\n";
    
echo $row[0];
    
echo "</td>\n";
    
echo "<td>\n";
    
echo $row[1];
    
echo "</td>\n";
    
     echo "<td>\n";
    
echo "<A HREF=\"thumbnails.php?=$row[2]\">$row[2]</A>";
    
echo "</td>\n"
    
echo "<td>\n";
    
echo $row[3];
    
echo "</td>\n"
    echo 
"</tr>\n";
  }
echo 
"</table></td></tr>\n";
mysql_free_result($res);
endtable();  
echo 
"<br><br>";
endtable();  // search statistics
pagefooter();  
?>


5)---> Modifier le fichier theme.php de votre thème courant

dans la partie
Code: [Select]
$template_gallery_admin_menu = <<<EOTrajouter
Code: [Select]
<li><a href="search_hist.php" title="Historique recherches">Hist. recherches</a></li>
et voilà

Mon seul problème à présent c'est que je veux rendre les mots clés cliquable et avoir le résultat de la recherche seulement je ne sais pas comment envoyer la requête et pour le moment j'ai mi :
Code: [Select]
echo "<A HREF=\"thumbnails.php?=$row[2]\">$row[2]</A>";Si quelqu'un à une suggestion ...

Fred
Logged

fefed22

  • Coppermine novice
  • *
  • Offline Offline
  • Gender: Male
  • Posts: 30
Re: CPG 1.4.25 - MOD-HACK Enregistrement des recherches
« Reply #2 on: August 17, 2009, 12:49:57 pm »

voilà j'ai fini par trouver donc il faut remplacer dans search_hist.php :

Code: [Select]
echo "<A HREF=\"thumbnails.php?=$row[2]\">$row[2]</A>";
par

Code: [Select]
echo "<A HREF=\"thumbnails.php?album=search&search=$row[2]\">$row[2]</A>";
PS : peut on éditer nos post pour faire une explication propre ou faut-il toujours s'auto-répondre .... :D
Logged

François Keller

  • Moderator
  • Coppermine addict
  • ****
  • Country: fr
  • Offline Offline
  • Gender: Male
  • Posts: 9094
  • aka Frantz
    • Ma galerie
Re: CPG 1.4.25 - MOD-HACK Enregistrement des recherches
« Reply #3 on: August 17, 2009, 01:58:15 pm »

seuls les modérateurs peuvent éditer les sujets.
Merci pour ce partage ( je n'ai pas regardé de près encore)
ce qui serait interressant serait de voir si il n'est pas possible de faire un plugin plutot qu'un Mod, ce serait plus simple au moment des mises à jour
Logged
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog
Pages: [1]   Go Up
 

Page created in 0.019 seconds with 19 queries.