PluginProbe
Timed Content / 2.50
Timed Content v2.50
2.99 trunk 1.0 1.1 1.2 2.0 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.10 2.11 2.12 2.15 2.2 2.3 2.3.1 2.4 2.5 2.5.1 2.50 2.51 2.52 All 67 releases
timed-content / readme.txt

readme.txt in Timed Content 2.50, at readme.txt

351 lines 16.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 === Timed Content ===
2
3 Contributors: kjvtough, awelzel
4 Tags: marketing, marketing tool, post, page, date, time, timer, timed, show, hide, content, schedule, display
5 Requires at least: 3.8
6 Tested up to: 5.0
7 Stable tag: 2.50
8 License: GPL2
9
10 Plugin to show or hide portions of a Page or Post based on specific date/time characteristics.
11
12 == Description ==
13
14 The Timed Content plugin allows users to specify that a portion of a Page or Post should appear/be visible or disappear/be invisible based on given time characteristics. You can also make portions of a Post or Page be visible at certain dates and times; you can even set up a schedule!
15
16 The plugin adds the following:
17
18 * A "client-side" shortcode that allows the marking of content to appear or disappear after a given time interval; a "fade" effect is included. This functionality is intended to be used for special effects only, as content marked in this manner is still visible in the HTML source and, therefore, not a secure method of hiding content.
19 * Two "server-side" shortcodes that allow the marking of content to be visible only during specified date/time intervals. This functionality **can** be used as a secure method of hiding content, because the marked content will be included in the Page/Post **only** when viewed in the specified date/time intervals.
20
21 A TinyMCE dialog is included to help users build the shortcodes. See the Screenshots tab for more info.
22
23 == Installation ==
24
25 1. Extract the contents of the package to the `/wp-content/plugins/timed-content` directory
26 2. Activate the plugin through the 'Plugins' menu in WordPress
27
28 == Frequently Asked Questions ==
29
30 = Old rules after updating to version 2.50 =
31
32 In versions prior to 2.50 the date/time format was not handled very well which caused quite some confusion. Therefore version 2.50 now uses a fixed format similar to ISO 8601: yyyy-mm-dd HH:MM
33
34 Existing shortcodes and rules containing dates in the format mm/dd/yyyy should still work, but when editing rules the date value is converted to the new format.
35
36 To be sure, you should check your existing rules and shortcodes if you upgraded from a version below 2.50.
37
38 = Using Timed Content in Gutenberg =
39
40 If you want to use Timed Content with Gutenberg you have to add a "Classic" block. There is no way to show or hide other content blocks with Timed Content.
41
42 == Screenshots ==
43
44 1. An example showing use of the `[timed-content-client]` shortcode. The "alarm clock" button on the editor menubar brings up a dialog box to help build the Timed Content shortcodes. All of the Admin-side screenshots are from Wordpress 3.7, but the functionality is the same for 3.8.
45 2. The "Add Timed Content shortcode" dialog showing the Client tab. Check the attribute you want to add and fill in the textboxes.
46 3. The "Add Timed Content shortcode" dialog showing the Server tab. Check the attribute you want to add, then click on the Date and Time textboxes.
47 4. The date and time pickers help you format a correct date and time. Here's the jQuery UI Datepicker in action.
48 5. The "Add Timed Content shortcode" dialog showing the Timed Content Rules tab.
49
50 == Changelog ==
51
52 = 2.50 =
53
54 * Major code refactoring and cleanup - please check your existing rules and shortcodes if they still work as expected and change them if needed!
55 * Increased minimum required WordPress version to 3.8
56 * Date format for new shortcodes and rules is now always "yyyy-mm-dd HH:MM" (similar to ISO 8601)
57 * Existing dates in rules and shortcodes will be parsed as "mm/dd/yyyy HH:MM" if they contain slashes
58 * Time values containing "AM" or "PM" will still work but converted to 24h format internally
59
60 = 2.15 =
61
62 * Fixed 404 error caused by wrong URL for jquery date/time picker localization.
63
64 = 2.10 =
65
66 * Fixed a problem with unexpected `p` elements inside server side timed content sections.
67
68 = 2.9 =
69
70 * Changed default sort order of the rules in the backend to the title.
71
72 = 2.8 =
73
74 * Added debug parameter `tctest`.
75
76 = 2.7 =
77
78 * Fixed deprecated class constructors.
79
80 = 2.6 =
81
82 * New action hooks.
83 * `[timed-content-rule]` shortcode now accepts a Timed Content Rule name as well as an ID.
84 * Streamlined i18n for date/time pickers (Use values available in Wordpress settings and `$wp_locale` when available, combined *-i18n.js files into one).
85 * Some developer docs in the `readme.txt`
86
87 = 2.5.1 =
88
89 * Fixed `current_time()` bug in __rulesShowHTML() introduced in 2.5.
90
91 = 2.5 =
92
93 * Removed dependency on jQuery UI Dialog; now uses Thickbox.
94 * Added and modified `fix_date_i18n()` from https://core.trac.wordpress.org/ticket/25768 to better handle DST and timezones with i18n.
95 * Added custom filter `timed_content_filter_override` so admins can modify/replace `timed_content_filter` if necessary.
96 * Using built-in spinner image now instead of `wpspin.gif`
97
98 = 2.4 =
99
100 * Removed `timed-content-admin-tinymce.js` (No need anymore; required JS variables now hooked directly into editor). Fixes incompatibility with OptimizePress.
101
102 = 2.3.1 =
103
104 * Fixed minor bugs related to Exception Dates.
105 * Optimized rule periods arrays (array only needs 'status' and 'time' when it's meant to be human-readable).
106 * Added custom filter `timed_content_filter` to emulate `apply_filter( 'the_content', ... )` functionality for content.
107
108 = 2.3 =
109
110 * Fixed bug when setting up weekly recurrence for Timed Content Rules.
111 * NEW! Exception Dates (dates on which your Timed Content Rule shouldn't run).
112
113 = 2.2 =
114
115 * Much improved i18n
116 * New Spanish translation - Many thanks to Andrew Kurtis and Jelena Kovacevic from WebHostingHub (Nueva traducción de español - Muchas gracias a Andrew Kurtis y Jelena Kovacevic desde WebHostingHub).
117
118 = 2.1.5 =
119
120 * Unified dashicons among all of my plugins.
121 * Minor improvements in TinyMCE dialog UI and Date/Time UI controls.
122
123 = 2.1.4 =
124
125 * Fixed TinyMCE editor button for TinyMCE 4.x.
126
127 = 2.1.3 =
128
129 * Removed support for PHP4 in `customFieldsInterface.php`.
130 * Fixed Wordpress version check for deciding which image to use for TinyMCE button.
131 * Fixed "Strict Standards" warning in PHP 5.4 in `__getNextWeek()`.
132
133 = 2.1.2 =
134
135 * Dashicons support for WP 3.8 + added. Support for old-style icons in Admin/TinyMCE is deprecated.
136 * Added versioning to all `wp_enqueue_style()` calls.
137
138 = 2.1.1 =
139
140 * CSS for JQuery UI now loaded locally as required by Wordpress plugin repository rules.
141 * Improved UX on TinyMCE dialog and Timed Content Rules detail page.
142
143 = 2.1 =
144
145 * Fixed inconsistency in how the days of week to repeat on were being set up between the front and back ends.
146 * Fixed variable scope bug that occurred on activation.
147 * Improved i18n.
148
149 = 2.0 =
150
151 * Added Timed Content Rules.
152 * Replaced AnyTime plugin with jQuery UI Timepicker (http://fgelinas.com/code/timepicker) and Wordpress's internal jQuery UI Datepicker.
153 * HTML code created by `[timed-content-client]` can now either be enclosed in either `<div>` or `<span>` tags.
154 * Debugging statements for `[timed-content-server]` now displayed on Post/Page (only if logged in and have the rights to edit that Post/Page - no more digging into the HTML source).
155 * Improved code documentation.
156
157 = 1.2 =
158
159 * Upgraded AnyTime jQuery plugin.
160 * `timed-content.js` is now always loaded (Size > 1KB, so not a lot of extra overhead); fixes bug when multiple/nested shortcodes are used.
161
162 = 1.1 =
163
164 * Fixed some internal filename discrepancies.
165
166 = 1.0 =
167
168 * Initial release.
169
170 == Upgrade Notice ==
171
172 = 2.15 =
173
174 * Fixed 404 errors caused by wrong URL for date/time picker localization.
175
176 = 2.12 =
177
178 Fixed a problem with date format for server side rules in TinyMCE plugin to make sure it is alway mm/dd/yyyy.
179
180 = 2.10 =
181
182 Fixed a problem with unexpected `p` elements inside server side timed content sections. Upgrade now
183
184 = 2.5.1 =
185
186 Fixed `current_time()` bug in __rulesShowHTML() introduced in 2.5. Upgrade now
187
188 = 2.5 =
189
190 Better handling od dates w/ i18n. Upgrade now
191
192 = 2.4 =
193
194 New version fixes incompatibility with OptimizePress. Upgrade now
195
196 = 2.3 =
197
198 Fixed bug when setting up weekly recurrence for Timed Content Rules. Upgrade now
199
200 = 2.1.4 =
201
202 Fixed TinyMCE button issue. Upgrade now
203
204 = 2.1.3 =
205
206 Fixed various minor bugs. Upgrade now
207
208 = 2.1.2 =
209
210 Dashicons support for WP 3.8 +. Upgrade once you've upgraded Wordpress to >= 3.8.
211
212 = 2.1.1 =
213
214 CSS for JQuery UI now loaded locally as required by Wordpress plugin repository rules. Upgrade now
215
216 = 2.1 =
217
218 Fixed bug in how the days of week to repeat on were being set up between the front and back ends. Upgrade now
219
220 = 2.0 =
221
222 New Timed Content Rules feature; AnyTime replaced due to licensing. Upgrade now.
223
224 = 1.2 =
225
226 AnyTime JavaScript library was outdated, breaking the Timed Content dialog box. Upgrade now.
227
228 = 1.1 =
229
230 Fixed some internal filename discrepancies, causing visual editor to break. Upgrade now.
231
232 == Examples ==
233
234 `[timed-content-client show="1:00"]Show me after one minute. Since we don't want a fade-in, we can leave it out of the "show" attribute completely.[/timed-content-client]`
235
236 `[timed-content-client show="1:00:1000"]Show me after one minute with a 1000 millisecond (1 second) fade-in.[/timed-content-client]`
237
238 `[timed-content-client hide="1:00:1000"]Hide me after one minute with a 1000 millisecond (1 second) fade-out.[/timed-content-client]`
239
240 `[timed-content-client show="1:00:500" hide="5:00:2000"]Show me after one minute with a 500 millisecond (a half-second) fade-in, then hide me after five minutes with a 2000 millisecond (2 seconds) fade-out.[/timed-content-client]`
241
242 `[timed-content-server show="2013-Sep-13 20:30:00 -0600"]Show me starting at 8:30 PM Central Standard Time on September 13th, 2013. I will not be displayed before then.[/timed-content-server]`
243
244 `[timed-content-server hide="2013-Sep-13 20:30:00 America/Chicago"]Hide me starting at 8:30 PM Central Daylight Time (i.e., the same timezone as Chicago) on September 13th, 2013. I will not be displayed after then[/timed-content-server]`
245
246 `[timed-content-server show="2013-Sep-13 20:30:00 -0600" hide="2013-Sep-13 21:30:00 -0600"]Show me starting at 8:30 PM Central Standard Time on September 13th, 2013, then hide me an hour later. I will not be displayed before or after then.[/timed-content-server]`
247
248 `[timed-content-rule id="164"]Display me based on the settings for the Timed Content Rule whoseID is 164.[/timed-content-rule]`
249
250 == Usage ==
251
252 NOTE: All shortcodes can be built using the TinyMCE dialog. When in doubt, use the dialog to create correctly formed shortcodes.
253
254 **The timed-content-client shortcode**
255
256 `[timed-content-client show="mm:ss:fff" hide="mm:ss:fff"]Example Text[/timed-content-client]`
257
258 * `show` - Specifies the time interval after loading the web page when the marked content should be displayed. The attribute consists of three parts,
259 separated by colons: `mm` - minutes, `ss` - seconds, and `fff` - if greater than `0`, a fade-in effect lasting `fff` milliseconds is applied.
260 * `hide` - Specifies the time interval after loading the web page when the marked content should be hidden. The attribute consists of three parts,
261 separated by colons: `mm` - minutes, `ss` - seconds, and `fff` - if greater than `0`, a fade-out effect lasting `fff` milliseconds is applied.
262
263 Both attributes are optional, but at least one attribute must be included. Leading zeros (0) are optional. The shortcode's behaviour depends on which attributes are used:
264
265 * `show` only - Marked content is initially not visible, then appears `mm` minutes and `ss` seconds after loading with a `fff` millisecond fade-in.
266 * `hide` only - Marked content is initially visible, then disappears `mm` minutes and `ss` seconds after loading with a `fff` millisecond fade-out.
267 * `show` and `hide` - Marked content is initially not visible, then appears according to the values set in `show`, then disappears according to the values set in `hide`.
268
269 Your users must have JavaScript enabled for this shortcode to work.
270
271 **The timed-content-server shortcode**
272
273 `[timed-content-server show="datetime" hide="datetime" debug="true|false"]Example Text[/timed-content-server]`
274
275 * `show` - Specifies the date/time when the marked content should start being included on the web page.
276 * `hide` - Specifies the date/time after which the marked content should stop being included on the web page.
277 * `debug` - If `true`, adds some debugging statements to the web page as HTML comments. Defaults to `false`.
278
279 The date and time are expected to be yyyy-mm-dd HH:MM (similar to ISO 8601), for example `2019-04-07 15:30` for April 7, 2019, 15:30. For backward compatiblity old "human readable" date formats should also work, but these should not be used any longer!
280
281 Both `show` and `hide` attributes are optional, but at least one attribute must be included. The shortcode's behaviour depends on which attributes are used:
282
283 * `show` only - Marked content is outputted only after the date/time set here.
284 * `hide` only - Marked content is outputted only before the date/time set here.
285 * `show` and `hide` - Marked content is outputted only during the time period defined by the `show` and `hide` attributes.
286
287 **The timed-content-rule shortcode**
288
289 `[timed-content-rule id="{rule_id}|{rule_name}"]Example Text[/timed-content-rule]`
290
291 You can find the correct shortcode from the Timed Content Rules overview page, or use the TinyMCE dialog.
292
293 **Testing server side rules**
294
295 For testing the behaviour of server side rules at specific times, you may use the GET parameter `tctest` in an URL, followed by date and time in the format `YYYY-MM-DD+hh:mm:ss`. This works only you are logged in with a user which has the right to edit the displayed page or post. For example: `http://mysite.example?tctest=2018-02-10+19:16:00` will show the content as if it was February 2, 2018 at 19:16.
296
297 == Developer Documentation ==
298
299 **Action hooks**
300
301 `add_action( "timed_content_server_show", "{function_name}", {priority_level}, 4 );`
302
303 Fired when the `[timed-content-server]` shortcode is encountered *AND* the content is to be displayed based on the shortcode's show/hide attributes. Functions using this hook should accept the following arguments in order:
304
305 * `$post_id` - the ID of the currently displayed Post/Page
306 * `$show` - the value of the `show` attribute. If not set, defaults to "1970-Jan-01 00:00:00 +000"
307 * `$hide` - the value of the `hide` attribute. If not set, defaults to "2038-Jan-19 03:14:07 +000"
308 * `$content` - The content enclosed by the shortcode
309
310 `add_action( "timed_content_server_hide", "{function_name}", {priority_level}, 4 );`
311
312 Fired when the `[timed-content-server]` shortcode is encountered *AND* the content is to be hidden based on the shortcode's show/hide attributes. Functions using this hook should accept the following arguments in order:
313
314 * `$post_id` - the ID of the currently displayed Post/Page
315 * `$show` - the value of the `show` attribute. If not set, defaults to "1970-Jan-01 00:00:00 +000"
316 * `$hide` - the value of the `hide` attribute. If not set, defaults to "2038-Jan-19 03:14:07 +000"
317 * `$content` - The content enclosed by the shortcode
318
319 `add_action( "timed_content_rule_show", "{function_name}", {priority_level}, 3 );`
320
321 Fired when the `[timed-content-rule]` shortcode is encountered *AND* the content is to be displayed based on the Timed Content Rule's properties. Functions using this hook should accept the following arguments in order:
322
323 * `$post_id` - the ID of the currently displayed Post/Page
324 * `$rule_id` - the ID of the Timed Content Rule being called. Use `get_post_meta( $rule_id )` to get the Rule's properties.
325 * `$content` - The content enclosed by the shortcode
326
327 `add_action( "timed_content_rule_hide", "{function_name}", {priority_level}, 3 );`
328
329 Fired when the `[timed-content-rule]` shortcode is encountered *AND* the content is to be hidden based on the Timed Content Rule's properties. Functions using this hook should accept the following arguments in order:
330
331 * `$post_id` - the ID of the currently displayed Post/Page
332 * `$rule_id` - the ID of the Timed Content Rule being called. Use `get_post_meta( $rule_id )` to get the Rule's properties.
333 * `$content` - The content enclosed by the shortcode
334
335 **Filter hooks**
336
337 `timed_content_filter`
338
339 Filter for any content enclosed by a Timed Content shortcode. Implements the same filters as `the_content`:
340
341 * `wptexturize`
342 * `convert_smilies`
343 * `convert_chars`
344 * `wpautop`
345 * `prepend_attachment`
346 * `do_shortcode`
347
348 `timed_content_filter_override`
349
350 Replaces the `timed_content_filter` with another pre-existing filter to use for any content enclosed by a Timed Content shortcode. Any function hooked into this filter must return the name of a filter (as a string).
351