Tina MVC provides you with base classes and helper classes and functions on which you build your WordPress applications.
It uses a lose model view controller pattern to abstract design and logic and make life easier for you and your HTML designer.
- Completely separate your code from WordPress themes. Your users can change their theme and still retain your application functionality.
- A helper class for generating and processing HTML forms.
- A helper class for generating paginated tables from SQL (for when custom posts are not appropriate).
- A helper class for generating HTML tables from your data.
- Separation of your code from core Tina MVC files for easy upgrades.
- Compact and non-intrusive. Currently 3 filters plus 1 action hook for widgets and 1 shortcode hook are used for basic usage.
- A function to allow you to call a Tina MVC controller from your theme file (breaks the MC) or from another controller.
- Flexible enough for quick procedural prototyping – don’t like MVC? No problem!
Tutorials, Documentation and Code Samples
All Tina MVC documentation is included with the plugin. After activating the plugin you can access it from the WordPress admin back end. (Look for the Tina MVC administration page.)
Source code is liberally commented for PhpDocumentor.
This version is GPL v2 licensed. If you are interested in alternative licensing models, or in commercial support, please contact the author at http://www.seeit.org/about-us/.
Support for this version is available at https://wordpress.org/tags/tina-mvc?forum_id=10 or by leaving a comment at http://www.seeit.org/tina-mvc-for-wordpress/.
Tina MVC support for permalinks based on post name is experimental. Currently it generates a PHP warning from a core WordPress file.
- Install the usual way (if you can’t manage that then this plugin isn’t for you)
- Activate the plugin through the ‘Plugins’ menu in WordPress
- Go to the
Tina MVCmenu in the WordPress administration back end for documentation
- Navigate to the newly created
Tina MVC for WordPresspage on your WordPress site
- What is Tina MVC used for?
It is used for all my WordPress development at this stage. WordPress became my development platform of choice in early 2010 and Tina MVC allows me to develop client sites as WordPress plugins.
- Does Tina MVC work with WordPress Multisite?
Yes. You can have all sites use the same application files, or have different application files for each blog within your network.
- My changes to
tina_mvc_app_settings.phpare being ignored…
app_settings.phpfile is only checked on plugin activation. Deactivate/reactivate the plugin to load the new settings.
- Can Tina MVC create posts on activation like it does pages?
Yes. Put your code into
install_remove/tina_mvc_app_install.php. Tina MVC will include it on activation and call the function
- Can my current controller use a view from inside another controllers folder?
Yes. Just specify the view file name you want to use when you use the $this->load_view() function. You can also specify a custom location for your view file:
$this->load_view( ‘my_view_file’ , FALSE , ‘path/to/view/file/from/tina-mvc/folder’ )
- Why are there HTML template files in the plugin folder?
Tina MVC applications are designed to be completely independent of the theme you use. The templates only format the post/page/shortcode/widget content.
You should be able to use any theme you want with a deployed Tina MVC application. This allows you to crack on with development while your designer (if there is one) deals with the theme.
Of course there is nothing to stop you putting code and calls to tina_mvc_call_page_controller() in your templates if you prefer, but it is not recommended.
- I’d love to see `insert feature here` in Tina MVC. How can I request this?
Where can I get support?below and just ask.
- Where can I get support?
The ‘Plugins and Hacks’ forum (https://wordpress.org/tags/tina-mvc?forum_id=10) or at http://www.seeit.org/tina-mvc-for-wordpress/.
Contributors & Developers
“Author: Francis Crossen (fcrossen)” is open source software. The following people have contributed to this plugin.
Interested in development?
- Minor enhancement: tina_mvc_controller_class->parse_view_file() now checks for non-array view data being passed to it
- Minor bigfix: incorrect (but not broken) use of shortcode_atta() in $Tina_MVC->do_shortcode()
- Minor enhancement: helper functions user_has_role() and user_has_capability() now convert arguments to lower case
- Major enhancement: file uploads are now handled properly by the form helper
- Minor enhancement: tina_mvc_print_r() no longer takes the variable parameter by reference
- Minor bugfix: Tina MVC was not searching for the application folder in a useful way
- Major enhancement: Proper multi-site support
- Major bugfix: get_multisite_blog_name() was not returning the correct blog name in certain circumstances
- Major bugfix: multisite_app_cascade feature was not working properly when set
- Minor enhancement: the load_view() function will look for a view file automatically if none is specified= 1.0.13 =
- Minor enhancement: made $field->set_options() more robust in the form helper
- Minor bugfix: load_view() function was not searching for files as advertised when using a custom view file location
- Major enhancement: New add_content() and add_raw_content() functions to allow passing HTML directly to the page without a view file
- Minor bugfix: fixed error checking in table helper set_data() function
- Minor enhancement: added a render() methid to the pagination and table helpers (for consistency with other helpers)
- Major enhancement: added a check to the wp_query_render() method to the pagination and table helpers (for consistency with other helpers)
- Major enhancement: $Tina_MVC->wp_query_checker() returns immediately if it is not the main query
- Minor enhancement: Prevent a logged in user from accessing register and reset password registration functions
- Major enhancement: Added a link to view/edit ‘my profile’, added get_my_profile_link() function
- Minor enhancement: disable autocomplete for password form field type
- Minor enhancement: added $field->get_posted_value() function and edit the sample controllers
- Minor bugfix: setting $tina_mvc_app_settings->roles_ok_for_wp_admin was being ignored
- Minor enhancement: Prevent canonical redirects on Tina MVC pages
- Minor bugfix: $Tina_MVC->wp_query_checker() was not detecting a Tina request properly when $_SERVER[‘REQUEST_URI’] was unset
- Minor bugfix: in include_helper() to prevent the same file being included twice
- Trivial bugfix: TINA_MVC\error() was reporting an incorrect file path
- Minor bugfix: in tina_mvc_controller_class::include_model() return value
- Minor bugfix: added error checking to $table->set_data()
- Minor bugfix: pagination helper now returns ” for an empty SQL result set
- Major bugfix: fixed a form helper bug that was rendering malformed HTML
- Minor bugfix: fixed a bug in get_controller_url() (when no permalinks are in use)
- Minor bugfix: removed get_currentuserinfo() call from user_has_role() and user_has_capability(). Was causing problems with some APC configurations
- Fixed a bug that was causing init_bootstrap functions to fail
- added a ‘file’ input type to the form helper for file uploads
- $Tina_MVC->mail() accepts a string for $message_variables. (Allows use of mail() without using a template file.)
- fixed bug where permissions for widgets/shortcodes were not being merged properly.
- added setting to disabled he WordPress admin bar for some or all users
- renamed helpers to be more consistent, added TINA_MVC\include_helper() function
- added support for permalinks based on %postname% only (experimental)
- public release
- updated todo admin page
- beta release of Tina MVC (branch 2)
- first beta release for Tina MVC 1.0 based on 0.4.15