Dokumentace k pluginu 'Freetag'

Dokumentaci k tomuto pluginu přeložil do češtiny Vladimír Ajgl (vlada [zavinac] ajgl [tecka] cz) dne 5.7.2011. Od té doby mohl být plugin pozměněn nebo mohly být rozšířené jeho funkce. Zkontrolujte pro jistotu i aktuální anglické "README", "README.txt" a ChangeLog.

Následující kód ukazuje příklad, jak použít rozšířený výstup do smarty šablony. Takto může například vypadat šablona "entries.tpl"

{if isset($entry.freetag.extended) && $entry.freetag.extended == 1}
	{if $entry.freetag.tags.tags}
		<div class="serendipity_freeTag">{$entry.freetag.tags.description}
			{foreach from=$entry.freetag.tags.tags item="tag"}
				{$tag}
			{/foreach}
		</div>
	
		{if $is_single_entry or $is_preview}
			{$entry.freetag.related.description}
			<ul class="serendipity_freeTag_related">
			{foreach from=$entry.freetag.related.entries item="link"}
				<li>{$link}</li>
			{/foreach}
			</ul>
		{/if}
	{/if}
{else}
	{$entry.freetag}
{/if}

Pomocí následujícího sql dotazu můžete v databázi vytvořit tagy z existujících kategorií:

INSERT INTO serendipity_entrytags (entryid, tag) 
  SELECT serendipity_entries.id, serendipity_category.category_name 
    FROM serendipity_entries, serendipity_category, serendipity_entrycat 
   WHERE serendipity_entrycat.entryid = serendipity_entries.id 
     AND serendipity_category.categoryid = serendipity_entrycat.categoryid;
(převzato z http://pixelated-dreams.com/archives/229-Spring-Cleaning.html)

A nebo můžete pro vytvoření tagů z kategorií použít následující skript:

<?php
include 'serendipity_config.inc.php';

$rows = serendipity_db_query("SELECT e.id, e.title, c.category_name
                                FROM {$serendipity['dbPrefix']}entries AS e
                                JOIN {$serendipity['dbPrefix']}entrycat AS ec
                                  ON ec.entryid = e.id
                                JOIN {$serendipity['dbPrefix']}category AS c
                                  ON ec.categoryid = c.categoryid");

foreach($rows AS $row) {
    serendipity_db_query(
        sprintf(
            "REPLACE INTO {$serendipity['dbPrefix']}entrytags (entryid, tag) VALUES (%d, %s)",
            (int)$row['id'],
            serendipity_db_escape_string($row['category_name'])
        )
    );
    
    printf(
        "Category '%s' added as Tag for Entry #%d, '%s'<br />\n",
        htmlspecialchars($row['category_name']),
        (int)$row['id'],
        htmlspecialchars($row['title'])
    );
}
?>

Historie verzí (ChangeLog)