Coppermine Gallery – úprava klíčových slov

01.06.2009 | 203 přečtení Zanechte komentář Přejít na komentáře
Coppermine Gallery

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:

1
if (!defined('IN_COPPERMINE')) { die('Not in Coppermine...');}

za tento řádek vložte následující text:

1
2
3
4
5
6
7
8
9
10
11
//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:

48
49
50
51
52
53
54
55
56
57
58
   // Result to table
  echo '<tr><td class="tableb">' ;
.
.
.
.
.
.
.
.
  echo "</td></tr>" ;

a vše co je mezi nimi nahraďte následujícím kódem:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
    //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 .=  " | <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 special 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, $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 .= "<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($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 "<br>";
echo $special_html;
echo $html;
echo "<br>";

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.

  • Top Články.cz
  • Bookmarky.cz
  • Facebook
  • Google Bookmarks
  • Jaggni to!
  • Linkuj.cz!
  • MediaBlog.cz
  • MojeLinky.sk
  • TOPodkazy.cz
  • vybrali.sme.sk
  • del.icio.us
  • Digg
  • PDF
  • email
1 bod2 body3 body4 body5 bodů (1 hlasů, průměr: 5.00 z 5)

Ukládám ... Ukládám ...
  1. chroust
    06.06.2009 na 10:25 | #1

    Rovnou jsem si stál celý soubor a funguje výtečně.
    Díky

  2. 05.06.2009 na 07:23 | #2

    @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

  3. 05.06.2009 na 07:08 | #3

    @chroust
    Ahoj, koukam, ze jsem v radku 6 mel chybu. Uz je to opraveno a melo by to byt v poradku.

  4. chroust
    04.06.2009 na 19:32 | #4

    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 ')' in
    v 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