Coppermine Gallery – úprava klíčových slov
Klíčová slova jsou, alespoň podle mne, ve fotogalerii velice důležitá. Podle nich si můžete zobrazit fotografie, které vás zajímají dle daného klíčového slova. Sám se je snažím ve své fotogalerii co nejvíce využívat. Ale standardní zobrazení klíčových slov v Coppermine Gallery není to pravé ořechové.
Klíčová slova se řadí podle abecedy, ovšem je docela složité se v nich orientovat. Podíváme se na to, jak to upravit a lépe je zobrazit.
Klíčová slova a vyhledávání se nacházejí po kliknutí na Vyhledávání v menu galerie. Jejich zobrazení zajišťuje soubor keyword.inc.php v adresáři include vaší galerie.
Otevřte si tento soubor v textovém editoru a najděte řádek:
if (!defined('IN_COPPERMINE')) { die('Not in Coppermine...');}
za tento řádek vložte následující text:
//mod indexed keaywords
define("DELIMITER", " | ");
function spacer($w, $n)
{
for ($i = 1; $i <= $n; $i++)
{
$index .= DELIMITER . chr((ord($w)) + $i);
}
return $index;
}
Nyní nejděte řádky:
// Result to table echo '" ; ' ; . . . . . . . . echo "
a vše co je mezi nimi nahraďte následujícím kódem:
//mod indexed keywords
$oldword = "";
$html="";
$special_html="";
$index_list="";
$special="FALSE";
foreach($keywords_array as $key)
{
$word = strtoupper(substr($key, 0, 1));
if (($word < "A" or $word >"Z")) {
if ($special=="FALSE") { //if we do not have it in the index and special exits
$index_list .= " | 1-9";
$special_html .= "
1-9"; //container for 1-9 and special chars
}
$special="TRUE"; //we have special now in the index
$special_html .= "$key ";
$special_html .= DELIMITER;
} else { // index and keywords a-z
$next = strncasecmp($word, $oldword, 1); //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 .= "
{$word}"; //add the first letter as header to the html
$index_list .= DELIMITER . "{$word}";
$oldword = $word;
}
$html .= "{$key}" . DELIMITER;
}
}
if (strlen($html) >= strlen(DELIMITER)) $html = substr($html,0,(strlen($html)-strlen(DELIMITER)));
$index_list .= spacer($oldword, strncasecmp("Z", $word, 1));
$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 "";
echo $special_html;
echo $html;
echo "";
Uložte soubor a nakopírujte zpět místo původního. Nyní se vám budou zobrazovat klíčová slova tak jako v mé GALERII.











Rovnou jsem si stál celý soubor a funguje výtečně.
Díky
@chroust
Tak koukam, ze ten zapis mas v poradku. Pro jistotu jsem znovu prepsal cely kod, zkus ho, popripade si stahni cely soubor zde: http://www.fotostranky.org/temp/keyword.inc.zip
@chroust
Ahoj, koukam, ze jsem v radku 6 mel chybu. Uz je to opraveno a melo by to byt v poradku.
Zdar, jsem pravidelný čtenář tvých článků o coppermine gallery, které jsou pro mne poučné a inspirující. Také jsem použil návod na úpravu klíčových slov, ale vyhodilo mi to chybu:
syntax error, unexpected '=', expecting ')' inv tomto řádku:
for ($i = 1; $i <= $n; $i++)Zkoušel jsem laicky provést změny v zápisu, ale bezúspěšně. Mohu poprosit o pomoc?
Díky