====== BlogTNG Plugin ====== ---- plugin ---- description: A next generation blog plugin for DokuWiki author : Dokufreaks (previous authors: Gina Häußge, Michael Klier, Andreas Gohr) email : freaks@dokuwiki.org type : syntax, action, helper lastupdate : 2023-02-16 compatible : Hrun, Ponder Stibbons, Binky, Weatherwax, Anteater, Rincewind, Angua, Adora Belle depends : sqlite conflicts : similar : blog, discussion, tag tags : blog, discussion, tags, sqlite, !discontinued securitywarning: downloadurl: https://github.com/dokufreaks/plugin-blogtng/zipball/master bugtracker : https://github.com/dokufreaks/plugin-blogtng/issues sourcerepo : https://github.com/dokufreaks/plugin-blogtng ---- The BlogTNG integrates a powerful blogging engine into DokuWiki. It is meant as the successor of the original [[blog]] plugin. It contains all components that can be expected from a usual blog like, comments and tags. //**ORPHANED** the BlogTNG plugin and this documentation are not yet finished. However nobody is currently really working on the plugin anymore. There are people who might do a fix now and then but don't expect anything. If you want to adopt this plugin feel free to do so.// Note: on this page "entry" is a synonym of "blog post". ===== Download and Installation ===== Search and install the plugin using the [[plugin:extension|Extension Manager]]. Alternatively, refer to [[:Plugins]] on how to install plugins manually in ''dokuwiki/lib/plugins/blogtng''. ==== Dependencies ==== The next dependencies are required: - SQLite PHP Extension. On Debian systems install with e.g. aptitude install php7-sqlite - The helper plugin [[Sqlite]] ===== General Philosophy ===== ==== Relational database for metadata ==== BlogTNG uses the relational database system SQLite to store all metadata. Using a database (as do many other blogging packages, for example WordPress and Movable Type) provides very fast access to individual posts from display pages and indexes. Storing blog post creation dates in a database also provides the necessary infrastructure for importing blog posts from other systems. This is an improvement over the older [[plugin:blog|blog plugin]], which used filesystem timestamps to track creation dates. ==== Concept of blog ==== Every blogging system has a slightly different concept of blog. For the old blog plugin a blog consisted of all the DokuWiki pages in a given [[*:namespaces|namespace]], with each page being one post in the blog. With BlogTNG a post is again a DokuWiki page, but the organization is different. One creates a BlogTNG blog by creating a new entry [[#templates|template]]. Then any time any DokuWiki page is edited, the edit form provides a "Blog" drop-down menu that allows you to select any defined blog (or none, of course), to which you would like to add that page. A page/post can belong to at most one blog. A BlogTNG blog is thus just a set of pages, each of which can be displayed as a post. The pages can be anywhere within the hierarchy of namespaces. The namespace organization can be used, if you like, to separately categorize blog posts. Pages which display blog posts are again distinct from blogs. When it comes time to display, the very flexible BlogTNG [[#syntax]] allows you to merge streams of posts from multiple blogs, choose subsets based on tags, select different formats appropriate for the purpose at hand, and add related material such as comments. ===== Usage ===== After installing the BlogTNG plugin you are ready for use. It delivers a template ''default'' so you can try it, but you can create your own version for modifying the displayed content and layout. You create a blog entry by creating a wiki page. In the edit windows you got an extra toolbar, use it to set the desired blog, tags and commentstatus for this entry. When you did select a ''default'' blog for this page, you will see after saving the wiki page as entry, that is with navigation at the top, blog info and comments at the bottom. When you installed the [[Captcha]] plugin, it is applied in the comments section following its settings. Next you can use some '''' syntax that can be configured to show lists, tag clouds, comments and more. For example, you can add a list with condensed blog entries to a normal wiki page, that displays last created blog entries but only shows their abstract using the ''small'' template. To improve navigation in this overview navigation is added too. blog myblog, someotherblog, default cache 0 limit 6 blog myblog, someotherblog, default tpl small cache 0 sortby created limit 6 Another example is using a tagcloud. Firstly, you can add a tagcloud like: target page:tag Then in the target page, ie "page:tag", add the following to show blog lists in one tag. tpl small Now the tag cloud is shown, and when you click one tag, you will be redirected to the page listing all entries tagged with it. Please refer to [[#syntax]] section for explanation of the configuration details and the overview of other syntax possible. In the admin panel you reach via "Manage Blogs (BlogTNG)" an interface which shows you the last comments and blog entries with some shortcuts to modify them. Via the search bar you search for entries, comments and tags. The BlogTNG let you create a rss feed for your blog too. Please refer to the section [[#Customized RSS feed for the blog]]. For nice blog about starting with BlogTNG plugin see: [[http://blog.andreas-haerter.com/2011/05/15/how-to-create-a-dokuwiki-blog-blogtng-plugin|How to create a DokuWiki based blog]] by [[user>Andreas|Andreas]]. ===== Syntax ===== Most extra functions can be accessed via the '''' syntax. Within the '''' tags configuration options can be specified, one option per line. ==== ==== This is the most common syntax mode. It simply displays several entries from the wanted blog(s) using a ''*_list.php'' or ''*/list.php'' template file. Example: blog myblog, someotherblog tpl default cache 0 sortby created limit 6 Possible options: ^ Option ^ Default ^ Description ^ | blog | default | One or more blog names (comma separated) | | tpl | default | A ''list.php'' template file to use for displaying each post | | sortby | created | In what order your posts should be displayed. Can be ''created'', ''lastmod'', ''title'', ''page'' or ''random'' | | sortorder | DESC | In what order to sort the entries. Can be ''DESC'' or ''ASC'' | | limit | 5 | How many entries to display | | offset | 0 | Skip some entries from the start | | tags | OR | Only display entries matching certain combinations of tags (comma separated.) AND(+)/OR(default)/NOT(-) i.e. (''tags apps, +Windows, -iOS'') | | cache | 1 | Set to 0 to disable the cache (you usually want this) | | listwrap | 0 | Set to 1 if your template file contains list items that should be wrapped in
    tags | :!: **Attention:** make sure that the page containing the '''' syntax itself is not belonging to a blog (->empty value for the "Blog" select box). You will get a "blogtng: preventing infinite loop" error otherwise. ==== ==== This syntax add a pagination bar to your page. It should be used on the same page as a '''' call. Example: blog myblog, someotherblog Important: you need to specify the same blog and tag options as in the list call to make sure pagenumbers are calculated correctly. Possible options: ^ Option ^ Default ^ Description ^ | blog | default | One or more blog names (comma separated) | | tags | | Only display entries matching certain tags (comma separated) | | cache | 1 | Set to 0 to disable the cache | | limit | 5 | How many entries to display (should be equal to the limit in the list call)| ==== ==== Display a list of related blog entries. Example: blog myblog, someotherblog page myblog:a_post To find related posts, this tool compares the tags of all posts in the given blogs with a reference set. When you specify the ''tag'' option it uses the given tags from that. When you give a ''page'' option it will use the tags assigned to that page. If no page is given, the current one (e.g. the one where this call was placed) is used. ^ Option ^ Default ^ Description ^ | blog | default | One or more blog names (comma separated) | | tags | | Use these tags for finding related pages (comma separated) | | page | | Use this page to get reference tags | | limit | 5 | Set the number of related entries to list | | cache | 1 | Set to 0 to disable the cache | ==== ==== Inserts a form to create new blogposts. Example: title add a new page blog myblog format blog:%Y-%m-%d:%{title} The form will only be displayed if the currently logged in user has enough permissions to create the resulting blog page. Possible Options: ^ Option ^ Default ^ Description ^ | blog | default | One blog name to assign to the new entry | | title | | A title to display above the form | | format | | Defines how the new blog entry should be named | | select | | Optional, comma-separated list of entry titles the user has to select from. | | tags | | Optional, show input field for tags. Use ''?'' to prefill with configured default tags | | type | | Optional, show select for comment status. Use ''?'' to prefill with configured default comment status | For the ''format'' option you can use: ^ Placeholder ^ Description ^ |''%Y'' ''%m'' ''%d'' etc | Any [[phpfn>strftime]] format string| | ''%{user}'' | The login name of the currently logged in user | | ''%{title}'' | The blog title given in the form | ==== ==== List the most recent comments using one of the ''*_recentcomments.php'' or ''*/recentcomments.php'' template files. Example: blog myblog, otherblog tpl sometemplate limit 10 type comment, linkback listwrap 0 Possible Options: ^ Option ^ Default ^ Description ^ | blog | default | One or more blog names of which comments should be shown | | limit | 5 | Number of comments to be shown | | tpl | default | The template used to display a single comment | | type | | Comma separated list of comment types to be shown, if not set all are shown | | listwrap | 1 | Set to 0 if your template file does not contain list items | ==== ==== Display a tag cloud for one or more blogs. Example: blog myblog,otherblog limit 25 target somebloglisting:page Possible Options: ^ Option ^ Default ^ Description ^ | blog | default | One or more blog names of which tags should be shown | | limit | 25 | Number of tags to be shown | | target | | Wiki page which contains the listing syntax | ==== ==== List matching pages for one or more tags. Displayed one of the ''*_tagsearch.php'' or ''*/tagsearch.php'' template files for each entry in the result set. Example: tpl sometemplate tags android, symbian Possible Options: ^ Option ^ Default ^ Description ^ | tpl | default | The template file ''tagsearch.php'' for each entry in the result set | | tags | OR | Only display entries matching certain combinations of tags (comma separated.) AND(+)/OR(default)/NOT(-) i.e. (''tags apps, +Windows, -iOS'') | | blog | | Blog names (comma separated) | | sortby | created | In what order your posts should be displayed. Can be ''created'', ''lastmod'', ''title'', ''page'' or ''random'' | | sortorder | DESC | In what order to sort the entries. Can be ''DESC'' or ''ASC'' | | limit | 5 | How many entries to display | | offset | 0 | Skip some entries from the start | | cache | 1 | Set to 0 to disable the cache (you usually want this) | | listwrap ​ | 1 | Set to 0 if your template file does not contain list items | ====~~READMORE~~==== You may want to prevent displaying the whole content of long postings via ''''. Simply use the ''~~READMORE~~'' makro to split them, just insert ''~~READMORE~~'' where a "Read more..." link should appear. ==== Importing Blog Entries ==== === DokuWiki Blogging Suite === If you've been using the [[plugin:blog]] plugin (along with the plugins [[plugin:discussion]], [[plugin:tag]], [[plugin:linkback]]) you can use the [[https://github.com/michitux/dokuwiki-blogtng-import|blogtng import script]] to import your old blogs into the blogtng database. See: [[.:blogtng:importing|import your old blogs]]. ==== Customized RSS feed for the blog==== You can link through your blogs feed by adding options to DokuWiki's ''http://example.com/feed.php'' URL: * ''linkto=current'' (mandatory) * ''content=html'' (mandatory) * ''mode=blogtng'' (mandatory) * ''blog'' (mandatory) * Possible value(s): Every valid name of an existing blog, e.g. "default". * ''tags'' (optional) * Possible value(s): Comma separated list of tags. Only postings which are tagged with at least one of the submitted tags are listed. Examples: * ''http://example.com/feed.php?linkto=current&content=html&mode=blogtng&blog=default''\\ Get a feed with the postings of the blog "default". This should be sufficient for most use cases. * ''http://example.com/feed.php?linkto=current&content=html&mode=blogtng&blog=default&tags=foo''\\ Get a feed with the postings of the blog "default" which are tagged with "foo". * ''http://example.com/feed.php?linkto=current&content=html&mode=blogtng&blog=default&tags=foo,bar''\\ Get a feed with the postings of the blog "default" which are tagged with "foo" and/or "bar". Additionally, you should have a look at the following DokuWiki config options: * [[:config:rss_content]] * [[:config:rss_linkto]] * [[:config:rss_show_summary]] * [[:config:rss_type]] * [[:config:rss_update]] When as [[:config:rss_type|RSS type]] RSS 0.91 or RSS 2.0 are selected, the feed contains a referrer to the comment section too. ===== Templates ===== Template files, in ''lib/plugins/blogtng/tpl'', have three main functions: - A new //entry// template file triggers, as mentioned above, the creation of a new blog. - The template files specify the details of what blog content is displayed. For example by including or excluding ''%%$entry->tpl_created()%%'' in the entry template file, you control whether the creation date of a post is displayed. - The template files include class specifications on div tags in the HTML that allow you to format many aspects of the blog using CSS. These templates are specific to the blog-related parts of your DokuWiki installation. They are PHP files, similar in spirit to the main DokuWiki page [[devel:templates]]. Arbitrary HTML may be inserted in template files; all DokuWiki functions may be used; and specialized methods are provided to include specific blog-related content items (as in the ''%%$entry->tpl_created()%%'' example above; see [[#$entry]] below for details). A blog typically has several different kinds of displays. For example, the home page typically lists the most recent several blog posts, while following a permalink to one post usually displays a single post with more features (e.g. comments) than are shown on the home page. To a first approximation, BlogTNG manages each of these display types with a different template file. ===File structure=== The blogTNG recognizes two formats of template files. - Subfolder named after the template name * ''lib/plugins/blogtng/tpl'' * ''default'' * ''comments.php'' - comments below blog entry * ''entry.php'' - entry of blog (each version of this file creates a new blog) * ''feed.php'' - feed of blog * ''list.php'' - template file for '''' * ''recentcomments.php'' - template file for '''' * ''tagsearch.php'' - template file for '''' * '''' * ''.php'' e.g. ''entry.php'' * add here the files you like to modify - Files prefixed with template name * ''lib/plugins/blogtng/tpl'' * ''_.php'' e.g. ''example_entry.php'' * add here the files you like to modify Remarks: * To add a new blog in your wiki, you need to create an template file of the type **entry** e.g. ''/entry.php'' or ''_entry.php''. The other types don't create a new blog. * In the '''' syntax, you can use the template file of the type ''recentcomments'', ''tagsearch'' and ''list'' from every template you like (via the ''tpl'' option). You can create also custom type files with a '''' that is not (yet) a blog. * **Don't modify the ''default'' template files**, but create a first a copy and modify these! During a plugin update, modified files in the folder ''default'' can be overwritten with new content. There are five types of template files, described below. For each of these a default template file is provided in the folder ''default'' and described briefly here. Only the content produced by the ''default'' template is described here. For the HTML tags relevant to writing appropriate CSS, it is probably best just to try producing some sample pages and using a browser to view the page source. ==== entry.php ==== An entry template file is used to show a single entry. For example, following a permalink to a particular blog post will show a page specified by this template. The default template file provided, ''default/entry.php'', shows * navigation links to the previous and the next post * the post itself * a footer with creation and modification dates, the author, any tags and comments, and a form for adding a new comment ==== comments.php ==== A comments template file is used to display a single comment, usually in a list of comments. For example, the ''default/entry.php'' template file invokes a method ''%%$entry->tpl_comments()%%'', which in turn applies the ''default/comments.php'' template file once for each comment attached to the post. ''default/comments.php'' shows * a dokuwiki avatar icon for the person commenting * the comment number * the comment itself * the identity of the person commenting * the creation date of the comment ==== feed.php ==== A feed template file is used to specify the content included in an RSS feed of the blog. The template file is called once for each entry. The ''default/feed.php'' template file shows: * the body of the entry * the creation and last modification dates * the author * any tags ==== list.php ==== A list template file is used to display a single blog post, usually in a list of posts. For example if you use the [[#]] syntax below to specify a home page with the most recent 10 posts, the list template file would be applied once for each of the 10 posts. Use the ''tpl'' attribute to choose from which template. There are two sample list template files included in the distribution. The ''default/list.php'' template file shows * the body of the entry * a footer with * a permalink titled with the entry title * the creation date * the author * the number of comments and, if there are any, a link to them The ''small_list.php'' sample template file shows * the title of the entry * the comment count * a short abstract of the entry * a link to the full entry ==== recentcomments.php ==== When the [[#]] syntax is used to display just a list of comments, it is displayed using a recentcomments template file. Use the ''tpl'' attribute to choose from which template. The template file is used once for each comment. The ''default/recentcomments.php'' sample template file shows * a link to the blog post to which the comment applies; the link is labeled with the blog post title * the author of the comment * the creation date ====tagsearch.php==== This template file is used by the [[#]] syntax and use the ''tpl'' attribute to choose from which template. It is used to display a single entry in its list and is called multiple times (once for each shown entry) The ''default/tagsearch.php'' shows * page links * add a footer with info on tags. ===== Information available in template files ===== ==== $entry ==== The object ''$entry'' is available in the template files: ''entry.php'', ''feed.php'', ''list.php'', ''recentcomments.php'' and ''tagsearch.php''. The [[https://github.com/dokufreaks/plugin-blogtng/blob/master/helper/entry.php|helper_plugin_blogtng_entry]] class describes the ''$entry'' object. See this class for all the available methods. Some examples are (at September 2013): * ''tpl_content($name, $type)'' * ''tpl_entry($included=true, $readmore='syntax', $inc_level=true, $skipheader=false)'' * ''tpl_link($anchor=%%''%%)'' * ''tpl_permalink($str)'' * ''tpl_abstract($len=0)'' * ''tpl_title()'' * ''tpl_created($format=%%''%%)'' * ''tpl_lastmodified($format=%%''%%)'' * ''tpl_author()'' * ''tpl_hcard()'' * ''tpl_comments($name,$types=null)'' * ''%%tpl_commentcount($fmt_zero_comments='', $fmt_one_comment='', $fmt_comments='',$types=null)%%'' * ''tpl_related($num=5,$blogs=array('default'),$id=false,$tags=array())'' * ''tpl_commentform()'' * ''tpl_tags($target)'' * ''tpl_tagstring($target, $separator=', ')'' * ''tpl_previouslink($tpl, $id=false, $return=false)'' * ''tpl_nextlink($tpl, $id=false, $return=false)'' ==== $comment ==== The object ''$comment'' is available in ''comments.php'' and ''recentcomments.php''. The [[https://github.com/dokufreaks/plugin-blogtng/blob/master/helper/comments.php#L547|blogtng_comment]] class which describes the ''$comment'' object start at about line 547. See this class for the available methods. Some examples are (at September 2013): * ''getLang($name)'' * ''tpl_comment()'' * ''tpl_cid()'' * ''tpl_number($link=true,$fmt='%d')'' * ''tpl_hcard()'' * ''tpl_name()'' * ''tpl_type()'' * ''tpl_mail()'' * ''tpl_web()'' * ''tpl_created($fmt=%%''%%)'' * ''tpl_status()'' * ''tpl_avatar($w=0,$h=0,$return=false)'' ===== Configuration ===== There are a couple of configuration options. ^Config option ^Description^ |default_commentstatus |Default comment status choice in edit window| |default_blog |Default blog choice in edit window for new pages| |default_tags |Tags that are default prefilled in edit window| |comments_allow_web | | |comments_subscription | Not recommended | |comments_gravatar_rating | | |comments_gravatar_default | | |comments_forbid_syntax | | |comments_xhtml_renderer | | |editform_set_date |Allow to set the creation date of a blog entry manually via the edit form.| |tags |A comma-separated list of allowed tags. If empty, all tags are allowed.| |receive_linkbacks | | |send_linkbacks | | ===== Development Resources ===== ==== UPDATE: BlogTNG uses now the sqlite plugin as sqlite backend ==== An [[https://github.com/dokufreaks/plugin-blogtng/pull/117|update]] is created, where the [[sqlite|sqlite helper plugin]] is applied to do all the sqlite work for BlogTNG. The sqlite plugin has already database upgrade features and is maintained regularly. * This update adds dependency at the [[sqlite]] plugin * This plugin let you upgrade you from sqlite2 to sqlite3 when available * This plugin can only update your database when sqlite2 & sqlite3 are installed. Otherwise you need to upgrade manually, see its instructions. During upgrade the old sqlite2 version of the database is kept unchanged as ''[dokuwiki]/data/meta/blogtng.sqlite'', the new sqlite3 database is now created at ''[dokuwiki]/data/meta/blogtng.sqlite3'' Please report all your issues at the [[https://github.com/dokufreaks/plugin-blogtng/issues|issue tracker]] please. There are also some addition changes in the branch. The most important one is that a page that is no blog entry, isn't stored anymore in the database. General changelog: * use sqlite plugin for sqlite handling * add configurable defaults values for BlogTNG inputfields in edit window * max 3 optin mails, not configurable by admin anymore (feature from sqlite3 branch) * Store values of blog form only when in edit window a blog is selected * remove info from db when wikipage is not blog anymore * refresh metadata and db info only for wikipages that are a blog * when page is deleted, delete its tags too * added comments referer to rss feed (RSS 0.91 & RSS 2.0 only) * creating page with newform, uses now namespace templates like manually created pages. * newform can have additional fields for tags and commentstatus. ''?'' is placeholder for the configured default values * apply improved comment layout as provided by [[user>hArpanet]] * check security token in admin interface for modifying actions * use pagination in all listings of admin * use separated count queries to reduce query loads * comment previews use correct blog template files * ''%%~~READMORE~~%%'' in lists and tables are truncated at nice and correct way * all '''' use now ''listwrap'' * Adding PHPDocs and refactoring code ==== Changes ==== {{rss>https://github.com/dokufreaks/plugin-blogtng/commits/master.atom date}} ==== Request parameter datastructures ==== ^ Parameter ^ Description ^ ^ ''$_REQUEST['btng']['post']'' ^^ | ''blog'' | blog of the blog post | | ''tags'' | comma separated list or array of tags for filtering entries | ^ ''$_REQUEST['btng']['new']'' ^^ | ''title'' | title of the new blog post | | ''format'' | format to use for generated id of new blog post | ^ ''$_REQUEST['btng']['pagination']'' ^^ | ''start'' | offset start on paginating blog entries | ^ ''$_REQUEST['btng']['query']'' ^^ | ''string'' | query of search request | | ''filter'' | filter criteria for search request | ===== FAQ ===== ==== Is BlogTNG still maintained? ==== I added the tag "maybe-broken" to the plugin as a small provocation for sqlite2 is dropped nearly everywhere. Additionally, I want to see if it's still maintained ;-) because https://www.dokuwiki.org/plugin:blogtng doesn't look like frequent maintenance at all. No offense meant! > BlogTNG is more or less maintained, although there could be more people actively working on it there are developers using it so it is definitely not broken for everybody and these developers would fix it if it was really broken so I removed the maybe-broken tag. Concerning sqlite2, there is a [[https://github.com/dokufreaks/plugin-blogtng/pull/82|fork/pull request]] on GitHub which adds Sqlite3-support to blogtng. --- [[user>Michitux|Michael Hamann]] //2012/08/28 23:51// >> Okay, maybe a tiny update, we have now officially orphaned the plugin as nobody is really working on it, my statement that there is still some limited maintenance is however still true. --- [[user>Michitux|Michael Hamann]] //2012/09/02 21:32// >>> This is a pity, because I think BlogTNG may be one of the most important dokuwiki plugins at all on the long run, because it renders a separate blog engine unneccessary when one uses dokuwiki, therefore increasing the number of users running dokuwiki as a web page. How come? It seemed that the developer team ("dokufreaks") was part of the "inner developer core" of dokuwiki? //2012/09/26 16:21// > ===Little (temporary) initiative=== > At the moment a development effort has result in an update of the plugin. The plugin has now a dependency on the helper plugin to obtain decent maintained sqlite2 //and// sqlite3 support. Many other little improvements are included too. > Please report issues in the issue tracker --- [[user>Klap-in|Klap-in]] //2013/09/10// ==== How to create a new blog in the same site? ==== **NOTE:** //You cannot create a new blog from the DokuWiki admin interface, it **must** be done using the command line or your website's file manager.// By default, blogtng comes with the ''default'' blog. To create another blog you can go to **''/lib/plugins/blogtng/tpl''** and create a new folder (e.g. ''otherblog''). As you will need some files inside this folder I recommend you to actually copy the content of ''default'' to ''otherblog''. Then, you can start to make your own customization to your new blog. After creating the ''otherblog'' folder, you will now have two 'blog' options available in the edit window when editing a wiki page (the ''default'' blog and the new ''otherblog''). Simply choose the one relevant to the page. Be aware that during a plugin upgrade the content of the ''default'' folder can be overwritten with new version of these files. Please create a copy and modify these, so you customization is safely stored. ==== What about Captcha Support for the Comments? ==== The Dokuwiki [[plugin:captcha|CAPTCHA plugin]] works fine in the comments. The default setting for the CAPTCHA plug-in is invisible. Go to Configuration Manager->Captcha Plugin Settings and select for example "Text(manual only)" for "Which type of CAPTCHA to use" to use a visible type. ===== Sites using this plugin ===== E. g. the following pages are using the BlogTNG-Plugin: * [[http://adam.nz/blog/]] (English) (Jan-2016) * [[http://harpanet.com]] (English) (Jun-2013) * [[http://www.andrwe.org]] (English) * [[http://blog.andreas-haerter.com]] (English) * [[http://www.dkriesel.com]] (German, English) * [[http://villemain.org/blog]] (French) * [[http://www.rocking-minds.org]] (English) * [[http://blog.slucas.fr]] (French, English) * [[http://www.heiko-barth.de/blog/]] (German) * [[http://htrd.su/]] (Russian) * [[http://blog.flower-platform.com]] (English) * [[http://www.joebenimble.com/]] (English) * [[http://ingegnerialibera.altervista.org/blog/doku.php]] (Italian) ===== Bug and feature requests ===== Please report all your issues at the [[https://github.com/dokufreaks/plugin-blogtng/issues|GitHub issuetracker]]. ===== Discussion ===== Please share your issue reports and feature requests at the [[https://github.com/dokufreaks/plugin-blogtng/issues|issuetracker]]. ==== Hack to add security ==== I have two major problems with BlogTNG: First, it turns my entire wiki site into a blog by giving blog options in the edit page. Second, there's no security. Any user can create entries in anyone's blog. Here's a quick hack to fix those problems: 1) Set up acl so that blogging users have write access to namespaces of the form blog:username 2) Edit ''blogtng/action/edit.php'' 3) Add this as the first line of register() if (strpos(getNS(cleanID(getId())), 'blog:') !== 0) return; 4) Add this after the line that sets the $blogs variable in handle_editform_output: // Only allow a user to make a blog entry in blog:[user] global $INFO; if (!in_array($INFO['client'], $blogs)) return; if (strpos(cleanID(getId()), 'blog:' . $INFO['client']) !== 0) return; 5) A couple lines lower, replace this commented-out line with the other line: $event->data->insertElement($pos, form_makeTextField('btng[post][blog]', $INFO['client'], '', 'blogtng__blog', 'edit', array('style'=>'display:none'))); // $event->data->insertElement($pos, form_makeMenuField('btng[post][blog]', $blogs, $blog, 'Blog', 'blogtng__blog' ... 6) Copy ''blogtng/tpl/default'' directory, once for each blogging user. Rename it to the user's name. Now, users can only create blogs in the ''blog:[username]:'' namespace Missing: I haven't modified the "new entry" form yet. -[[user>Zioth|Zioth]] I have few questions regarding BlogTNG configuration: - Is it possible to make comments disabled by default (or turned off globally)? - How to make BlogTNG panel below the DW editor appear only when page from a certain namespace is edited? Thanks. - //Andriy// > I forked the plugin and added the ability to globally disable/close/enable comments, see https://github.com/lainme/plugin-blogtng if you are interested. --- [[user>lainme|lainme]] //2013/02/01 08:16// ==== How to disable TOC? ==== In an blog entry the TOC is always shown, even when the TOC is disabled in the template. --Wetty 2012-01-14 For blog entry, you can change the ''lib/plugins/blogtng/tpl/default/entry.php'' files. Change $entry->tpl_entry(false, false, false) to $entry->tpl_entry(true, false, false) --- [[user>lainme|lainme]] //2012/09/14 14:05// ==== Comments ==== > :?: How to disable commenting for guests? --- [[user>Aleksandr]] //2013/07/13 20:50// >> [[user>hArpanet]] - There is no easy way to do this at present. It is possible by editing one of the 'core' files: >> **File**: ''/lib/plugins/blogtng/helper/entry.php'' >> **Function**: ''tpl_commentform()'' >> **Add this line**: ''if (empty($INFO['user_info']['name'])) return;'' >> **Making**: >> function tpl_commentform() { if (empty($INFO['user_info']['name'])) return; if ($this->entry['commentstatus'] == 'closed' || $this->entry['commentstatus'] == 'disabled') return; if(!$this->commenthelper) { $this->commenthelper = plugin_load('helper', 'blogtng_comments'); } $this->commenthelper->tpl_form($this->entry['page'], $this->entry['pid']); } >>> Thank you, hArpanet! --- [[user>Aleksandr]] //2013/08/21 21:03// ==== Nice urls at pagination ==== > :?: Is there any way to get nice urls on pagination? --- [[user>r0sk]] //2013/08/07 03:43// >> Not at the moment that I'm aware of. [[user>hArpanet]] ==== readmore ==== >:?: cant get ~~ READMORE ~~ to work ( if ($entry->tpl_entry(true, 'syntax', false)) ) [[user>monk]] ==== How to enable TOC ==== >:?: I can't see any of my TOC's. Am I missing anything? When I change template, they come back. I'm running ''Release 2014-05-05a "Ponder Stibbons"'' Thanks,--- Patrick //2014/06/28// >> Which template? >> Did you see the question [[plugin:blogtng#How to disable toc]]? That will shine some light. >> --- [[user>Klap-in|Klap-in]] //2014-07-19// >>> Sorry if my question wasn't clear... I use the [[https://www.dokuwiki.org/template:mnml-blog | mnml-blog template]] with the ''blogtng'' plugin. My problem is that none of the TOC's show. I'm glad they don't show in the blog pages, but I would like to see them in regular pages, but I don't. When I look at websites that use the same template, they don't seem to have that problem. I looked at [[plugin:blogtng#How to disable toc]] but it doesn't help me. --- Patrick //2014/08/02// >>>> Finally figured it out. I needed to flip '''' to '''' in ''lib/tpl/mnml-blog/main.php''. --- Patrick //2015/04/11// ==== Cannot save with selected Blog ==== >:?: Since Release 2014-05-05a "Ponder Stibbons" the article can not be saved to selected Blog > THNX,--- Peter //2014/08/20// ==== Tag link ==== > If I click on a tag the result page does not show all the articles with the stated tag. example: https://www.monjo.com/index?btng[post][tags]=film