Table of Contents Creator

Download Latest version: 1.6.4.1 (updated on 13 June 2010)

Features | Screenshot | Download | Configuration | FAQ | Comments | Demo

Version 1.6.4 now released! The following new features have been added. This release is all about giving more control to your visitors…

  • Sidebar widget support.
  • Hierarchial categories are now supported.
  • Child elements can now be dynamically expanded or collapsed by a vistor.
  • The table of contents can now be dynamically sorted in several different orders by a visitor.
  • All summaries can be dynamically shown or hidden by a visitor.
  • Page help is now available to users by clicking the help icon.

Have a play by viewing this site’s Table of Contents.


Please Help! Assistance in interpretation, the creation of new icon sets or just suggesting great new features would be greatly appreciated. All assistance will be acknowledged on the TOCC settings page with a link provided to your site. Please register your interest via the Contact Me page or as a comment below. Thank you.

If you find the plugin useful, please vote for it here.

Features

Table of Contents Creator (TOCC) automatically generates a dynamic site wide table of contents that is always up-to-date. All entries are navigable making your site extremely SEO friendly. TOCC can be configured to display static pages, blog posts and forum comments. TOCC may also include anchor tags marked with a special class within the table of contents. This feature allows links to articles, downloads or even other sites to appear within the table of contents as if they are part of your site’s navigation. One more great feature of TOCC is the automatic summary generator. A short summary describing each page or comment can be automatically created and added to each page or post item in the table of contents. The summary is a great way for people to quickly determine what each page or post is about without wasting valuable time. Finally, the way in which the table of contents is generated is extremely configurable and even contains a choice of several icon themes.

To generate a table of contents, simply include the <!-- toc-creator --> tag on any page, or use the handy page creation feature located on the plugin admin page.

Note that the table of contents is automatically generated every time it is displayed and as such it is always up to date! New comments, pages, blogs and blog catagories will automatically appear as soon as they are published.

You never need to lift a finger. TOCC will do all the work for you!

Please note: TOCC has been designed to be as resource friendly as possible. However if your site is relatively large or you are frequented by many visitors, TOCC may increase host CPU loading and memory usage. It may therefore be advantageous to consider installing a caching plugin such as WP-Super Cache. TOCC integrates with WP-Super Cache and will automatically clear the cache when any options have changed. It is also recommended that WP-Super Cache be configured to automatically clear the cache when a new post is added.

XHTML CertifiedContent generated by the Table of Contents Creator plugin is validated XHTML compliant.

download_button

Download

Latest version: 1.6.4.1
Requires at least: WordPress 2.7
Tested up to 2.9.2

The plugin can alternatively be downloaded from the WordPress plugin repository.

You are free to use the plugin under terms specified by GPL.

Installation

  1. Download the installation file from here, extract it into your plugin folder and activate it.
  2. Edit the TOCC settings using the admin page located under settings.
  3. Place <!-- toc-creator --> anywhere on a page or use the page generator on the admin page. Use the HTML editor when placing the tag.

Sidebar Widget

New to version 1.6.4 is the sidebar widget. This feature allows you to display the table of contents within the sidebar of each page. Dynamic sorting is unfortunately not available within the widget.

Anchor Links

Anchors can be displayed within the table of contents. To include an anchor, simply add class="tocc" to any anchor tag. Anchor links will be displayed under the page in which they were located.

The Summarizer

The Summarizer will display a page or post summary below each item in the table of contents. It is set by default to automatically acquire the summary from one of several different sources, however it may be configured to retrieve summaries from one source only. Currently, TOCC interrogates the following sources:

  • The All in One SEO plugin. This plugin is used by many to produce SEO friendly META descriptions.
  • Any custom configurable page or post META tag,
  • The post or page excerpt.
  • The post ot page content.

The Summarizer uses jQuery textual effects to slowly scroll summaries and includes options for the reader to displaying all summaries, hide all summaries or display individual summaries. All buttons dynamically change on hover and are theme sensitive.

Examples

A TOC using the professional icon theme.


TOC using square icon theme and drop down menu.


TOC without icons. Single list.


TOC handdrawn. No author or date.


TOCC configuration snippet.


Configuration

TOCC is configured with defaults that will suffice the needs of most users. There are loads of configuration options though that you can tweak to help blend the table of contents with you blog style and personal tastes. None of the options break anything and are, for the most part, self explanatory. If you run into trouble, click on the option text within the plugin settings page to display detailed help.

All available options are detailed below…

General Options
  • Table of Contents Title: This text entered here will be displayed at the top of the table of content page. Leave blank to display no title. Include any required formatting tags.
  • Icon Theme: Select the icon theme used to display next to each table of contents entry. Icon themes are a set of icons that are related in look and style. Icons are used to differentiate pages, links, blog categories, blog entries and form comments. Select none to inhibit the displaying of icons.
  • Default Sort Order: Selects the default sort order for pages and posts. The sort order can be overridden by a vistor using the options menu.
  • Date Format: Used to set the date display format when showing blog or forum comment dates. See http://php.net/manual/en/function.date.php for format string details.
  • Show Separate Lists: Displays the page list, blog posts and forum comments as separate lists under a configurable title. See the settings below for Page Title, Blog Title and Forum Comments Title. The title strings may contain HTML formatting tags.
  • Show Options Menu: Displays a menu at the top of the table of contents page allowing vistors to format the table of contents. Options include expand and contract child elements, show or hide summaries and sort the table of contents.
  • Option Menu Item Texts: This is the text used for each option menu item. It is settable so that the menu can be easily modified to reflect the blogs host language. Ensure that the menu items appear in the same order. Commas are used to delimit each menu item and should therefore not be used in a menu item description.
  • Options Menu Border Color: A small options menu is displayed to each visitor allowing them to sort the table of contents, expand or collapse child elements and display or hide summaries. This option defines the color used for the menu border and separator bars. HTML color codes can be found here. Dont forget to include the leading hash.
  • Show Help: Selects whether to display help instructions to the user. Valid options are Never, Always, Hidden by Default (with help icon), Shown by Default (with help icon).
  • Help Icon ToolTip: Tooltip text to be displayed when the user hovers the mouse over the help icon. Applicable only if help icon is selected in above option.
  • Help Text: Help text to display when the user clicks the help icon. Not applicable if show help is set to never.
  • Allow Children to be Expanded and Collapsed: Allows parent elements, such as a page with sub pages or a category with posts, to expand or collapse the child elements similar to a tree view in Windows Explorer.
  • Hide Children by Default: Hides all children by default. This option will only be used if the above option is selected.
  • Author Prefix: The text to be displayed before the authors name.
  • More Prompt: If enabled, the more prompt is displayed at the bottom of the blog posts and forum comments lists if not all posts or comments are displayed. clicking the link will display a new page showing all available posts or comments. This enables a smaller subset of the posts and/or comments to be displayed on the main site-map allowing greater readability.
  • Show Author Credit: Displays a small unobtrusive acknowledgement at the bottom of the table of contents. Please consider leaving the acknowledgement enabled as a token of appreciation for the hours spent developing this plugin.
Summarizer Options
  • Show Summary: If enabled, a small summary is automatically created for each page or post. The summary may be hidden by default allowing visitors to dynamically show or hide summaries as required. Summaries may be extracted from All in One SEO descriptions, post excerpts, post or page body text or custom META tags.
  • Extract Summary From: Determines where the page or post summary is to extracted from. If Auto is selected, a number of different methods are examined in hierarchial order to obtain the first non-blank description. Other valid options include All in One SEO description tags (requires the All in One SEO plugin to be installed), Post Excerpt, Page or Post Body and Custom META. The option below can be used to configure the custom META tag.
  • Custom Summary Extraction META: Defines the custom META tag if selected above. WordPress allows custom fields to be added to a page or post. The custom fields are displayed as META tags in the post or page header and can be used by search engines. If you do not use the All in One SEO plugin, it is a good idea to create a custom Description META and include a brief description of the post in the value field.
  • Summary Length Limit: Sets the maximum number of characters to display for each summary. Set to 0 to disable this option. It is a good idea to keep this short to reduce page load times if the table of contents contains many pages or posts.
  • Display Ellipses if Summary Exceeds Limit: If set, ellipses (…) will be displayed if the extracted summary exceeds the above summary length limit.
  • Hide Summaries by Default: Summaries may be hidden or shown by default. Selecting None will display all summaries. Select All to hide all summaries. Select Parent to hide the summaries of all parent pages (those with children). Select Children to hide the summaries of all children pages.
  • Allow Individual Summaries to be Shown or Hidden: If selected, visitors will have the option of displaying or hiding summaries for individual posts or pages. A small icon will be displayed next to the post or page.
Static Page Options
  • Show Static Pages: Show static pages within the table of contents. Note that the pages will be sorted in menu order. Use the order attribute of each page (settable via page edit) to set the menu order.
  • Page Title: This text is used as the page list heading. The page list heading is only displayed if the separate page, blog post and forum comment lists option is checked. See General Settings for more information.
  • Page Depth: Determines the page depth to display. For example if set to 1, all parent pages will be shown and the immediate children of each parent page will also be shown. Set to 0 to show parent pages only.
  • Link Class: If set, any <a> tags assigned to this class will be shown as a list item under the page in which the link was found. To use, add class=”linkclass” to each <a> tag you wish to display in the table of contents. Leave blank to disable this option.
  • Show Page Author: Displays the author of the page.
  • Show Page Date: Displays the creation date of the page.
  • Show Page Comment Count: Displays the number of page comments next to each page listing.
  • Exclude Pages: Select one or more pages to exclude from the table of content. By default, all pages are enabled.
Blog Post Options
  • Show Blog Posts: Show blog entries within the table of contents. Blog entries will automatically be separated by category.
  • Blog Title: This is a mock page name used for sites that do not have a static post page. See the WordPress Settings/Reading option for more details. The blog title is also used if static pages are not displayed or page lists, blog posts and forum comments are separately displayed.
  • Show Posts Total: Displays the total number of posts in brackets for each category next to each category listing.
  • Category Prefix: Displays this text before each blog category. Leave blank if you do not wish to display a prefix. The prefix may include HTML code.
  • Number of Blog Posts: Determines the maximum number of blog entries to display in each category. Set to a value equal to or less than zero to display all posts.
  • Don’t Show Categories: If selected, all posts will be shown in one large list without being separated into individual categories. Use this option if your blog does not make use of post categories.
  • Show as Flat List: If selected the blog categories will not be displayed as an indented hierarchial list, but instead as a flat list.
  • Show More Prompt: Displays a link at the bottom of the posts list to display more posts. The link will only be displayed if the current number of posts is limited (see the option above). The link text is set in the general options section.
  • Show Posts Warning: Displays a message after the blog page name to alert the reader that only the latest n posts are shown. This text is not shown if all posts are displayed (by entering 0 in the “Number of Blog Entries” setting below).
  • Post Warning Text: The message to display if the post warning is enabled. Use {x} as a place holder for the number of blog entries being displayed.
  • Show Post Author: Displays the author of the post.
  • Show Post Date: Displays the creation date of the post.
  • Show Post Comment Count: Displays the number of post comments next to each post listing.
  • Exclude Categories: Select one or more categories to exclude from the table of content. By default, all categories are enabled.
Forum Note that currently this option only works with Forum Server and WP-Forum.
  • Show Forum Comments: Show forum comments within the table of contents. The latest forum comments will be shown first. Note that currently this option only works with Forum Server and WP-Forum.
  • Forum Title: This text is used as the forum list heading. The forum list heading is only displayed if the option is checked to separate the page, blog post and forum comment lists. See General Settings for more information.
  • Forum Page Name: This is the name of the WordPress page that is used as a place holder to display the forum. The page name is required so that the plugin can display the forum comments underneath the correct page name. The forum page typically consists only of a tag such as <!--VASTHTML-->.
  • Number of Forum Comments: Determines the maximum number of forum comments to display. The latest comments will be displayed first. Set to 0 to display all comments (not recommended).
  • Show More Prompt: Displays a link at the bottom of the comments list to display more comments. The link will only be displayed if the current number of comments is limited (see the option above). The link text is set in the general options section.
  • Show Comments Warning: Displays a message after the forum page name to alert the reader that only the latest n comments are shown. This text is not shown if all comments are displayed (by entering 0 in the “Number of Forum Comments” setting below).
  • Comment Warning Text: The message to display if the comment warning is enabled. Use {x} as a place holder for the number of commebt entries being displayed.
  • Show Comment Author: Displays the author of the comment.
  • Show Comment Date: Displays the creation date of the comment.

FAQs

When I add a new page or post, do I need to tell TOCC?

No. TOCC will automatically add new pages, blog categories and entries, forum comments and links to the table of contents. A new table of contents is generated every time the page is displayed.

Where does the Summarizer get its text from?

The Summarizer is a great feature of TOCC that automatically produces a short summary of each page or post. It first attempts to retrieve the summary from the All in One SEO Plugin. If none was found, it then looks inside a custom META tag, then the post excerpt, then the post content. If all this fails, a message is displayed indicating that no description exists for this page or post. The summary is then stripped of any HTML tags and truncated to a configurable length before it is displayed.

Why is it that some static pages don’t display in the table of contents?

Private pages are not included in the table of contents. Furthermore, you can inhibit pages from displaying using the admin settings page.

What is an anchor link?

Anchor links are <a> tags that have been marked with a special class. By default, any anchor tag that include the text class="tocc" will be included as a link in the table of contents. Note that the class identifier can be changed via the admin settings page.

Can I edit the way the table of contents is displayed?

Definitely! There are many options on the admin settings page that allow you to individualise the way the the TOC is displayed. TOCC also ships with a tocc.css file that can be customised to display different icons, text colors and so on. All individual elements within the TOC can be formatted within the css file.

Can I display more than one TOC with different options?

Yes you can, however you need to override the options using the trigger tag. For example, <!-- toc-creator show_menu=yes|icon_set=2|show_static=|@blog_exclude=5,20,3,15,85 --> will display a TOC with an options menu, the square icon set, no static pages and multiple excluded blog categories. The blog and post category IDs are shown within the TOC settings page. All TOC option names are listed in an array at the top of the source code.

The option syntax is as follows: text to the left of the equals sign is the option name, text to the right is the value (leave blank to disable the option), | separates options, and @ is used to indicate to the preprocessor that the option value is actually a comma separated array list.

I don’t want to allow my visitors to sort by author. How do I do this?

All pull-down menu entry texts are configured within the general options pane within the plugin settings page. To disable any option within the menu, simply delete the text after the comma. Do not remove the comma.

Some of my pages are place holders only. How do I stop TOCC from adding a link to these pages?

There are two ways to do this. First, you can exclude pages using the TOCC settings page. This will also exclude all children of the page and therefore may not suite all users. The other way is to allow TOCC to display the page, but not include a link to the page. This is done by setting a short tag override. To determine the ID of all pages you do not want to show links for, open the TOCC settings page and expand the Static Page Options pane. All pages should be listed here with their ID in brackets. To exclude links, modify the TOCC short tag as per the following example: <!-- toc-creator @link_exclude=749,765 -->. This will not display links for pages with IDs of 749 and 765.

How do I add the TOC to the 404 page?

Within the WordPress theme editor, add the following line within the 404.php file… >?php if(function_exists('tocc_show')) {tocc_show();} ?<. Note that this line can also be added to any page, post or template file.

I note that there is a page and category exclude option, but what if I only want to include a couple of pages or categories?

If you have many pages and categories, and you only want to include a couple of these in the TOC, it may be tedious to individually exclude all other categories or pages. Instead, you could use the @page_include and @blog_include short code overrides. For example <!-- toc-creator @page_include=13,187|@blog_include=8 --> will only display pages with IDs 13 and 187 and categories with ID 8 only.

Is it possible to exclude specific posts from the TOC?

Yes. Use the @blog_postExclude short code override. For example, <!$#45;- toc-creator @blog_postExclude=23,31,45|show_postIDs=yes --> will exclude posts with IDs 23, 31 and 45. Post IDs can be determined by temporarily enabling the show_posIDs short code override. This will show the post ID next to each post in the TOC. Remove this override once you have determined the IDs of the posts to exclude.

Revision History

1.6.4.1
  • Add Persian translation by HamidReza Kazemi. Thank you Hamid.
  • Reduced file size of all icons (by around half) and standardised all icon sets using GIF alpha format. This will increase page load time.
  • Added dynamic removal of non UTF-8 characters from the summary. This was causing some sites to not correctly validate as XHTML.
1.6.4
  • Added table of contents sidebar widget. All widget options are set through the TOCC plugin settings page, however several options have been hardcoded as some options will not work within a widget.
  • Add French translation by Txia. Thank you Txia.
  • Replaced “show help” option with a selection to display the help text always, never, by default or hidden by default. Shown and hidden by default options are supplemented with a help icon to toggle the help text on and off.
  • Now automatically clears wp-supercache cache when TOCC options are updated.
  • Added new short code overrides called @blog_include and @page_include. These allow you to specifically identify which pages and categories are to be included in the TOC.
  • Added new short code override called @blog_postExclude to allow specific posts to be excluded from the TOC. Also added a new short code override called show_postIDs to allow post IDs to be temporarily displayed on the TOC.
1.6.3.1
  • Removed self_URL function and now instead use the post permalink as this was incompatible with some servers.
  • TOCC url parameters now append to existing page parameters if they already exist (for example, if using default WordPress permalink settings).
1.6.3
  • Added new option to hide summaries for parent (pages with children), children (non-root pages), none or all pages and posts.
  • Added new option to display the page or post comment count next to each page or post listing.
  • Added new option to inhibit listing of posts under categories and instead show all posts as one large list.
  • Added new option to displat a help icon. When enabled, an icon will be displayed in the top right corner. Clicking the icon will display user definable help text.
  • Added new option to allow user definable text to be prefixed to each category heading.
  • Added new option called “link_exclude” settable via a short-tag overide to exclude links from user selectable pages. See FAQs for more information.
  • The summarizer now uses category descriptions to generate summaries for categories.
  • Fixed compatility issues with Forum Server version 1.4.
  • Prefixed all TOCC classes with “tocc_”. Tocc used common class names such as “footer” and “date”. This conflicted with some themes. The prefix should make all css classes unique, and as such the table of contents should now appear the same across different sites.
  • Modified self_URL function to work with both IIS and Apache. The previous function worked with Apache only.
1.6.2.2
  • Fixed issue with automatic page creator adding the incorrect short code.
1.6.2.1
  • Relaxed reliance on PHP5 by removing function reference parameters with default values. The plugin should now work with PHP4.
  • Updated jquery library to version 1.4.2.
  • Fixed root node identification, allowing users to style the root item with CSS.
  • Fixed bug that caused the expand icon to show for static pages that had no children.
1.6.2
  • Added CSS classes to page, anchor link, category and post titles and all root items allowing users to be easily override formatting.
  • The Summarizer can now use the anchor title for link summaries.
  • If the summary text is longer than the allowable character limit, the summarizer now adds ellipses to the end of the last word (it no longer truncates in the middle of a word). This results in a neater looking summary.
  • It is now possible to override any TOC option using parameters attached to the trigger tag. This allows multiple TOC lists to be displayed with different options (eg excluded blog cats, different icon sets etc).
  • Now dynamically removes open <p> tags before inserting the table of contents to ensure the TOCC plugin remain XHTML compliant.
  • Added option to allow sort by author (dynamically or by default).
  • Individual menu pull-down options can now be disabled by deleting the text after the comma within the Option Menu Item Texts setting.
  • Implemented hierarchial page and blog tree walking using a recursive algorithm for greater efficiency and reliability.
1.6.1
  • If no author URL is configured in the WP user section, the author link will default to the author post summary page.
  • Add Spanish (castilian) translation by Fernando J. Echevarrieta (echeva).
1.6.0
  • Hierarchial blog categories are now supported. An option has been included to display categories as a flat list as per previous versions.
  • New feature to dynamically display or hide child elements similar to the way Windows Explorer works.
  • New options menu allowing a visitor to hide/expand child elements, show/hide all summaries and sort the table of contents in several different orders.
  • Added ability to display page author and/or page date for static pages.
  • Updated Italian translation to include Summarizer options thanks to Carlo Politi.
  • Stripped Worpress caption tags and plugin square bracket activation tags from page and post summaries. This was causing Summarizer display porblems with caption tags and the contact form plugin.
  • Moved all tocc options into a single associative array resulting in smaller and easier to follow code with less calls to the option table.
  • The php code has now been fully commented.
  • The code used to generate the TOC HTML code has been completely rewritten. The resulting HTML is now a lot neater and no longer uses div elements. All list item types are now fully customizable using CSS. The lists are also now truely hierarchial.
  • Added a new classes to items with children, the active page item, date text, author text, expandable items and option menu items allowing greater flexibility when custom styling with css.
  • CSS file has been completely rewritten so that it is easier to override and customize.
  • Many function parameters are now passed by reference thus reducing overall memory requirements and CPU usage.
  • All formatting now moved from source code to the css file.
  • Added nonce and admin check to all TOCC administration panel settings changes (for security purposes).
1.5.1
  • Removed reliance on PHP5. Four lines of code accessed objects in a way that was not compatible with PHP4.
  • Added space between Summarizer option span elements to fix rendering issue with some browsers.
  • Added mozilla inline block replacement to fix rendering issues in Firefox 2.0 and lower.
  • Replaced text Summarizer icons with mostly transparent icons to best suit more background colors.
1.5
  • Brand new feature added – The Summarizer. This new feature allow you to display post or page summaries under each table of content item. The summaries are automatically generated using All in One SEO tags, post exceprts, body content or META tags. Summaries are displayed or hidden using fancy jQuery scroll effects. The Summarizer is also uber configurable. Readers may hide or display summaries using themed icons. BIG THANK YOU to Scott for suggesting this feature!
  • Fixed a small issue that stopped table of contents from correctly validating as XHTML.
  • Added an “Are you sure?” warning when the restore defautls button is selected.
  • Dynamically add toc.css and java script headers to pages with table of contents tag only (instead of all pages).
  • TOCC pages generated with the create page option are now add to the end of an ordered page list (position 9999). This ensures that the page is displayed last in most theme menus. Comments are also now closed by default.
1.4.4.1
  • Modified css file to remove CSS2 style bullets when displaying icons.
1.4.4
  • Fixed bug in tocc_plugin_options() function that stopped the admin page loading on some systems. Thank you very much Michael E. Chancey Jr. for pointing out the bug and offering a fix.
  • Added “Settings” link to plugin menu.
1.4.3
  • Fixed bug causing options to default to “blank” on initial install.
  • Fixed fault causing author acknowledgment to dispay at full text height.
  • Optimized use of WordPress actions. The plugin now loads the localization file only when needed and all global code has been removed (except for action hooks).
  • Resolved issue where default options would periodically not translate on new plugin install.
  • Added special debug mode (activated by typing DEBUG_ON in TOC Title) to output all option settings as a hidden comment on the TOC page.
  • Updated admin settings page to a more “WordPress” like theme.
1.4.2
  • Post anchor links now link to post permalink instead of the post number.
  • Added Italian language file by Carlo Politi.
  • Added Professional icon set (recommended by Bryan Brazil).
  • Changed IDs to CLASSES to ensure XHTML 1.0 Strict (thanks Bryan).
  • Added an uninstall script to remove all options when the plugin is deleted.
1.4.1
  • Removed translational strings from add_option_page function as I suspect this may cause a race condition on initial activation (ie after an upgrade) that may every now and again causes a momentary server failure message. The message goes away after refreshing the page.
  • Added CSS2 bullet clearing when displaying icons.
1.3.2
  • Modified internal English strings be i18n WordPress translation compatible.
  • Added translation “please help” message to the settings page.
1.4
  • Added option to select one of five different icon sets. Icons sets now include none, handdrawn (original), blue, square and bling. None selected by default, except when upgrading and show icons checkbox was selected. In this case, handdrawn is automatically selected to ensure that existing site maps retain the current look.
  • The settings page now utilises collapsible menues as the number of options was becoming too large and overwhelming to display all at once.
  • Added option (off by default) to show all entries as list items if not displaying icons. Currently only blog posts and forum comments are displayed as list items. Enabling this option allows easier integration into some themes.
  • Fixed display issues with IE6. Found bug in IE6 render engine that stopped the icons from being displayed if the list item consists entirely of an anchor tag. Added a space to the end of all list items fixes this bug. Thank’s Microsoft, can I have mny day back now?
  • Added option to display pages, posts and forum comments as separate lists each with individual headings. Heading texts can also be set.
  • Added option to display a “more” prompt at the end of the blog post and forum comments if not all of the posts or comments are shown. When clicked, the link will display a page of all posts or forum comments.
1.3.1
  • Post count now pulled from database as $cat->count does not match the number of posts pulled from the database in some (rare) cases.
  • Modified post retrieval query slightly as it sometimes got confused with posts that have multiple categories.
1.2.1
  • Renamed function display_posts to tocc_display posts and moved out of hook function as it conflicted with a function of the same name when display category posts. This update is a must for anyone using version 1.1 or 1.2 of this plugin!
1.3
  • get_posts() method used to retrieve wordpress blog posts sometimes return incorrect (empty) results. I have therefore implemented a new method to directly retrieve posts from the database. Retrieval falls back to get_post if no posts were found using the database method.
  • Removed bullets from forum comments and blog posts when displaying icons.
  • Hardcoded title formatting removed and added by default to the title. A blank title tag is now also allowed.
  • Additional desscriptions added to settings page to guide users on the use of the create page and update options buttons.
  • Added options to show blog and forum last update date and author.
  • Added date format specifier for blog and forum last update dates.
  • Added forum and blog author prefix text setting (for blogs using a language other than English)
  • Added forum and blog warning text setting (for blogs using a language other than English)
  • Added optional formatting to CSS file (such as removing bullets, adding anchor decoration etc). Instructions included in the CSS file.
  • Added ability to determine previous version during upgrade. This will allow future versions to tweak existing settings to match the look and functionality of previous versions.
1.2
  • Modified default settings to disable icons and show all blog entries (looks more professional).
  • Now shows blog entries as list items if icons are not selected. This provides better intergration with existing site themes and looks better when icons are not displayed.
  • Now uses configurable blog title if not displaying static pages. The blog title may be left blank.
  • Removed excessive use of nested &ltdiv&gt tag. This may have caused an issue with oulder browsers.
  • Now ensure blog posts are sorted by date rather than rely on WordPress defaults (as this may change in later WordPress versions).
  • Split the show posts/comments warning option into individual forum and blog sections.
  • New option (on by default) to show total number of posts in each category.
1.1
  • Posts will now be displayed if there is no static post page. Prior to this release, a static blog page was required.
  • Now shows blog entries if blog page or static pages are excluded from the table of contents.
  • Now show forum comments if forum page or static pages are excluded from the table of contents.
  • Added option to remove author acknowledgment.
  • Now displays a message indicating the last number of posts if the number of posts exceeds the selectable maximum number of displayed posts.
  • Now displays a message indicating the latest number of forum comments.
  • Fixed incorrect <div> nesting when static pages are excluded.
  • Fixed bug where anchor links would be displayed even though static pages were disabled.
  • Fixed bug where forum page would always default back to the first page in the settings editor.
  • Now allow extended help to be displayed if the option is disabled. This my be help the user to determine why the option is disabled in the first place.
1.0
  • Initial public release.

Upcoming Features

The following is a list of features that will be implemented in the next revsion. If you would like any additional features, please feel free to leave a comment below.

  • Add option to only show sub pages of the current page within the TOC. This will be handy for using the sidebar widget as a dynamic menu.
  • Add option for maximum number of links per page (split list over multiple pages) – toc pagination.
  • Allow sort by user defined tag.
  • Allow text instead of icons for summary (eg `show` or `hide`) if no icon summary selected.
  • Integrate FAQs and preprocessor help with the WordPress Help system (the help pulldown on the settings page).

Acknowledgements

I wish to acknowledge the valuable assistance offered by the following people:

  • Carlo Politi for providing and updating the Italian translation file.
  • Fernando J. Echevarrieta (echeva) for providing the Spanish (Castilian) translation file.
  • Scott for suggesting and helping test the new Summarizer feature.
  • Steadman Uhlich for assisting with major version pre-release testing and vailidation’, ‘tocc’)
  • Txia for providing the French translation file.
  • HamidReza Kazemi for providing the Persian translation file.

Please help. Your help would be greatly appreciated if you could assist in translating this plugin, help test new releases or suggest new features.

Comments

Please let me know what you think. Leave a comment if you have a requested feature, found a bug or need some help. All are welcome.

239 Responses to “Table of Contents Creator”

  1. Emma 22 February 2010 at 2:42 pm #

    Wonderful plugin; thank you! I’m using no icon theme, but would like to make the category titles stand out by styling them bold and sizing them maybe 1.1em. I’ve had a look at the css and plugin code, but I’m not the best with either, so I was wondering if you could point me to a way to do that? Thanks so much!

    • Mark 23 February 2010 at 5:00 am #

      Thanks Emma. Any TOCC element can be formatted using CSS. To do what you ask, follow these steps:

      1. Expand the “Plugins” pane in the WordPress admin page and click on “Editor”.
      2. Select “Table of Contents Creator” in the “Select plugin to edit” box and hit the “Select” Button.
      3. In the list of files under the heading “Plugin Files”, select “table-of-contents-creator/tocc.css”
      4. At the very end of the file, add this line (not including quotes): “li.blog_cat a {font-size:1.1em;font-weight:bold;}”
      5. Unfortunately, this will also format children anchors, which include blog post links. This is a little messy, but to fix it, undo any formatting you have done above by adding the following line: “ul.blog_post a {font-size:1em;font-weight:normal;}”.
      Hit the “Update File” button.
      6. Refresh your table of content page and that should be it.

      I tested these steps on my blog and it works.

      Cheers,
      Mark

      • Emma 23 February 2010 at 9:37 am #

        Thank you so much! It’s working wonderfully. Just one question: the parent categories are bolded and the blog post names are not, but the child categories are also not bolded. (You can see what I mean at http://www.costarica.com/livingincostarica/archives/) I think I know how to do this by editing the css code you’ve already given me, but what is the name of a blog child category (for example, blog_cat is a parent and blog_post is a post title). Thank you again, I really appreciate it!

      • Mark 25 February 2010 at 1:21 am #

        Hi Emma,

        I am in the throws of beta testing the next revision of TOCC. I have included additional classes so that any element within the table of contents can now be easily formatted. If you would like to use the new version, head over to http://wordpress.org/extend/plugins/table-of-contents-creator/ and in the FYI panel, click on “Other versions”, scroll to the bottom and download the “Development Version”. You can then install it by removing the old TOCC and selecting Upload from the “Add New” option in the Plugins pane. I have tested the development version on several sites, so it should not cause you any problems.

        To format the category text using the new revision, simply add the following line to the css file:
        #tocc .blog_cat_title {font-size:1.1em;font-weight:bold;}

        There are more instructions within the new CSS file for formatting other elements.

        Mark.

  2. Bryan Brazil 4 February 2010 at 4:41 pm #

    Hi Mark, great job on the new version! On my site, I was having some problems with XHTML 1.0 strict validation. To fix it, I removed the closing paragraph tag from after the “Created by…” comment line. I also had to remove the opening paragraph tag located toward the end of your script. I may have only had these issues because I have some features turned off in the settings, I don’t know. Hope this helps!

    • Mark 4 February 2010 at 7:47 pm #

      Hi Bryan. Yeah this is a tricky one. Some themes automatically add a <p> tag before the page content. Some do not. If I remove the closing paragraph tag, it will therefore validate on some websites and not others. I’ll mod the code in the next release to check for the presence of the <p> tag and close it only if it exists. Hopefully this should fix the problem. Variation is great, but it really makes life hard :) Thanks for the feeback BTW.

      • Bryan Brazil 5 February 2010 at 1:45 pm #

        Haha, I figured they were there for a reason! I should have just enclosed my TOCC trigger in paragraph tags, I didn’t think of that. Thanks!

      • Mark 5 February 2010 at 8:05 pm #

        Nah my fault. When I was coding I thought to myself that assuming there is an opening paragraph tag may cause somebody a problem… and of course it did. I’ll see what I can do to fix it in the next release.

  3. Sue James 4 February 2010 at 9:32 am #

    Forgot to mention in my previous post that because voting for TOCC on WordPress.org automatically removed the credit at the foot of the contents (I’d not realised that would happen), I’ve inserted a line of credit in the footer of our website. :)

    • Mark 4 February 2010 at 7:56 pm #

      Cheers Sue. Thank you very much for the positive comments. You are very kind to add credit to your footer. It is odd that the author credit disappeared as it was not intended so. There is a setting in the “general options” pane called “show author credit” that when de-selected will hide the link. BTW does your site use a dedicated server, or is it hosted. I ask becuase it is extremely quick.

      • Sue James 5 February 2010 at 3:57 pm #

        Hi Mark …

        A “duh” moment for me, as I’d forgotten I must have unticked that box when putting the credit in the footer instead. :)

        If you revisit our site, you’ll notice I’ve now added a post to the “What’s New” (blog) area of our site … and have tagged it to the “Featured Content” widget as well.

        We’re delighted with how easy it is to use, the viewing options component and how elegant it looks.:) SO much nicer than all others I trialled.

        Thanks for the feedback re the speed with which our site pages load. Always nice to know that is working well for others too.

        AussieHost (http://www.aussiehost.com/) is our hosting provider, and we do share one of their huge servers with many other clients. However we have a dedicated IP for our main bjseminars.com.au website (tho not for our blogs) because of our online shop. No sure if that makes a difference?

        Cheers
        Sue

      • Mark 5 February 2010 at 8:02 pm #

        Cheers Sue for the lovely comments and backlink :)
        With regard to speed, I wonder how fast your site is in USA or Europe. Have you had any feedback? I would love to host locally but unfortunately most of my traffic is not from Aus.
        (BTW, I have now added a new plugin that will allow non-registered users to edit their posts within 30mins as long as the IP address has not changed.)

      • Sue James 6 February 2010 at 4:57 pm #

        Hi Mark

        I’ve not specifically asked for feedback re the speed of our site in the USA or Europe – but have had positive comments from colleagues in both about the speed and ease of use of our site, so assume it’s working well for them too.

        Another thing that gives me confidence that our current hosting is working well for us is that one of the sites we have on our server is predominantly accessed from/in the US and Europe.

        I’m managing not only our own site and three blogs, but also http://positivechangecore.org for Positive Change Core, an international network to which I belong. I am one of only a few (if not the only) Australian member of that group. We host the PCC site on our server as part of my voluntary role in managing the site – and to date nobody has had any issues with speed of access or use, whether simply visiting the site or using the Admin area to add content etc.

        We transferred to AussieHost as I was finding our previous provider less than responsive in terms of support – and I liked the fact that we could purchase a package at a very reasonable rate that would allow us to host and manage several domains together.

        I was a little concerned about transferring the PCC site from their previous hosting provider (Dreamhost) based in the US. Another member had previously hosted the site, but when I took up the webmaster role I needed access not only to the WordPress admin area, but also to the main site admin functions (eg php, ftp access etc.)

        However there have been no issues with speed of access to the site since the transfer to an Australian hosting service.

        Hope that helps. :)

        Cheers
        Sue

      • Mark 7 February 2010 at 5:06 am #

        Thanks Sue :)

  4. Sue James 4 February 2010 at 9:25 am #

    Hi Mark, just a note to say I discovered your plugin yesterday and installed it on our website. Fabulous! :)

    I’d tried several other methods and plugins for creating a sitemap for us, and given up with all of them in disgust. Your Table of Contents Creator is an elegant and easy-to-use solution, which looks great on the page. Thank you!

    I’d offer to answer your plea for help with development or icons, but sadly these are not my areas of expertise. :)

    Cheers
    Sue

  5. Nelton 1 February 2010 at 10:14 pm #

    Hi, firstly i would like to say kudos. This is simply a lovely plugin and makes searching for posts very east not only for the visitor but for the admin as well. Wouldnt like to start on how useful it is where SEO is concerned as thats well understood.
    However I’m facing a problem. Hopefully you can help me resolve it. I use TOCC 1.6.1. I have a parent category called ‘Misc’ and sub-categories as Mobile->Misc and Technology->Misc having totally different posts. However in the sitemap i get the same posts in all the Misc categories.
    Please refer to the site http://3nlabs.com to understand it better.
    Looking forward to your help. Keep up the good work.

    • Mark 3 February 2010 at 3:23 am #

      Hi Nelton. I will look at this bug straight away. In the inetim, if you set the “display as flat list” option, this should fix the problem (but your sub-cats will be displayed in the parent list).

  6. luxonalex 1 February 2010 at 12:05 pm #

    Beautiful TOC, Great work…I like it
    Thank you very much

  7. Aliuser 30 January 2010 at 6:03 am #

    Hi,
    I would like to take this moment and say thank you to you and your team.
    Recently I have problem in using your Table of Contents Creator plugin in my website. It has error message and the table of contents cannot be generated.
    About a week or two after I have written an email to you, a new version 1.61 which fixed my problem.
    Thanks for being fast in responding to users’issues and concerns.

    • Mark 30 January 2010 at 6:43 pm #

      Thanks Aliuser. I’m sorry it took a couple of weeks to fix your problem. Normally the turn around is a little faster than that however 1.6.0 was a rewrite of the original code and as such quick fixes of older versions were not possible. I had received a couple of emails concerning bugs in version 1.5.1, but had to hold off until 1.6.0 was thoroughly tested before releasing the upgrade.

  8. iplnts 29 January 2010 at 8:34 pm #

    Hi Mark!

    I downloaded the ver. 1.6.1 – The jump to author summary page works! Thank you for this useful modification and improvement.

    I like your plugin! It is great (tremendous works :) and a proper solution how a Site Map need appear. The documentation and version and user reaction follow up also very good!
    (***** rates + * Doesn’t require any tweak working with else plugins. I’m using 70 else ones ;)

    Congratulation! Many thanks for it.
    Cheers,
    iplnts

    • Mark 30 January 2010 at 6:36 pm #

      Thank you iplnts. Glad you like it. Please feel free to request more features or improvements.

  9. DazzlinDonna 28 January 2010 at 5:21 pm #

    This is, hands down, my favorite plugin – ever. I’ve voted for it, but I’d love to also buy you a cup of coffee. Got a donation button?

    • Mark 30 January 2010 at 6:28 pm #

      Hi Donna. Thanks for the kind words. I was really dreading the reaction to the version 1.6.0 as I spent weeks rewriting the code and even though I tested it to death, I expected it to break lots of sites. To my surprise, this has not happened so far (hopefully I do not jinx myself with this statement – lucky I’m not superstitious :) ). I do not have a donation button, but thank you very much for offering. I write software because I enjoy the challenge. That is payment enough for me at this stage. BTW, if you have any suggestions or wish lists items for TOCC, please feel free to send them on through.

  10. derwood 28 January 2010 at 2:46 am #

    Working on setting up a site for a friend, and have a small issue with TOCC. It found all his articles except for those in a category called Childrens Stories.

    If you go here: http://www.peteradamsalomon.com/?page_id=91
    You can see what I’m talking about.. It generates the TOC quite beautifully.. But, if you pull down the comments on the right, you’ll see that Childrens Stories is there, but it is not on the TOC page.

    Any ideas would be greatly appreciated.

    thanks

    • Mark 28 January 2010 at 4:35 am #

      Hi Derwood,
      It would be appreciated if you can please do a couple things to help me find the fault…
      1) Upgrade to version 1.6.1 and see whether this fixes the problem.
      2) In the Blog Options section, please select the option “Show as flat list” and see whether this fixes the problem.
      3) If the above does not work, in the General Options section type “DEBUG_ON” (without quotes and all in caps as shown) in the Table of Contents Title and press the Update Options button. This will not make any noticable changes to your page, but will hide a lot of debug information in a comment in your page’s source code. I can use this info to help debug.
      4) If all else fails, would it be possible for you to supply me with a hierarchial representation of you category structure (found under posts/categories).
      Please let me know how you went.
      Mark.

      • derwood 28 January 2010 at 8:30 pm #

        Mark,
        A quick update.. I updated to 1.6.1 tonight, and that had no effect. However, when I changed the setting to Show As Flat List, that started showing the Childrens Stories section.

        If you need me to do more, please let me know.. I’ll help out however I can.

      • Mark 30 January 2010 at 6:34 pm #

        Hi Derwood. Thanks for the update and thanks for trying the steps I sent you. Setting to Flat list has identified a single function as the problem, so this has helped me a lot. Is your table of contents now good enough to wait for the next release before I fix the problem? if not, I will make the fix a priority.

      • derwood 31 January 2010 at 12:14 pm #

        The workaround to choose flat list is more than good enough for now.. Thanks for the ideas.
        And, thanks for this plugin.. It’s quite good.

  11. Andi 28 January 2010 at 2:18 am #

    Catchable fatal error: Object of class WP_Error could not be converted to string in /home/mybeste6/public_html/ics/member/wp-content/plugins/table-of-contents-creator/table_of_contents_creator.php on line 644

    That’s the error I am now getting. This just started. It was working fine an hour ago and now – it’s not. I installed two other plugins and then saw this. I deactivated those to see if that would change anything but it didn’t.

    What do I do here?
    - Andi

    • Mark 28 January 2010 at 6:18 am #

      Hi Andi,
      You are the second person to report this problem. Can you please upgrade to version 1.6.1 and see if the TOC works. If you see strange entries, this means the new code I have implemented has trapped a possible culprit. It will help heaps if you could then please send me a link to your site to help debug the problem.
      Thanks,
      Mark.

      • Andi 28 January 2010 at 10:01 am #

        I’d be happy to… I don’t see a way to upgrade to 1.6.1. Is there a download link?

      • Andi 28 January 2010 at 10:02 am #

        ahh just found it!

      • Andi 28 January 2010 at 10:03 am #

        hmmm no didn’t find it – just thought I did – on the wordpress plugins site page for this plugin. No version 1.6.1 downloaded though when I clicked “download”

      • Mark 28 January 2010 at 3:40 pm #

        Sorry about that. Version 1.6.1 should now be available. It is also downloadable from my site.

      • Andi 28 January 2010 at 5:23 pm #

        Hi Mark the 1.6.1 version worked. It showed up in the update panel and voila… working again! I’m so glad because this is a GREAT plugin. The styling is beautiful and you’ve done an amazing job here.

      • Mark 30 January 2010 at 6:29 pm #

        Thanks Andi. Your comments are very much appreciated.

  12. iplnts 27 January 2010 at 2:16 pm #

    Hi Mark!

    Pardon!!! Something went wrong with the inserted links…I’ve inserted a pre code tag which doesn’t worked on this commenting page, and see our previous comment conversation thread on the comment-page-2 #comment-390!

    • Mark 28 January 2010 at 6:22 am #

      Hi iplnts. Welcome back.
      The author link uses the author URL as specified in the WP admin user panel. I have released a new version (1.6.1) that uses your suggestion (?author=authorID) if the author URL is blank. Hopefully this fixes your problem and gives you a more functional sitemap.
      BTW, I plan to release author sorting in the next revision :)
      Cheers,
      Mark.

      • iplnts 28 January 2010 at 12:15 pm #

        Hi Mark!

        Thanks for releasing this little modification, and I’m awaiting for the author sorting too :)
        Further good work for you!
        iplnts

      • iplnts 28 January 2010 at 12:47 pm #

        Hi Mark,

        BTW: Could you help – where to find the 1.6.1 version?
        Does this home download link contain that?
        (it is only a .zip without a version number, and WP official site contains only the 1.6.0 yet)
        :)

      • Mark 28 January 2010 at 3:39 pm #

        Sorry. Forgot to update the readme.txt file to let WordPress know the latest version is approved for release. It should now be available for download.

  13. iplnts 27 January 2010 at 2:10 pm #

    Hi Mark!

    (I’m here again and sorry for lost the thread)

    What’s a great change in 1.6.0! Thank you for these improvements.

    Only tiny remark:
    There is not sorting options for the author, it’d be also useful :( However it is not so big problem, owing to when showing the author there is a link in which the author name is written. That author name..
    Unfortunately, the empty href will point to that page on which the table of contents appears. But, if you’d provide on that link href the ?author=authorID the link would point out to that particular author summary page. In this way there is not such a big need for the sorting the TOC by author. Someone can jump to that details in straight. But, it is true it won’t sow the sorted authors’ TOC summary.

    — Back to the lost thread #
    My Firefox extension is on the AMO repository:
    here is the link:
    https://addons.mozilla.org/en-US/firefox/addon/13625
    and take a look on how the TOC is in working on my support page
    http://editandnote.ritty.hu/
    This extension is in very infant stage and requires some re-work and there are very much of inherent ideas about its improvement, however unfortunately I’ve not time to deal with it momentarily.

    But a possible suggestion for you : This type of PAGE TOC manipulation would also be very useful WP Plugin too, I think. If you have enough time and think also would be useful, pls write a WP Page TOC/outline plugin. Use my code getting from this FF extension for ideas as you wish. It is free also. Download the extension simply rename the xpi to zip and see the en_toolbar.js
    Let me know at my email anything about it.
    —-
    About the theme hack. I’m using Atahualpa theme with which I’m completely satisfied. I feel its ideas and think very good. A little bit else than the normal theme structure, but very flexible and completely user customizable. Only one can know how to do it. Must be very familiar with the CSS and also a little bit the WP things. It is/was a challenge for me again. I was rather engaged in tweaking some plugins working them together.

    Thanks again for your plugin considering and making these ideas to be workable.
    iplnts

  14. cheri riley 24 January 2010 at 9:45 pm #

    I am using WordPress 2.91 and Thesis 1.6 and unfortunatelty I am unable to create a TOC. Used the button to have it created…manually tried to do it using the deactivate-visual-editor plugin on a new post and inserted the TOC code. Just the title of the page comes up on the new page. Notice that tested up until WordPress 2.9. Anyone else experiencing this? Was really looking forward to getting this up and working. Have over 100 posts on this blog. Is there a limit to do TOC?

    • Mark 24 January 2010 at 9:53 pm #

      Hi Cheri,
      No there shouldn’t be a limit. I’ve seen some sites with thousands of posts that work fine with TOCC. I’ve had a few complaints of this type with the current version. May I suggest downloading the latest work in progress version. It is complete but I am waiting on a translation before I officially release it. The WIP version is available here… http://markbeljaars.com/download/wip/plugins/table-of-contentents-creator.zip
      To install it, you need to unistall the previous version of TOCC, then click add new plugin and select the upload link.
      There has been one reported bug in the WIP version that it does not display all posts, however I am yet to veryify this as it works on all my test sites.
      The problem with wordpress is the huge number of variations when you concider WP version, theme, PHP version and to some extent the host OS.
      Please let me know if it works for you.
      Thanks,
      Mark.

  15. philip 23 January 2010 at 4:39 pm #

    TOCC – an excellent table of contents widget. Can this also generate a TOC for a single page or a single post? I am running a word press made up of mostly pages, and some are long. Can a TOC be added to the top or sidebar?

    thanks
    philip

    • Mark 23 January 2010 at 8:48 pm #

      Hi Philip.
      TOCC is not really designed for single pages, however the next release (1.6.0) can be adapted to display anchor lists for single pages or posts. This version is finsihed but I am waiting on a translation before I officially release it. In version 1.6.0, the current page has an “active” class. The tocc.css could be modified to hide all other pages by default, and only show the active page. This is not ideal as the HTML file will be larger than required (and thus take longer to serve). The source code can be modified slightly to only serve the active page list. I can help you out with this if required.
      TOCC does not run natively as a widget yet, but in version 1.6.0 there is a single PHP function call that can be used to call the plugin. There’s a great plugin called “Executable PHP widget” that is only a few handfuls of lines long that will enable you to call a PHP function from a textbox. I am planning on including sidebar widget functionality in 1.6.1 (the architecture is already in place).
      Finally, TOCC 1.6.0 does not display summaries for anchors. In version 1.6.1 I am planning on implementing a special tag for anchors that can be used to hold a summary. I can expedite this functionality if you require it.
      Mark.


Trackbacks/Pingbacks.

Leave a Reply