Loading...
 

Daily reports

Daily Reports is a new feature in Tiki4, and improved in Tiki8 and Tiki9 that informs you about changes on sites you are watching with one periodic email.

It is a summarised version of the normal notifications and it replaces them.



Enabling the feature


User Watches and Daily Reports have to be enabled. I recommend to enable the My Tiki menu too.

In Tiki6, for instance, you can enable them here:
  • Admin Home -> Features -> Show My tiki: check
  • Admin Home -> Features -> User Watches: check
  • Admin Home -> Features -> Daily Reports: check

Since Tiki8, at least, all three features are found in "Admin Home → Community", and Show My tiki is only found in "Admin Home → Community"

If User Watches and Daily Reports are enabled, each user can decide to enable reports, or to further use normal notifications.

Usage

To use reports, go to My Watches in the main application Menu from your tiki site (MyTiki > My Watches - tiki-user_watches.php) and adjust your preferences to fit your needs.

tiki5_daily_reports.png


Prepare the cron job

The next step is to prepare the cron job.

  • Before Tiki6:
    • Open tiki-user_reports_send.php and link $tikiUrl in line 15 to your Tikiwiki installation.
      Since Tiki6 this step is not needed any more.
  • Since Tiki9:
    • You can call the cron job from external servers, by means of using a token to allow the cron job to be launched remotely.
    • You can also, as always, launch the cron job locally from the same server where the tiki is hosted, without using any token.
  • Since Tiki12.3:
    • You can use Console (console.php script) to manage the daily reports on the command line. Therefore, you can now use this feature in MultiTiki setups, appending the param like --site=sitename.example.com.

Then you can enable a cronjob. Example for a cronjob that calls the script every day at 3 am:

Since Tiki12.3
00 3 * * * cd /var/www; php console.php daily-report:send

Or
00 3 * * * cd /var/www; php console.php d:s


Replace /var/www with your /path/from/root/to/tiki

In case of Tikis with domains site1.example.com & site2.example.com, in a MultiTiki setup, append an argument like --site=sitename.example.com
00 3 * * * cd /var/www;php console.php d:s --site=site1.example.com
00 3 * * * cd /var/www;php console.php d:s --site=site2.example.com


The above may not work on all server configurations. You are encouraged to test the command first on the console at the server, to check that there is no error message or suspicious warning. If you can't run it this way, the cron may be called through the web server.

00 3 * * * wget -O /tmp/out http://localhost/tiki-user_reports_send.php


or something like

00 3 * * * /usr/local/bin/wget -O - -q -t 1 http://localhost/tiki-user_reports_send.php


or even with some command based on the other command curl and an associated command (like "mutt", which needs to be installed separatedly) to send the output of the cron job to an email account. See the exmple below.


Token access for anonymous users

And since Tiki9, you can use a token in the url to call, in order to allow the cron script to be launched from an external server. An example of using the token and sending the output by email at 5, 11, 17 and 23h each day is shown below:

0 5,11,17,23 * * * curl 'http://externaldomain.org/tiki-user_reports_send.php?TOKEN=98762542c722d08b14bb54b029389612' 2> /tmp/output.txt | mutt -s "[FOO]tiki-user_reports_send.php?TOKEN=... error output" foo@bar.org < /tmp/output.txt


Tip:
For wget to work in virtual servers, you need to ensure that you have the package xterm installed.

How it works internally

lib/reportslib.php
Contains the main class and all important code for reports.

tiki-user_reports.php
This file is used to enable or disble reports and to set the report preferences. It catches POST requests from tiki-user_watches.php

tiki-user_reports_send.php
This file is the file that initiates sending reportemails. It can and may only be called by the server.
If you want to use reports before Tiki6, open the file and set $tikiUrl in line 15 to your Tikiwiki installation.
The last step is to enable a cronjob that calls this file.

Once there are some actions done that would send emails to the user, those action leave a record in the mysql table tiki_user_reports_cache, and when the cron job is run, the records in this table will be used to feed the report to be sent to the user by email.

Example of a Html report:


reports_example.png (120.26 Kb)

Changing groups of users to receive daily reports by default

It was not until Tiki6.5, 7.3 and 8.0 that a tiki admin could indicate that new users receive daily digests of notification emails by default.

Therefore, many live tiki sites using previous versions of the software since long ago, with potentially hundreds of users already, might not benefit from that performance improvement untill all users manually indicated that they wanted to receive daily digests instead of instantaneous emails. However, there is some performance limitation in tiki when you have hundreds of users receiving instantaneous notification emails each time a user adds some new content. This can mean moving from a couple of seconds, on a shared hosting, to have tiki back ready after sending some new coment or trakcer item, for instance, into lasting 45 seconds before tiki is ready back after sending all the emails associated to that same action (posting a new comment or tracker item, in this example)

Therefore, it's not rare that an admin would want to change at once a whole group of users from receiving instantaneous emails, to receiving them grouped daily based on a cron job. This change alleviates tiki from sending so many emails with every new action, and brings tiki back to a fast performance from the end user point of view.

This change can be applied directly with a SQL query on the database (through phpmyadmin or by other means). If your groups of users is "foo_group", then the SQL query to run directly in your mysql db is:

sql code to run directly on the on mysql database
INSERT INTO `tiki_user_reports` (`user`, `interval`, `view`, `type`, `time_to_send`, `always_email`, `last_report`) (SELECT uu.`login`, 'daily', 'detailed', 'html', '0000-00-00 00:00:00', 1, NOW() FROM `users_users` uu, `users_usergroups` uug WHERE uug.`groupName` = 'foo_group' AND uu.`userId` = uug.`userId`  AND uu.`login` NOT IN (SELECT user FROM tiki_user_reports));



Related
User Watches
Action log

alias names for this page
Daily Reports for User Watches | DailyReports | PeriodicReports | Periodic Reports | Daily digest | DailyReport | Daily Report

doc.tiki.org


Bootstrap

AdminGuide

UserGuide

Keywords

Keywords serve as "hubs" for navigation within the Tiki documentation. They correspond to development keywords (bug reports and feature requests):

Accessibility (WAI and 508)
Accounting (7.x)
Articles and Submissions
Backlinks
Banners
Batch (6.x)
BigBlueButton audio/video/chat/screensharing (5.x)
Blog
Bookmark
Browser Compatibility
Link Cache
Calendar
Category
Chat
Clean URLs
Comments
Communication Center
Compression (gzip)
Contacts (Address Book)
Contact us
Content Templates
Contribution (2.x)
Cookie
Copyright
Credit (6.x)
Custom Home and Group Home Page
Date and Time
Debugger Console
Directory of hyperlinks
Documentation link from Tiki to doc.tiki.org (Help System)
Docs 8.x
Draw 7.x
Dynamic Content
Dynamic Variable
External Authentication
FAQ
Featured links
File Gallery
Forum
Friendship Network (Community)
Gmap Google maps
Groups
Hotword
HTML Page
i18n (Multilingual, l10n, Babelfish)
Image Gallery
Import-Export
Install
Integrator
Interoperability
Inter-User Messages
InterTiki
Kaltura video management (4.x)
Karma
Live Support
Login
Logs (system & action)
Look and Feel
Lost edit protection
Mail-in
Map with Mapserver
Menu
Meta Tags
Mobile Tiki and Voice Tiki
Mods
Module
MultiTiki
MyTiki
Newsletter
Notepad
Payment
Performance Speed / Load
Permissions
Platform independence (Linux-Apache, Windows/IIS, Mac, BSD)
Polls
Profiles
Profile Manager
Report
Toolbar
Quiz
Rating
Feeds
Score
Search engine optimization
Search
Search and Replace
Security
Semantic links (3.x)
Shadowbox
Shadow Layers
Share
Shopping cart
Shoutbox
Slideshow
Smiley
Social Networks
Spam protection (Anti-bot CATPCHA)
Spellcheck
Spreadsheet
Stats
Surveys
Tags (2.x)
Task
Tell a Friend, alert + Social Bookmarking
TikiTests (2.x)
Theme CSS & Smarty
Trackers
Transitions (5.x)
TRIM
User Administration including registration and banning
User Files
User Menu
Watch
WebHelp
WebDAV (5.x)
Webmail
Web Services
Wiki 3D
Wiki History, page rename, etc
Wiki Page Staging and Approval (2.x)
Wiki Plugin extends basic syntax
Wiki Syntax
Wiki structure (book and table of content)
Workspace
WSOD
WYSIWYCA
WYSIWYG (2.x)
XMLRPC


Tiki Newsletter

Delivered fresh to your email inbox!
Newsletter subscribe icon
Don't miss major announcements and other news!
Contribute to Tiki