This is a project for the future, while some parts, like NameSpaces, have started in Tiki10.

Goal: generate printable business plans from a wizard-ish interface. This would be very similar to a quote/proposal management system.

This will be a step in the general direction/project of Online Publishing House project.

Example use case


Mike the electrician

Mike is an electrician and decides to start his freelance business after working for other companies for a while. He needs to prepare a business plan to get a credit line and bank loan. He has never made a business plan and he is not very techie. He goes to see his local development agency and they give him training and access to tools, to help him start his new business. One of these tools is an online business plan. Mike will enter his information, and can share access with his people helping him (his sister Samantha has her own little business and she will help him).

Nadine, the counselor

Nadine helps entrepreneurs with advice and coaching. She needs to be able to make edits to the business plan (which Mike can see of course).

Hamed, the system admin

Hamed works for the economic development agency, and is responsible for the system. He needs to be able to update the business plan templates (based on feedback from the counselors), so that new users in the system have access

Big picture concerns

  1. Editing the business plan, helpers and conditional content
    • For non-techies, with no training
  2. Collaboration: Workspaces/registration/permissions/templates/data channels
    • There will be several hundred plans per year
    • An entrepreneur can have more than one business plan
  3. Print output, page breaks, table of content
    • Needs to be nice enough to go to the bank for a loan
  4. Management of the system
    • Need to update templates without a programmer



  • There are 7 sections
    • Some sections are non-editable
    • We want automatic TOC
  • There are 6 variants and they need to be easy to modify
    • If business plan of type X, section 4 is skipped
    • We need some sort of conditional data like Display Logic.
      • Have different templates instead
  • Embed Spreadsheet for financial projections
    • There are 4 spreadsheets
    • Should hide empty cells
  • Upload files (not printable via Tiki)
  • Some tips appears when editing, but not when printing
    • Via modules
  • Dynamic variables or attibutes for things that are repeated like company name, etc.

Make it easy

Make it look good


  • There will be hundreds of business plans on one site, so we need Namespaces/Workspace
    • Not needed for this project, but surely for full books
  • Collaborative editing (non real-time) of document between promoter and his advisers (Document not visible by anyone else)
  • Version history
  • Last modified date of wiki page should appear on page, presumably via PluginSmarty


  • From wiki page to tiki-print.php, add onclick="window.print()" to save a click
  • To be able to force page breaks
  • Make sure all object types print nicely
    • Wiki Text
    • WYSIWYG (tables mostly)
      • Or ask Jonny to port/improve PluginFancyTables to support nice table editor GUI
    • Images
    • Spreadsheet
    • Map (nice to have)
  • Justified text for printed version
  • Should be exportable if some want a more fancy design
  • page-break-inside: avoid; for tables and ideally between header and 1st paragraph
  • wkhtmltopdf via Tokens
  • Review support for ToC
  • SVG from drawing is not good at the moment (image is hidden, and scrollbars appear)


  • The business plan should be pre-filled with template data, presumably via Content template and Data Channels
    • So as the model changes, all new business plans will use the new one


  • Can we fit all on one long page? (It is 20-50 (max) pages in printed mode)
    • It would be much simpler than having to deal with structures (keep in mind the system will manage several hundred business plans
  • Wiki-centric (likely) or tracker-centric (less likely)?

Ideas for later

Not as part of the 1st phase, but could be nice later

  • Evaluation mechanism, for the business plans. Committees at the economic development agency could review the plan and rate it
    • Tracker with page selector
  • How about also making a Slideshow ?

What it would look like

  • I envisage a business plan is one long wiki page (up to 50 printed pages) (so we avoid dealing with structures for this project, but we'll need them for full books)
  • We have some sort of new plugin that shows/hides sections depending on what type of business plan it is (ex: if you are a freelancer, the HR/staff/hiring strategy disappears)
  • There will also be non-printable tips (pop-ups to help our electrician...)
  • The business plan contains some tables and we need an easier way than wiki syntax tables
    • It could be PluginWYSIWYG (which would need to work inline)
    • Or have a plugin edit helper type interface for tables (like what we have now to create, but accessible in view mode.

Print from browser

  • Needs to support page break
  • Need doc to remove header/footer (which is added by the browser)

Who is working on this

  • Marc Laporte for an economic development agency in Canada.

Generating PDFs

Needs enhancement

  • PluginFootnotarea doesn't react well to being more than once per page

Interesting links

Notes from discussion with LP

  • use transclude instead of HTML in page
  • CSS: before h2: page break
    • We need to have a distinct/dedicated Print CSS.
  • --- should become pagebreak in print
  • Tables: use thead so printing
  • new plugin {Keeptogether}
  • paragraph formatting, without br for line break (at least in tiki-print.php)
  • PluginWYSIWYG should be independent, with undeactivatable HTMLPurifier
    • Would be nice to control which tools are available, so one param should be to control the number of tools.
  • PluginTable to use plugin helper?
  • Idea for contextual help
    • Add an attribute to the page, which adds tips in a module, for the same section name coming from another page.
  • PluginAttributes instead dynamic variable
    • Create a new Attributes module so people can update their attributes
  • Date: auto-generated: should be date of last modification of page
  • Use wkhtmltopdf (which works on Dreamhost, just dump executable)
    • Benefits
      • Easiest for now
      • Fast
      • Good enough quality
    • Limitations
      • No page numbers
        • Can't do, go see section 5.3 on page 18
          • You must name the section manually, and reader needs to find it
      • Limited to have all content on same page (so can't work for 500 pages)
      • No control on header and footer? (check if it's in the CSS or a PDF software to edit the PDF after)
      • No watermark?
  • Start with data channel
    • Make pages with perms, and file galleries with perms
    • ...
  • Maketoc: hide section when empty (this should be coded by LP to be future-proof)
  • tiki-print.php: ignore empty sections
    • We'll add this as a Tiki option (LP will do this part)
    • We'd want a way to not have page title in print mode, perhaps via perspectives
      <style type="text/css">
      .pagetitle {display:none}
  • Drop-downs: should be part of the template, or we could make a plugin
  • PluginOptionselection could be used but seems "make work" as it could just be text (with contextual help for user)
  • Attachments: should use File Gallery, but below pages
  • Use PluginArchiveBuilder which uses wkhtmltopdf
  • PluginSpreadsheet: in view and print mode, hide columns/lines with no data, and try to not hide text (if text is larger than cell)
  • If I want no print, there should be a class noprint
  • Override default plugin param: a lot of work
  • no output in print mode for certain plugins: would need some work, but doable
  • doc, videos and webinars
  • category transitions
    • Create new plugin to check if current page is in category X and show different text
      • Draft
      • Please review by conselor
      • Please review by entrepreneur
      • Approved
  • Images: make it easier to upload/resize/crop, Similar to Image Manipulation (image cropping, color changing, watermark, etc.)
    • to test what happens to print mode, when there is html resize on images?
  • Improve Code Mirror
    • For the syntaxes used, make them cleaner (ex.: bold's underscores could be smaller/lighter)
  • We'll likley need workers for bigger print projects

Phase 2

  • For more complex business plans
  • A group for each user
    • New feature: Share access to my work to a specific email
      • This person will register or is already in the system
      • With a token secret URL or a passcode to share offline