includes/template.php
Sat, 15 Sep 2012 13:16:59 -0400 Dan Fuhry Merged
Sat, 15 Sep 2012 13:18:01 -0400 Dan Fuhry Added template context API and render_getpage_norender hook. This allows variable sets to be pushed and popped from $template, so that variables in a template inclusion can be accessed and pre-processed by plugins.
Wed, 25 Apr 2012 02:03:38 -0400 Dan Fuhry Small change to generation time formatting to make all pages the same time. Makes apachebench not screw up.
Sun, 04 Sep 2011 02:32:49 -0400 Dan Fuhry SECURITY: Various security enhancements to password resets. They are now rate-limited by username and IP, and it is possible to disable username autofill for guests.
Thu, 02 Jun 2011 05:46:13 -0400 Dan Fuhry Removed TinyMCE.
Sun, 19 Sep 2010 04:04:28 -0400 Dan Fuhry Hide the "Create an account" button if registration is disabled (Enanium only, but there is a template boolean called "registration_disabled" so other themes can use it too)
Fri, 30 Jul 2010 14:39:04 -0400 Dan Moved sidebar editor into the admin CP. Icon still needs to be added, no Internet right now to go find one. Also fixed a few template related things.
Sun, 28 Mar 2010 23:10:46 -0400 Dan Going ahead with the switch to tabs. This is a major coding standards change! If any unusual parser bugs show up, check this changeset. Converted all .php, .js, .tpl, .css, and .json files and did basic testing.
Mon, 08 Feb 2010 17:04:08 -0500 Dan Fixed unescaped ampersands in "&enano_version" cache breaking
Tue, 05 Jan 2010 09:56:00 -0500 Dan Fixed ENANO_VERSION under databaseless template class
Sun, 27 Dec 2009 02:28:21 -0500 Dan All javascript and css requests now append the version number to the URL to break browser caches and prevent from having to clear the cache upon upgrade
Mon, 21 Dec 2009 15:41:05 -0500 Dan Fixed two "declaration should be compatible" errors encountered by the BitNami folks. Thanks Neal for reporting.
Fri, 18 Dec 2009 05:12:02 -0500 Dan Comments (AJAX): Now paginated server side. Fixes issue 2.
Tue, 03 Nov 2009 22:08:48 -0500 Dan Logins: reorganized data structures a bit. WiP - needs test routine done.
Fri, 21 Aug 2009 20:41:38 -0400 Dan Sessions: Improved inactive account UX; shuffled around a bit of code so that whitelist checks are shared; fixed a bunch of bugs related to ban code and IPv6 addresses
Thu, 20 Aug 2009 20:01:55 -0400 Dan Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Tue, 04 Aug 2009 15:02:00 -0400 Dan Fixed some "declaration should be compatible" errors that showed up under WinXP QA
Fri, 31 Jul 2009 19:15:48 -0400 Dan Merged development from Scribus and Charlie
Fri, 17 Jul 2009 20:48:53 -0400 Dan Editor: completely moved wiki edit notice to AJAX fetch, so it's not shipped with the page anymore.
Fri, 17 Jul 2009 20:23:48 -0400 Dan Fixed some formatter engine errors that were exposed through the wiki edit notice
Wed, 29 Jul 2009 11:48:54 -0400 Dan Tweaked URL sanitizing a bit to make Enanium work better.
Wed, 29 Jul 2009 10:48:43 -0400 Dan Added method add_header_js() to template to allow insertion of code to be run immediately after JS init
Sat, 11 Jul 2009 20:25:50 -0400 Dan One word: Internet Explorer 6. This includes a rewrite of $paths->parseAdminTree() that encodes to JSON instead of manually generating JS, so good-bye to stupid parser problems I hope.
Wed, 08 Jul 2009 23:37:01 -0400 Dan OK, JS preloading on a CDN works perfectly now. I'm sure of it.
Wed, 08 Jul 2009 22:44:46 -0400 Dan Fixed inconsistency in JS component load order between CDN sites and non-CDN sites
Wed, 08 Jul 2009 22:27:24 -0400 Dan Fixed a series of infinite loops with preloading components and placeholders
Wed, 08 Jul 2009 18:51:48 -0400 Dan Template: minor: documented sidebar_widget()
Mon, 15 Jun 2009 20:09:58 -0400 Dan Added support for preloading javascript libs ($template->preload_js()). Updated admin theme and Tigra Tree Menu to support this + JS_{HEADER,FOOTER} variables.
Wed, 27 May 2009 09:44:07 -0400 Dan Class "currentpage" is now added to all internal links, including sidebar buttons, if the link points to the current page.
Thu, 14 May 2009 11:34:24 -0400 Dan A few safety changes to tolerate no $session when it's not available
Wed, 13 May 2009 09:44:46 -0400 Dan Render / Template: No longer does exist checks for wikilinks on sidebar
Sun, 10 May 2009 14:41:51 -0400 Dan Fixed a couple bugs with protection UI; fixed stray <enano:no-opt> in Special:CSS (do people still use that?)
Tue, 05 May 2009 00:10:26 -0400 Dan Made some more changes to the way namespaces are handled, for optimization purposes. This is a bit of a structural reorganization: $paths->pages is obsoleted in its entirety; calculating page existence and metadata is now the job of the Namespace_* backend class. There are many things in PageProcessor that should be reorganized, and page actions in general should really be rethought. This is probably the beginning of a long process that will be taking place over the course of the betas.
Fri, 17 Apr 2009 08:40:48 -0400 Dan Made handling of $perms being non-object work properly in template
Thu, 16 Apr 2009 22:48:59 -0400 Dan Cleared up a few discrepancies in page handling, template var init, and how NewsBoy works.
Wed, 15 Apr 2009 19:44:47 -0400 Dan New, beautiful, rethought Admin:Home. No, really, you'll like it.
Mon, 13 Apr 2009 14:43:28 -0400 Dan New page protection UI. Both miniPrompt and failsafe HTML.
Sat, 04 Apr 2009 22:24:49 -0400 Dan Oxygen (and general): cleaned up sidebar CSS, wikitext blocks are now sent through alternate block
Sun, 15 Mar 2009 11:07:28 -0400 Dan New template feature: template hooks (<!-- HOOK foo -->)
Fri, 06 Mar 2009 11:19:55 -0500 Dan template: added ability for themes to hide user, tools, and search sidebar blocks
Sun, 01 Mar 2009 22:52:20 -0500 Dan Template: addslashes() around wiki_edit_notice_text (whoops)
Thu, 26 Feb 2009 01:07:32 -0500 Dan Added possibility for auth plugins, which can log a user in using non-standard authentication methods.
Mon, 16 Feb 2009 16:17:25 -0500 Dan Major redesign of rendering pipeline that separates pages saved with MCE from pages saved with the plaintext editor (full description in long commit message)
Sun, 25 Jan 2009 21:18:05 -0500 Dan Added (very basic) spam filtering plugin support. Plugins can mark a message as spam by hooking into the spam check API, which is documented in functions.php. No spam checking functionality is built-in.
Sun, 04 Jan 2009 00:55:40 -0500 Dan Two big commits in one day I know, but redid password storage to use HMAC-SHA1. Consolidated much AES processing to three core methods in session that should handle everything automagically. Installation works; upgrades should. Rebranded as 1.1.6.
Wed, 31 Dec 2008 08:40:38 -0500 Dan Redid error handler (it was causing some problems with gzip enabled)
Fri, 19 Dec 2008 21:29:17 -0500 Dan template: Fixed undefined $from_internal in assign_bool(); theme.cfg now require()d on theme load
Tue, 02 Dec 2008 21:11:22 -0500 Dan External links in sidebar now work with manual port numbers and IPv6 addresses
Sat, 15 Nov 2008 18:23:25 -0500 Dan Added ability to have alternate main page for members
Sun, 09 Nov 2008 14:10:24 -0500 Dan Made defectivebydesign.org image local
Sat, 08 Nov 2008 22:34:27 -0500 Dan [minor] $template->footer() no longer flushes output buffers, due to headers being sent prematurely
Sun, 24 Aug 2008 13:43:04 -0400 Dan Rewrote sidebar compilation code, caching is more stable now and things were cleaned up/separated into more functions/made plugin-expandable. In theory, plugins can add new sidebar block types now. I'd personally like to see a fully plugin-based sidebar editor that completely overhauls what Enano has now sometime now that this framework is in place.
Sat, 23 Aug 2008 16:03:32 -0400 Dan More work on auto-completion - it auto-scrolls now and limits result divs to 300px height
Thu, 21 Aug 2008 11:24:56 -0400 Dan Autocomplete further stabilized. Made Special:PasswordReset and Special:Register prevent use if logged in.
Thu, 21 Aug 2008 08:24:04 -0400 Dan Removed Adobe Spry and replaced with jQuery. Please report any new bugs on the forums or via IRC. In a related note, auto-completion should work now at least for usernames. Still hacking away at page name completion...
Wed, 13 Aug 2008 08:55:26 -0400 Dan Changed namespace properties (including core identifier) for external pages that load the Enano API to be a uniform "API" namespace and "SystemAPI:" prefix.
Wed, 13 Aug 2008 08:46:46 -0400 Dan Fixed missing "print page" link in printable theme
Mon, 11 Aug 2008 22:31:04 -0400 Dan Rebranded as 1.1.5 (Caoineag alpha 5) and fixed a couple bugs related to CDN support in template_nodb and installerUI. Updated readme.
Mon, 11 Aug 2008 11:56:25 -0400 Dan Improved miniPrompt and fadefilter to properly overlap parent modal windows. MessageBox() is next. Fixed pref_disable_js_fx not working due to wrong type (number instead of boolean).
Tue, 05 Aug 2008 11:12:01 -0400 Dan Fixed tooltip in Powered By Enano button on the sidebar. It called $lang->get() without checking to see if languages were initted yet.
Mon, 28 Jul 2008 13:08:12 -0600 Dan Fixed undefined REQUEST_URI/HTTP_HOST in ENANO_CLI mode in template var init
Tue, 22 Jul 2008 17:03:53 -0500 Dan Fixed unused $admintitle variable in $template->fading_button code generation; fixed missing CDNPATH, JS_HEADER, and JS_FOOTER in template_nodb; localized onpage_lbl_page_external
Sun, 20 Jul 2008 13:32:04 -0400 Dan Added CDN support: a URL to a CDN can now be specified and Enano will load all images, CSS, and javascript (except TinyMCE) from that server
Wed, 09 Jul 2008 18:38:44 -0400 Dan Fixed lack of str_replace() to runtime-patch cache_anon_sidebar
Mon, 07 Jul 2008 18:12:30 -0400 Dan First stab at cache management backend. Everything seems to have been tested and working so far, but a number of things require a more specialized cache and can't go through the framework (e.g. user ranks which use references to map usernames to user IDs)
Mon, 07 Jul 2008 02:41:50 -0400 Dan Added the theme_is_<themeid> template boolean value to allow conditional template code depending on theme ID (in shared templates, sidebar blocks, etc.)
Mon, 07 Jul 2008 02:37:12 -0400 Dan Added ability to hide or show sidebar blocks based on a {restrict} or {hideif} conditional in the sidebar script
Thu, 03 Jul 2008 15:08:35 -0400 Dan A little more optimization work, client-side this time. I lied, no librijnadel2 here, but it's about to be merged in...
Wed, 02 Jul 2008 22:15:55 -0400 Dan More optimization work. Moved special page init functions to common instead of common_post hook. Allowed paths to cache page metadata on filesystem. Phased out the redundancy in $paths->pages that paired a number with every urlname as foreach loops are allowed now (and have been for some time). Fixed missing includes for several functions. Rewrote str_replace_once to be a lot more efficient.
Wed, 02 Jul 2008 19:36:44 -0400 Dan Another sweep from the optimization monster.
Mon, 30 Jun 2008 17:20:02 -0400 Dan Several optimization changes including getting rid of a few eval()s. Added placeholder functions for the theme manager, which should be working now
Thu, 26 Jun 2008 17:31:33 -0400 Dan Fixed javascript ACL manager and captcha not showing on ajax login lockout_captcha event
Tue, 24 Jun 2008 23:37:23 -0400 Dan Majorly reworked Javascript runtime stuff to use on-demand loading.
Sun, 22 Jun 2008 18:13:59 -0400 Dan Initial progress towards converting auto-completion framework to Spry. Not currently in a very working state.
Mon, 16 Jun 2008 19:20:13 -0400 Dan Fixed access type warning in discussion button generation in template
Mon, 16 Jun 2008 19:16:12 -0400 Dan Fixed: init_vars double-init check ignored theme changes/reloads
Mon, 16 Jun 2008 19:07:15 -0400 Dan Made template parser remember last initted page_id and namespace to avoid double init; made additional_headers reassign only do so if $template->additional_headers is empty (it's being blanked somehow, need to come up with a backtrace sometime)
Sun, 15 Jun 2008 01:30:00 -0400 Dan Renamed some functions (that were new in this release anyway) due to compatibility broken with PunBB bridge
Sun, 15 Jun 2008 00:59:37 -0400 Dan Got ACL scope logic working again and began enforcing it. Breaking API change: assigning page title with $template->tpl_strings['PAGE_NAME'] will no longer work, use $template->assign_vars(). Workaround may be added later. Test for assign_vars method if compatibility needed. Added namespace processor API (non-breaking change). Several other things tweaked around as well.
Sat, 07 Jun 2008 22:50:31 -0400 Dan Made ajaxReset() call the actual requested title instead of effective title; fixed (again) template compiler bug not matching certain tags (probably PCRE bug)
Sat, 07 Jun 2008 12:39:24 -0400 Dan Modified $template->init_vars() to pivot to local page metadata and permissions from a PageProcessor object instead of global data from $paths and permissions from $session to allow redirects to affect on-page controls as well as the actual content (only partially complete, protection and several other elements still need to be localized)
Fri, 16 May 2008 12:22:26 -0400 Dan Added user preference for disabling visual effects in Javascript applets; added re-import button to installed plugins
Mon, 14 Apr 2008 22:02:32 -0400 Dan Merging changes from nighthawk
Mon, 14 Apr 2008 12:13:12 -0400 Dan Rebrand as 1.1.4 (Caoineag alpha 4)
Mon, 14 Apr 2008 21:59:53 -0400 Dan Added template_compile_subst hook
Sat, 12 Apr 2008 17:57:58 -0400 Dan Huge improvements to the template_nodb class and surrounding code; moved template compiler core to its own non-classed function to allow code re-use
Wed, 09 Apr 2008 19:27:02 -0400 Dan New plugin manager half-implemented. Most of the UI/frontend code is done. Moved sql_parse.php to /includes/ to allow use after installation - TODO: check installer, etc. for breakage
Wed, 26 Mar 2008 20:20:22 -0400 Dan Made some improvements to ACL system including: warning on setting Deny for Everyone on the entire site, added ACL_ALWAYS_ALLOW_ADMIN_EDIT_ACL, and changed behavior as noted in the docs so that Deny for Everyone is no longer able to be overridden
Tue, 18 Mar 2008 14:32:40 -0400 Dan Fixed some stray version numbers (again!); added support for Diffie-Hellman logins in the normal login form (not AJAX) - even works in IE
Fri, 07 Mar 2008 00:16:15 -0500 Dan Oops: fixed broken template loader in upgrader for 1.0.x and 1.1.1
Thu, 06 Mar 2008 23:27:50 -0500 Dan Fixed session validation bug in upgrade script; fixed non-object reference in template_nodb
Sun, 02 Mar 2008 19:32:19 -0500 Dan Implemented password reset (albeit hackishly) into the new login API; added dummy window.console object to hopefully reduce errors when Firebug isn't around; fixed the longstanding ACL dismiss/close button bug; fixed a couple undefined variables in mailer; fixed PHP error on attempted opening of /dev/(u)random in rijndael.php; clarified documentation for PageProcessor::update_page(); fixed some logic problems in theme ACL code; disabled CAPTCHA debug
Sat, 01 Mar 2008 23:02:05 -0500 Dan Implemented all security features on theme disabling and ACLs; added clean_key mode to login API to clean unused encryption keys
Sat, 01 Mar 2008 18:57:07 -0500 Dan Fixed the fact that cron just didn't work at all (brain fart that day or something)
Fri, 22 Feb 2008 12:51:53 -0500 Dan Merging fixes and updates from stable branch
Mon, 28 Jan 2008 23:07:32 -0500 Dan Fixed case where HTML comments were getting stripped when opening tag not followed by whitespace (<!--foo--> was stripped, <!-- foo --> was not, neither is stripped now)
Fri, 18 Jan 2008 10:35:33 -0500 Dan Removed all PostgreSQL support from the installer as per http://enanocms.org/News:1200114064; installer support for Postgres is available in the 1.1 branch now
Wed, 09 Jan 2008 22:23:09 -0500 Dan PHP4 fix: sidebar missing in installer UI: problem was wrongly named constructor for templateIndividualSafe
Mon, 31 Dec 2007 21:16:27 -0500 Dan Integrating patch for PHP 6.0-dev compatibility
Wed, 20 Feb 2008 14:38:39 -0500 Dan Added support for Diffie-Hellman key exchange during login. w00t!
Tue, 12 Feb 2008 22:17:58 -0500 Dan Unsuccessful attempt at fixing "dismiss"/"close manager" buttons in ACL editor; non-breaking change to template API to allow plugins to add "normal" sidebar widgets in addition to the special "raw" block type, specified as the third parameter to $template->sidebar_widget(). Defaults to false, which is old behavior; new behavior (enabled by passing TRUE as the 3rd param) means that the content of the block is primarily block-level links.
Tue, 12 Feb 2008 00:37:46 -0500 Dan Added autosave functionality and resurrected the old toolbar code that was added about a year ago but never uesd.
Mon, 11 Feb 2008 14:33:31 -0500 Dan Rebrand as 1.1.2; made upgrade framework functional
Sat, 02 Feb 2008 22:32:09 -0500 Dan Fixed some stray undefined-variable problems revealed as a result of testing on Windows Server '03, IIS6, PHP/FastCGI, and PostgreSQL 8.2.5.
Tue, 29 Jan 2008 23:15:44 -0500 Dan Localization is FINISHED, DAMN IT HELLAH YEAH! OVER WITH! Man, it feels to get that off my chest. Release is in under 48 hours, folks. And we're ready for it.
Tue, 29 Jan 2008 16:21:52 -0500 Dan Merging Nighthawk and Scribus branches (and Scribus is back, yay!)
Tue, 29 Jan 2008 16:19:51 -0500 Dan Rebranded source code as 1.1.1; added TinyMCE ACL rule as per Vadi's request: http://forum.enanocms.org/viewtopic.php?f=7&t=54
Mon, 28 Jan 2008 21:10:45 -0500 Dan Fixed SYSMSG tag in templates causing problems; commented out ENANO_DEBUG; fixed bad table prefix in installer payload logic
Sat, 26 Jan 2008 15:42:32 -0500 Dan Removed stray debugging info from ACL editor success notification; added ability for guests to set language on URI (?lang=eng); added html_in_pages ACL type and separated from php_in_pages so HTML can be embedded but not PHP; rewote portions of the path manager to better abstract URL input; added Zend Framework into list of BSD-licensed libraries; localized some remaining strings; got the migration script working, but just barely; fixed display bug in Special:Contributions; localized Main Page button in admin panel
Thu, 24 Jan 2008 22:06:09 -0500 Dan A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Wed, 23 Jan 2008 12:48:22 -0500 Dan Improved compatibility with PostgreSQL and fixed a number of installer bugs; fixed missing "meta" category declaration in language files
Tue, 22 Jan 2008 01:08:15 -0500 Dan Localized registration errors and activation/COPPA e-mails
Fri, 18 Jan 2008 22:27:29 -0500 Dan Fixed a coupla minor bugs with the template_nodb class wrongly referencing $lang
Thu, 17 Jan 2008 02:03:33 -0500 Dan More progress on the installer. At this point it can install and import the language, but does not rename config files. Still much work to be done, most notably localization and creation of MySQL users and databases.
Thu, 03 Jan 2008 00:53:33 -0500 Dan WiP commit for admin panel localization. All modules up to Admin:UserManager (working down the list) are localized except Admin:ThemeManager, which is due for a rewrite
Thu, 27 Dec 2007 22:09:33 -0500 Dan Replaced TinyMCE 2.x with 3.0 beta 3. Supports everything but IE. Also rewrote the editor interface completely from the ground up.
Wed, 19 Dec 2007 22:55:40 -0500 Dan Redid merge, the previous one had a few problems
Tue, 18 Dec 2007 23:44:55 -0500 Dan Many changes. Installer with PostgreSQL is broken badly and will be for some time.
Sat, 15 Dec 2007 18:10:14 -0500 Dan SURPRISE! Preliminary PostgreSQL support added. The required schema file is not present in this commit and will be included at a later date. No installer support is implemented. Also in this commit: several fixes including <!-- SYSMSG ... --> was broken in template compiler; set fixed width on included images to prevent the thumbnail box from getting huge; added a much more friendly interface to AJAX responses that are invalid JSON
Wed, 12 Dec 2007 21:37:23 -0500 Dan Rebrand as 1.0.3 (Dyrad)
less more (0) -120 tip