277 lines
14 KiB
HTML
277 lines
14 KiB
HTML
<html>
|
|
<head>
|
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
<title>Documentation: Freetag</title>
|
|
<style>
|
|
pre {
|
|
display: block;
|
|
padding: 5px;
|
|
border: solid 1px #333;
|
|
background-color: #ddd;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<h1>Documentation of the Freetag event plugin<br />
|
|
<small>(serendipity_event_freetag)</small></h1>
|
|
|
|
<p>Documentary added by Ian on 2014-09-27. Informations given in <a href="README">The most current README</a>, <a href="README.txt"> and older README.txt</a> a <a href="ChangeLog">and the most current ChangeLog file</a>.
|
|
|
|
<h2>Scripting changes by options</h2>
|
|
|
|
<h3>Option: Extendet Smarty</h3>
|
|
|
|
<p>When using extended smarty output, the following code illustrates how the smarty-variables could be used when dropped into the entries.tpl:
|
|
|
|
<pre class="prettyprint linenums lang-php " data-pbcklang="php" data-pbcktabsize="4">
|
|
{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}
|
|
</pre>
|
|
|
|
<h3>Using this subquery you can convert existing categories to tags:</h3>
|
|
|
|
<pre class="prettyprint linenums lang-sql " data-pbcklang="sql" data-pbcktabsize="4">
|
|
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;
|
|
</pre>
|
|
|
|
<p>[quoted from: http://pixelated-dreams.com/archives/229-Spring-Cleaning.html]</p>
|
|
|
|
<h3>Or using this script you can convert existing categories to tags:</h3>
|
|
|
|
<pre class="prettyprint linenums lang-php " data-pbcklang="php" data-pbcktabsize="4">
|
|
<?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'])
|
|
);
|
|
}</pre>
|
|
|
|
<p> </p>
|
|
|
|
<h3>Option: Tags-as-list</h3>
|
|
|
|
<p>The following code illustrates on how to change your templates entries.tpl file (all + lines, without '+ '):</p>
|
|
|
|
<pre class="prettyprint linenums lang-html " data-pbcklang="html" data-pbcktabsize="4">
|
|
{serendipity_hookPlugin hook="entries_header" addData="$entry_id"}
|
|
+ {if $taglist}
|
|
+ <article id="taglistentries" class="clearfix serendipity_entry">
|
|
+ <div class="clearfix content serendipity_entry_body">
|
|
+ <h2>{$head_subtitle}</h2>
|
|
+ {foreach from=$entries item="dategroup"}
|
|
+ {foreach from=$dategroup.entries item="entry"}
|
|
+
|
|
+ <div class="static-entries-list">
|
|
+ ({$dategroup.date|date_format:"%d.%m.%Y"}) <a href="{$entry.link}">{$entry.title|default:$entry.id}</a>
|
|
+ </div>
|
|
+
|
|
+ {/foreach}
|
|
+ {/foreach}
|
|
+
|
|
+ </div>
|
|
+ </article>
|
|
+
|
|
+ {else}
|
|
+
|
|
{foreach from=$entries item="dategroup"}
|
|
{foreach from=$dategroup.entries item="entry"}
|
|
{assign var="entry" value=$entry scope="parent"}
|
|
<article id="post_{$entry.id}" class="clearfix serendipity_entry{if $dategroup.is_sticky} sticky{/if}">
|
|
<header class="clearfix">
|
|
|
|
<h2><a href="{$entry.link}">{$entry.title}</a></h2>
|
|
|
|
<span class="serendipity_byline block_level"><span class="single_user">{$CONST.POSTED_BY} <a href="{$entry.link_author}">{$entry.author}</a> {$CONST.ON} </span><time datetime="{$entry.timestamp|@serendipity_html5time}">{$entry.timestamp|@formatTime:$template_option.date_format}</time>{if $entry.is_entry_owner and not $is_preview} | <a href="{$entry.link_edit}">{$CONST.EDIT_ENTRY}</a>{/if}</span>
|
|
</header>
|
|
|
|
<div class="clearfix content serendipity_entry_body">
|
|
{if $entry.categories}{foreach from=$entry.categories item="entry_category"}{if $entry_category.category_icon}<a href="{$entry_category.category_link}"><img class="serendipity_entryIcon" title="{$entry_category.category_name|@escape}{$entry_category.category_description|@emptyPrefix}" alt="{$entry_category.category_name|@escape}" src="{$entry_category.category_icon}"></a>{/if}{/foreach}{/if}
|
|
{$entry.body}
|
|
{if $entry.has_extended and not $is_single_entry and not $entry.is_extended}
|
|
<a class="read_more block_level" href="{$entry.link}#extended">{$CONST.VIEW_EXTENDED_ENTRY|@sprintf:$entry.title}</a>
|
|
{/if}
|
|
</div>
|
|
{if $entry.is_extended}
|
|
<div id="extended" class="clearfix content">
|
|
{$entry.extended}
|
|
</div>
|
|
{/if}
|
|
{if $entry.plugin_display_dat}
|
|
{$entry.plugin_display_dat}
|
|
{/if}
|
|
|
|
<footer class="clearfix">
|
|
{if $entry.categories}
|
|
<span class="visuallyhidden">{$CONST.CATEGORIES}: </span>{foreach from=$entry.categories item="entry_category" name="categories"}<a href="{$entry_category.category_link}">{$entry_category.category_name|@escape}</a>{if not $smarty.foreach.categories.last}, {/if}{/foreach}
|
|
{/if}
|
|
{if $entry.categories and ($entry.has_comments or $entry.has_disqus)} | {/if}
|
|
{if ($entry.has_comments or $entry.has_disqus)}
|
|
{if $entry.has_disqus }
|
|
{$entry.comments}{if $entry.has_trackbacks}, <a href="{$entry.link}#trackbacks">{$entry.trackbacks} {$entry.label_trackbacks}</a>{/if}
|
|
{else}
|
|
<a href="{$entry.link}#comments" title="{$entry.comments} {$entry.label_comments}{if $entry.has_trackbacks}, {$entry.trackbacks} {$entry.label_trackbacks}{/if}">{$entry.comments} {$entry.label_comments}</a>
|
|
{/if}
|
|
{/if}
|
|
{if $entry.url_tweetthis}
|
|
| <a href="{$entry.url_tweetthis}" title="{$CONST.TWOK11_TWEET_THIS}">Twitter</a>
|
|
{/if}
|
|
{if $entry.url_dentthis}
|
|
| <a href="{$entry.url_dentthis}" title="{$CONST.TWOK11_DENT_THIS}">Identica</a>
|
|
{/if}
|
|
{if $entry.url_shorturl}
|
|
| <a href="{$entry.url_shorturl}" title="{$CONST.TWOK11_SHORT_URL_HINT}" class="short-url">{$CONST.TWOK11_SHORT_URL}</a>
|
|
{/if}
|
|
{$entry.add_footer}
|
|
</footer>
|
|
|
|
<!--
|
|
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
|
|
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
|
<rdf:Description
|
|
rdf:about="{$entry.link_rdf}"
|
|
trackback:ping="{$entry.link_trackback}"
|
|
dc:title="{$entry.title_rdf|@default:$entry.title}"
|
|
dc:identifier="{$entry.rdf_ident}" />
|
|
</rdf:RDF>
|
|
-->
|
|
|
|
{if $is_single_entry and not $is_preview}
|
|
{if $CONST.DATA_UNSUBSCRIBED}
|
|
<p class="serendipity_msg_notice">{$CONST.DATA_UNSUBSCRIBED|@sprintf:$CONST.UNSUBSCRIBE_OK}</p>
|
|
{/if}
|
|
{if $CONST.DATA_TRACKBACK_DELETED}
|
|
<p class="serendipity_msg_notice">{$CONST.DATA_TRACKBACK_DELETED|@sprintf:$CONST.TRACKBACK_DELETED}</p>
|
|
{/if}
|
|
{if $CONST.DATA_TRACKBACK_APPROVED}
|
|
<p class="serendipity_msg_notice">{$CONST.DATA_TRACKBACK_APPROVED|@sprintf:$CONST.TRACKBACK_APPROVED}</p>
|
|
{/if}
|
|
{if $CONST.DATA_COMMENT_DELETED}
|
|
<p class="serendipity_msg_notice">{$CONST.DATA_COMMENT_DELETED|@sprintf:$CONST.COMMENT_DELETED}</p>
|
|
{/if}
|
|
{if $CONST.DATA_COMMENT_APPROVED}
|
|
<p class="serendipity_msg_notice">{$CONST.DATA_COMMENT_APPROVED|@sprintf:$CONST.COMMENT_APPROVED}</p>
|
|
{/if}
|
|
|
|
<section id="trackbacks" class="serendipity_comments serendipity_section_trackbacks">
|
|
<h3>{$CONST.TRACKBACKS}</h3>
|
|
|
|
<div id="trackback_url" class="block_level"><a rel="nofollow" href="{$entry.link_trackback}" title="{$CONST.TRACKBACK_SPECIFIC_ON_CLICK|@escape}">{$CONST.TRACKBACK_SPECIFIC}</a></div>
|
|
|
|
{serendipity_printTrackbacks entry=$entry.id}
|
|
</section>
|
|
|
|
<section id="comments" class="serendipity_comments serendipity_section_comments">
|
|
<h3>{$CONST.COMMENTS}</h3>
|
|
|
|
<p class="manage_comments">{$CONST.DISPLAY_COMMENTS_AS}
|
|
{if $entry.viewmode eq $CONST.VIEWMODE_LINEAR}
|
|
{$CONST.COMMENTS_VIEWMODE_LINEAR} | <a href="{$entry.link_viewmode_threaded}#comments" rel="nofollow">{$CONST.COMMENTS_VIEWMODE_THREADED}</a>
|
|
{else}
|
|
<a rel="nofollow" href="{$entry.link_viewmode_linear}#comments">{$CONST.COMMENTS_VIEWMODE_LINEAR}</a> | {$CONST.COMMENTS_VIEWMODE_THREADED}
|
|
{/if}
|
|
</p>
|
|
|
|
{serendipity_printComments entry=$entry.id mode=$entry.viewmode}
|
|
{if $entry.is_entry_owner}
|
|
<p class="manage_comments">
|
|
{if $entry.allow_comments}
|
|
<a href="{$entry.link_deny_comments}">{$CONST.COMMENTS_DISABLE}</a>
|
|
{else}
|
|
<a href="{$entry.link_allow_comments}">{$CONST.COMMENTS_ENABLE}</a>
|
|
{/if}
|
|
</p>
|
|
{/if}
|
|
</section>
|
|
<a id="feedback"></a>
|
|
{foreach from=$comments_messagestack item="message"}
|
|
<p class="serendipity_msg_important">{$message}</p>
|
|
{/foreach}
|
|
{if $is_comment_added}
|
|
<p class="serendipity_msg_notice">{$CONST.COMMENT_ADDED}</p>
|
|
{elseif $is_comment_moderate}
|
|
<p class="serendipity_msg_notice">{$CONST.COMMENT_ADDED}: {$CONST.THIS_COMMENT_NEEDS_REVIEW}</p>
|
|
{elseif not $entry.allow_comments}
|
|
<p class="serendipity_msg_important">{$CONST.COMMENTS_CLOSED}</p>
|
|
{/if}
|
|
<section id="respond" class="serendipity_section_commentform">
|
|
<h3>{$CONST.ADD_COMMENT}</h3>
|
|
{$COMMENTFORM}
|
|
</section>
|
|
|
|
{/if}
|
|
{$entry.backend_preview}
|
|
</article>
|
|
{/foreach}
|
|
{foreachelse}
|
|
{if not $plugin_clean_page}
|
|
<p class="nocontent">{$CONST.NO_ENTRIES_TO_PRINT}</p>
|
|
{/if}
|
|
{/foreach}
|
|
+
|
|
+ {/if}{* not taglist end *}
|
|
+
|
|
{if $footer_info or $footer_prev_page or $footer_next_page}
|
|
<nav class="serendipity_pagination block_level">
|
|
<h2 class="visuallyhidden">{$CONST.TWOK11_PAG_TITLE}</h2>
|
|
|
|
<ul class="clearfix">
|
|
{if $footer_info}
|
|
<li class="info"><span>{$footer_info}</span></li>
|
|
{/if}
|
|
<li class="prev">{if $footer_prev_page}<a href="{$footer_prev_page}">{/if}{if $footer_prev_page}&larr; {$CONST.PREVIOUS_PAGE}{else}&nbsp;{/if}{if $footer_prev_page}</a>{/if}</li>
|
|
<li class="next">{if $footer_next_page}<a href="{$footer_next_page}">{/if}{if $footer_next_page}{$CONST.NEXT_PAGE} &rarr;{else}&nbsp;{/if}{if $footer_next_page}</a>{/if}</li>
|
|
</ul>
|
|
</nav>
|
|
{/if}
|
|
{serendipity_hookPlugin hook="entries_footer"}
|
|
</pre>
|
|
|
|
<p> </p>
|
|
|
|
</body>
|
|
</html> |