diff --git a/serendipity_event_freetag/.htaccess b/serendipity_event_freetag/.htaccess
new file mode 100644
index 00000000..a88a85c7
--- /dev/null
+++ b/serendipity_event_freetag/.htaccess
@@ -0,0 +1,7 @@
+{$head_subtitle}
+ {foreach from=$entries item="dategroup"}
+ {foreach from=$dategroup.entries item="entry"}
+
+
{$CONST.NO_ENTRIES_TO_PRINT}
+ {/if} +{/foreach} + +--- OLD CODE END and keep--- + +{/if}{* not taglist end *} + +--- OLD CODE FOOTER INFO START and keep --- + +{if $footer_info or $footer_prev_page or $footer_next_page} + *** inside CODE *** +{/if} + +--- OLD CODE FOOTER INFO END and keep --- + + {serendipity_hookPlugin hook="entries_footer"} diff --git a/serendipity_event_freetag/UTF-8/documentation_cs.html b/serendipity_event_freetag/UTF-8/documentation_cs.html deleted file mode 100644 index e75c927e..00000000 --- a/serendipity_event_freetag/UTF-8/documentation_cs.html +++ /dev/null @@ -1,354 +0,0 @@ - - - -Dokumentaci k tomuto pluginu přeložil do češtiny Vladimír Ajgl (vlada [zavinac] ajgl [tecka] cz) a naposledy zkontroloval dne 20.4.2013. 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. -
- -
-Umožňuje libovolné přidávání klíčových slov k příspěvkům -
- -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']) - ); -} -?> - -- - -
Dokumentaci k tomuto pluginu přeložil do češtiny Vladimír Ajgl (vlada [zavinac] ajgl [tecka] cz) a naposledy zkontroloval dne 20.4.2013. 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. -
- -
-Umožňuje libovolné přidávání klíčových slov k příspěvkům -
- -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']) - ); -} -?> - -- - -
+ +
The following code illustrates on how to change your templates entries.tpl file (all + lines, without '+ '):
+ ++{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}← {$CONST.PREVIOUS_PAGE}{else} {/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} →{else} {/if}{if $footer_next_page}</a>{/if}</li> + </ul> + </nav> +{/if} + {serendipity_hookPlugin hook="entries_footer"} ++ +
+
+ +
The following code illustrates on how to change your templates entries.tpl file (all + lines, without '+ '):
+ ++{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}← {$CONST.PREVIOUS_PAGE}{else} {/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} →{else} {/if}{if $footer_next_page}</a>{/if}</li> + </ul> + </nav> +{/if} + {serendipity_hookPlugin hook="entries_footer"} ++ +
+
Documentary added by Ian on 2014-09-27. Informations given in The most current README, and older README.txt a and the most current ChangeLog file. + +
When using extended smarty output, the following code illustrates how the smarty-variables could be used when dropped into the 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} ++ +
+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; ++ +
[quoted from: http://pixelated-dreams.com/archives/229-Spring-Cleaning.html]
+ ++<?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']) + ); +}+ +
+ +
The following code illustrates on how to change your templates entries.tpl file (all + lines, without '+ '):
+ ++{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}← {$CONST.PREVIOUS_PAGE}{else} {/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} →{else} {/if}{if $footer_next_page}</a>{/if}</li> + </ul> + </nav> +{/if} + {serendipity_hookPlugin hook="entries_footer"} ++ +
+ + + \ No newline at end of file diff --git a/serendipity_event_freetag/lang_de.inc.php b/serendipity_event_freetag/lang_de.inc.php index ced50d2e..8937f746 100644 --- a/serendipity_event_freetag/lang_de.inc.php +++ b/serendipity_event_freetag/lang_de.inc.php @@ -1,4 +1,4 @@ -add('name', PLUGIN_EVENT_FREETAG_TITLE); $propbag->add('description', PLUGIN_EVENT_FREETAG_DESC); $propbag->add('stackable', false); - $propbag->add('author', 'Garvin Hicking, Jonathan Arkell, Grischa Brockhaus, Lars Strojny, Malte Paskuda'); + $propbag->add('author', 'Garvin Hicking, Jonathan Arkell, Grischa Brockhaus, Lars Strojny, Malte Paskuda, Ian'); $propbag->add('requirements', array( 'serendipity' => '0.8', 'smarty' => '2.6.7', 'php' => '4.1.0' )); - $propbag->add('version', '3.57'); + $propbag->add('version', '3.58'); $propbag->add('event_hooks', array( 'frontend_fetchentries' => true, 'frontend_fetchentry' => true, @@ -103,7 +103,7 @@ class serendipity_event_freetag extends serendipity_event $propbag->add('groups', array('BACKEND_EDITOR')); $this->supported_properties = array('freetag_name', 'freetag_tagList'); $this->dependencies = array('serendipity_plugin_freetag' => 'keep'); - $propbag->add('configuration', array('cat2tag', 'keyword2tag', 'taglink', 'embed_footer', 'extended_smarty', 'show_tagcloud', 'min_percent', 'max_percent', 'max_tags', 'use_flash', 'flash_tag_color', 'flash_bg_trans', 'flash_bg_color', 'flash_width', 'flash_speed', 'meta_keywords', 'show_related', 'show_related_count', 'lowercase_tags', 'collation', 'send_http_header', 'admin_show_taglist', 'admin_ftayt', 'technorati_tag_link', 'technorati_tag_image')); + $propbag->add('configuration', array('cat2tag', 'keyword2tag', 'taglink', 'taglist', 'embed_footer', 'extended_smarty', 'show_tagcloud', 'min_percent', 'max_percent', 'max_tags', 'use_flash', 'flash_tag_color', 'flash_bg_trans', 'flash_bg_color', 'flash_width', 'flash_speed', 'meta_keywords', 'show_related', 'show_related_count', 'lowercase_tags', 'collation', 'send_http_header', 'admin_show_taglist', 'admin_ftayt', 'technorati_tag_link', 'technorati_tag_image')); } function introspect_config_item($name, &$propbag) { @@ -143,16 +143,23 @@ class serendipity_event_freetag extends serendipity_event break; case 'extended_smarty': - $propbag->add('type', 'boolean'); + $propbag->add('type', 'boolean'); $propbag->add('name', PLUGIN_EVENT_FREETAG_EXTENDED_SMARTY); $propbag->add('description', PLUGIN_EVENT_FREETAG_EXTENDED_SMARTY_DESC); $propbag->add('default', false); break; + case 'taglist': + $propbag->add('type', 'boolean'); + $propbag->add('name', PLUGIN_EVENT_FREETAG_TAGSASLIST); + $propbag->add('description', PLUGIN_EVENT_FREETAG_TAGSASLIST_DESC); + $propbag->add('default', false); + break; + case 'taglink': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_EVENT_FREETAG_TAGLINK); - $propbag->add('description', ''); + $propbag->add('description', PLUGIN_EVENT_FREETAG_TAGLINK_DESC); $propbag->add('default', $serendipity['baseURL'] . ($serendipity['rewrite'] == 'none' ? $serendipity['indexFile'] . '?/' : '') . 'plugin/tag/'); break; @@ -192,17 +199,17 @@ class serendipity_event_freetag extends serendipity_event break; case 'show_related': - $propbag->add('type', 'boolean'); - $propbag->add('name', PLUGIN_EVENT_FREETAG_SHOW_RELATED); - $propbag->add('description', ''); - $propbag->add('default', true); + $propbag->add('type', 'boolean'); + $propbag->add('name', PLUGIN_EVENT_FREETAG_SHOW_RELATED); + $propbag->add('description', ''); + $propbag->add('default', true); break; case 'show_related_count': - $propbag->add('type', 'string'); - $propbag->add('name', PLUGIN_EVENT_FREETAG_SHOW_RELATED_COUNT); - $propbag->add('description', ''); - $propbag->add('default', '5'); + $propbag->add('type', 'string'); + $propbag->add('name', PLUGIN_EVENT_FREETAG_SHOW_RELATED_COUNT); + $propbag->add('description', ''); + $propbag->add('default', '5'); break; case 'lowercase_tags': @@ -302,7 +309,7 @@ class serendipity_event_freetag extends serendipity_event $q = "select count(tag) from {$serendipity['dbPrefix']}" . $table; $row = serendipity_db_query($q, true, 'num'); - if (!is_numeric($row[0])) { // if the response we got back was an SQL error.. :P + if (!is_numeric($row[0])) { // if the response we got back was an SQL error.. :P return false; } else { return true; @@ -312,7 +319,7 @@ class serendipity_event_freetag extends serendipity_event static function upgradeFromVersion1() { global $serendipity; - $q = "select count(*) from {$serendipity['dbPrefix']}entryproperties where property = 'ep_freetag_name'"; + $q = "SELECT count(*) FROM {$serendipity['dbPrefix']}entryproperties WHERE property = 'ep_freetag_name'"; $result = serendipity_db_query($q); if ((int)$result[0] > 0) { @@ -325,7 +332,7 @@ class serendipity_event_freetag extends serendipity_event static function convertEntryPropertiesTags() { global $serendipity; - $q = "select entryid, value from {$serendipity['dbPrefix']}entryproperties where property = 'ep_freetag_name'"; + $q = "SELECT entryid, value FROM {$serendipity['dbPrefix']}entryproperties WHERE property = 'ep_freetag_name'"; $result = serendipity_db_query($q); if (!is_array($result)) { @@ -340,7 +347,7 @@ class serendipity_event_freetag extends serendipity_event echo '