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: [MOD/HACK] Recherchez de 0-9-é, et de A à Z (KEYWORD.INC.PHP)  (Read 9711 times)

0 Members and 1 Guest are viewing this topic.

Pascal YAP

  • Moderator
  • Coppermine addict
  • ****
  • Country: fr
  • Offline Offline
  • Gender: Male
  • Posts: 13833
  • Hello World :-)
    • CPG 1.5.x ExperiMental website

Bonjour,

   Pour les Galeries Coppermine qui possèdent, comme la mienne, un nombre important de Mots-Clefs, voici une alternative très pratique.
Ma Galerie possède au moins 4000 mots-clefs, et par le fait, la lecture de la page "RECHERCHEZ" était très inconfortable, voire impossible, sauf pour les Moteurs de Recherches !

   Dans votre-CPG/INCLUDE/ remplacez le fichier KEYWORD.INC.PHP par le code suivant (conservez le fichier d'origine sur votre serveur par exemple en le renommant Keyword.inc.php_ORI pour un retour instantané en cas de problème)

Code: [Select]
<?php
/*************************
  Coppermine Photo Gallery
  ************************
  Copyright (c) 2003-2006 Coppermine Dev Team
  v1.1 originally written by Gregory DEMAR

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2 of the License, or
  (at your option) any later version.
  ********************************************
  Coppermine version: 1.4.5
  $Source: /cvsroot/coppermine/stable/include/keyword.inc.php,v $
  $Revision: 1.6 $
  $Author: gaugau, Stramm, PYAP $
  $Date: 2007/07/29 23:40:41 $
**********************************************/

if (!defined('IN_COPPERMINE')) { die('Not in Coppermine...');}
//mod indexed keaywords
define("DELIMITER"" | "); // Séparation entre les mots-clefs
function spacer($w$n)
{
for ($i 1$i <= $n$i++)
{
$index .= DELIMITER chr((ord($w)) + $i);
}
return $index;
}
// ADDED KEYWORDS FUNCTIONALITY A-Z in French by PYAP.
$result cpg_db_query("select keywords FROM {$CONFIG['TABLE_PICTURES']} WHERE keywords <> '' $ALBUM_SET");
if (
mysql_num_rows($result)) {
  
// Grab all keywords
  
print '<br />';
  
starttable("100%"$lang_search_php['keyword_list_title']);
  
// Find unique keywords
  
$keywords_array = array();
  while (list(
$keywords) = mysql_fetch_row($result)) {
      
$array explode(" ",$keywords);
      foreach(
$array as $word)
      {
       if (!
in_array($word utf_strtolower($word),$keywords_array)) $keywords_array[] = $word;;
      }
  }
// Sort selected keywords
  
sort($keywords_array);
  
$count count($keywords_array);
// Result to table
  
echo '<tr><td class="tableb" align="justify"><p align="justify"><font size="+1">' // Aspect des résultats de la recherche.
//mod indexed keywords
$oldword "";
$html="";
$special_html="";
$index_list="";
$special="FALSE";
foreach(
$keywords_array as $key)
{
$word strtoupper(substr($key01));
if (($word "A" or $word >"Z")) {
if ($special=="FALSE") { // if we do not have it in the index and special exits
$index_list .=  "<b><u><a href=\"#1-9\">1-9</a></u></b>";
$special_html .= "<br><br><a name=\"1-9\"></a><b>1-9/é</b><br>"// container for 1-9 and accentuated chars
}
$special="TRUE"//we have special now in the index
$special_html .= "<a href=\"thumbnails.php?album=search&search=".$key."\">$key</a> ";
$special_html .= DELIMITER;
} else { // index and keywords a-z
$next strncasecmp($word$oldword1); // compare this first letter with the first letter of the next keyword
if ($next 0// next keaywords first letter <> this keywords first letter
{
$index_list .= spacer($oldword, --$next); // add the non linked 'spacer' letters 
if (strlen($html) >= strlen(DELIMITER)) $html substr($html,0,(strlen($html)-strlen(DELIMITER))); // remove trailing delimiter 
$html .= "<br><br><a name=\"{$word}\"></a><b>{$word}</b><br>"//add the first letter as header to the html
$index_list .=  DELIMITER "<b><u><a href=\"#{$word}\">{$word}</a></u></b>";
$oldword $word;
}
$html .= "<a href=\"thumbnails.php?album=search&search=".$key."\">{$key}</a>" DELIMITER;
 }
}
if (
strlen($html) >= strlen(DELIMITER)) $html substr($html,0,(strlen($html)-strlen(DELIMITER)));
$index_list .= spacer($oldwordstrncasecmp("Z"$word1));
$special_html substr($special_html,0,strlen($special_html)-strlen(DELIMITER));
if (
strlen($special_html)==0$index_list "1-9"$index_list;
echo 
$index_list;
echo 
"<br>";
echo 
$special_html;
echo 
$html;
echo 
"<br>";
  echo 
"</td></tr>" ;
  if (
GALLERY_ADMIN_MODE == true){
    
$url basename($_SERVER['PHP_SELF']);
    if (
$url != "keywordmgr.php"){
    echo 
'<tr><td class="tableb" align="center">';
    echo 
'<a href="keywordmgr.php" class="admin_menu">Edit Keywords</a>';
    echo 
"</td></tr>" ;
    }
  } else {
    echo 
'<tr><td class="tableb" align="center">';
    echo 
$lang_search_php['keyword_msg'];
    echo 
"</td></tr>" ;
  }
  
endtable();
}
ob_end_flush();
?>

Exemple perso : I C I .

PYAP
(http://forum.coppermine-gallery.net/index.php?action=dlattach;topic=45710.0;attach=7975;image)
(fully based on a Stramm mod)
« Last Edit: July 30, 2007, 08:59:52 am by PYAP »
Logged

François Keller

  • Moderator
  • Coppermine addict
  • ****
  • Country: fr
  • Offline Offline
  • Gender: Male
  • Posts: 9094
  • aka Frantz
    • Ma galerie
Re: [MOD/HACK] Recherchez de 0-9-é, et de A à Z (KEYWORD.INC.PHP)
« Reply #1 on: July 30, 2007, 07:47:57 am »

Hey, encore une bonne idée...  ;)
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

kad75

  • Coppermine regular visitor
  • **
  • Offline Offline
  • Posts: 61
    • Shootnews
Re: [MOD/HACK] Recherchez de 0-9-é, et de A à Z (KEYWORD.INC.PHP)
« Reply #2 on: September 09, 2007, 03:47:30 pm »


Bonjour Pyap,

Bravo pour cette alternative.
Cependant, je posséde comme beaucoup un nombre important de mots-clefs et l'affichage de la page "Recherche" est très très ... long.

Comment faire pour que s'affiche juste les lettres sans les mots clefs en dessous.
Lorsque le membre clique sur une lettre, les mots clefs en rapport avec cette lettre s'affiche en dessous.
Cela permet d'avoir une liste importante de mots sans surcharger le serveur.
En résumé, il faut juste faire une sorte de pagination comme pour un lexique.

Exemple avec le site Annuaire TV:
http://annuaire.audiencestv.com/top_kw-n1-_.html

Si la mise en place est difficile, je peux te rémunérer.

Bien cordialement,
Kad 75
Logged

sanlogik

  • Coppermine frequent poster
  • ***
  • Country: 00
  • Offline Offline
  • Posts: 209
Re: [MOD/HACK] Recherchez de 0-9-é, et de A à Z (KEYWORD.INC.PHP)
« Reply #3 on: March 25, 2008, 09:18:33 am »

ah oui... c'est pas mal ça aussi :)
je n'ai pas encore activé les mots clés dans la recherche car c'est encore trop le foutoir, mais c'est clair que ce sera bien mieux présenté comme ça ^^
Logged
Pages: [1]   Go Up
 

Page created in 0.021 seconds with 19 queries.