The easiest to use WordPress option framework.

Overview

alt text Titan Framework

WordPress WordPress plugin Build Status Slack

The easiest to use WordPress options framework.

Titan Framework allows theme and plugin developers to create admin pages, options, meta boxes, and theme customizer options with just a few simple lines of code.

Get it in the WordPress plugin repo

Generate your own Underscores + Titan Framework based WordPress theme

Join the Community in Slack

Features

  • Makes development unbelievably easy
  • Built with optimization in mind
  • Does NOT clutter the database
  • Integrates with your project seamlessly
  • Theme customizer live preview integration
  • Supports child themes
  • Automatic CSS generation with SCSS support

Installing

  1. You can install the latest stable release from the wordpress.org plugin page straight from your WordPress plugin page;

  2. Or you can download the master.zip file then install it as a WordPress plugin;

  3. Alternatively, you can also install it via Composer into your wp-content/plugin folder:

curl -sS https://getcomposer.org/installer | php
php composer.phar create-project gambitph/titan-framework titan-framework

Developing

If you want to help with the development of Titan Framework, we have a Developing guide in the wiki

Creating a WordPress Theme?

Generate your own Underscores + Titan Framework based WordPress theme

Getting Started With Titan Framework

Titan Framework aims to be easily used by everyone. The goal is to make it plug and play - just activate the plugin and start creating your options.

Read our guide on how to get started with Titan Framework

Donate to the Development

If Titan Framework has helped you in any way, we would appreciate any amount of donations that you give us. Donations would mean more development time for the framework as I am continuously developing it during my free time.

Donate

Help Spread the Word on Titan Framework

Titan is super new, so far the framework has been getting good feedback from the community. Help out and spread the word by starring this repo, sending tweets, writing blog posts about what you think about Titan, and review the plugin in the WordPress plugin repo.

Are You Using Titan Framework in Your Project?

Let us know so we can showcase it in the site! Send me a tweet at @bfintal

Contributing, Pull Requests Are Very Welcome

Have an idea for a cool option, or do you have a bug fix you want to implement? Please don't hessitate to place a PR (Pull Request).

PRs on these are welcome:

  • Bug fixes
  • Cool new options
  • Cool new hooks
  • WordPress standardization
  • Code optimizations
  • Anything under the sun as long as it's helpful :)

Translations

We want Titan Framework to be used by everyone, and since not everyone speaks or reads english, we would appreciate it if you can help translate the framework to your language.

Current Translations

  • French (thanks @PunKeel)
  • German (thanks @jascha)
  • Italian (thanks @DavideVogliotti & Giuseppe Pignataro)
  • Portuguese (thanks @pagelab)
  • Spanish (thanks @maperezotero)
  • Turkish (thanks @gurkankara)

Important Links

Comments
  • how to change default icon of custom plugin?

    how to change default icon of custom plugin?

    Is there a way to make the icon personal? or can it be a new add-on to the framework? example image.... woocommerce has a "woo" logo next to there plugin, same with SEO also, and mine is a gear.

    thorbis admin panel thorbis website design wordpress

    question 
    opened by byronwade 26
  • getOption wont work

    getOption wont work

    Ive tried sevral times in meny places (page.php, single.php, header.php) but I just cant seem to get it to work heres the code ive used: This is in the: page.php

    getOption( 'my_text_option' ); ?>

    This is in the: functions.php $titan = TitanFramework::getInstance( 'my-theme' ); /** Creating an admin page tab **/ $panel = $titan->createAdminPanel( array('name' => 'Thorbis Admin Panel',) );

    /TABS/ $myTab = $panel->createTab( array('name' => 'General',) );

                    $myTab->createOption( array(
                        'name' => 'My Text Option',
                        'id' => 'my_text_option',
                        'type' => 'text',
                        'desc' => 'This is our option'
                    ) );
    
                    $myTab->createOption( array(
                        'name' => 'My Select Option',
                        'id' => 'my_select_option',
                        'type' => 'select',
                        'options' => array(
                            '1' => 'Option one',
                            '2' => 'Option two',
                            '3' => 'Option three',
                        ),
                        'desc' => 'This is a select drop down box',
                        'default' => '2',
                    ) );
    
                    $myTab->createOption( array(
                        'type' => 'save'
                    ) );
    

    I type "HI" in the 'my_select_option' field and nothing will show up on the other end.

    question 
    opened by byronwade 20
  • Question: reflect option values in customizer

    Question: reflect option values in customizer

    Since it's not possible to have the same ID in different options: How do I reflect e.g. a background-color setting in an admin page in a customizer option and vice versa? Wouldn't it be better to allow multiple ID's for indentical options?

    opened by violacase 17
  • Possible Bug: Adding many 'font' options delays preview refresh

    Possible Bug: Adding many 'font' options delays preview refresh

    I don't know if it's a bug within TF or not, but it's really annoying.

    I added 7 'font' options (6 of which are for h1 to h6). I also have 8 other 'font' options in other sections.

    I noticed before, that when I add a 'font' option, it adds a delay for reloading the preview after editing an option that doesn't have 'livepreview'. (not necessarily a font option) It's not because of low internet speed or server speed. The request to the server is made AFTER this delay. After I change an option, I also click on another option to trigger 'blur' and 'change' js events.

    Now that I added 7 'font' options all at once, I'm noticing a huge delay before reloading the preview iframe. With 8 'font' options it has about 8sec delay, and with 15 it has about 17sec delay.

    Any idea what's causing this? Anyone else having the same issue?

    bug 
    opened by ardalann 17
  • Gallery Field

    Gallery Field

    I wonder why is so hard to find a framework that include it by default. I have a lot of clients who I needed to add a Gallery custom post type to make it easy for them to add new albums, and I need a separate field just for the main gallery itself, because ask them to use 'add media -> create gallery' and also add the description together on the editor, confuses 99% of them :)

    It also can be useful if we want a scrolling gallery section on any place like the homepage for example :)

    May you guys consider this? Thanks :)

    enhancement 
    opened by RafaelOlivra 16
  • Bug: CSS generated by select-googlefont

    Bug: CSS generated by select-googlefont

    This is my customizer option definition:

    ->createOption( array(
        'name' => 'Header Font',
        'id' => 'header_font',
        'type' => 'select-googlefont',
        'default' => array(
            'name' => 'Exo',
            'variants' => array( '400', 'italic' ),
            'subsets' => array( 'latin-ext' )
        ),
        'css' => 'header { 
            font-family: value-name;
            font-weight: value-variant;
        }'
    ) );
    

    I saved the customizer without changing this font, and this was added to the CSS:

    font-family:Exo;
    font-weight:;
    

    Then I changed the font, and the generated CSS became:

    font-family:;
    font-weight:;
    

    Now even if I change it back to Exo, it still writes empty values to CSS file.

    opened by ardalann 14
  • Feature Request: Improved Font Family Picker (Google fonts AND Standard fonts)

    Feature Request: Improved Font Family Picker (Google fonts AND Standard fonts)

    NO one wants to FORCE users to use Google fonts. We just want to let them choose Google fonts, IF they want. Two groups of fonts could be in the font selector, 'Google Fonts' and 'Standard Fonts'. Ex.: http://grab.by/uyzA http://grab.by/uyzG

    enhancement 
    opened by ardalann 14
  • Need help with color picker after WP 4.9 update

    Need help with color picker after WP 4.9 update

    Hi folks WordPress 4.9 crush color options.

    upd problem solved if replace old version of wp-color-picker-alpha from TF to new version from

    https://github.com/kallookoo/wp-color-picker-alpha-plugin

    opened by goodwinpress 13
  • Possibility to use sanitization function in customizer

    Possibility to use sanitization function in customizer

    It's really important to have secure option framework, so i'm proposing this pull request as a security improvement. More info here: https://make.wordpress.org/themes/2015/06/02/a-guide-to-writing-secure-themes-part-3-sanitization/

    P.S. Other parts of series: https://make.wordpress.org/themes/2015/05/19/a-guide-to-writing-secure-themes-part-1-introduction/ https://make.wordpress.org/themes/2015/05/26/a-guide-to-writing-secure-themes-part-2-validation/ https://make.wordpress.org/themes/2015/06/09/a-guide-to-writing-secure-themes-part-4-securing-post-meta/

    opened by limestreet 13
  • Titan Framework Error when used within plugin class

    Titan Framework Error when used within plugin class

    I'm getting these errors:

    Titan Framework Error: Wrong usage of setOption, this should be called inside a hook or from within a theme file.
    Titan Framework Error: Wrong usage of setOption, this should be called inside a hook or from within a theme file.
    Titan Framework Error: Wrong usage of getOption, this should be called inside a hook or from within a theme file.
    Titan Framework Error: Wrong usage of getOption, this should be called inside a hook or from within a theme file.
    

    When using this code:

    <?php
    /*
    Plugin Name: Better Font Awesome
    Plugin URI: http://wordpress.org/plugins/better-font-awesome
    Description: The better Font Awesome for WordPress. 
    Version: 0.9
    Author: Mickey Kay
    Author Email: [email protected]
    License:
    
      Copyright 2011 Mickey Kay ([email protected])
    
      This program is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License, version 2, as 
      published by the Free Software Foundation.
    
      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      GNU General Public License for more details.
    
      You should have received a copy of the GNU General Public License
      along with this program; if not, write to the Free Software
      Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
    
    */
    
    /*--------------------------------------------*
     * Titan Framework
     *--------------------------------------------*/
    
    // Don't do anything when we're activating a plugin to prevent errors
    // on redeclaring Titan classes
    if ( ! empty( $_GET['action'] ) && ! empty( $_GET['plugin'] ) ) {
        if ( $_GET['action'] == 'activate' ) {
            return;
        }
    }
    
    // Use the embedded Titan Framework
    if ( ! class_exists( 'TitanFramework' ) ) {
        require_once( plugin_dir_path( __FILE__ ) . 'titan-framework/titan-framework.php' );
    }
    
    class BetterFontAwesome {
    
        /*--------------------------------------------*
         * Constants
         *--------------------------------------------*/
        const name = 'Better Font Awesome';
        const slug = 'better-font-awesome';
    
        /*--------------------------------------------*
         * Private variables
         *--------------------------------------------*/
        private $cdn_data;
    
        /**
         * Constructor
         */
        function __construct() {
            //register an activation hook for the plugin
            register_activation_hook( __FILE__, array( &$this, 'install' ) );
    
            //Hook up to the init action
            add_action( 'init', array( &$this, 'init' ) );
        }
    
        /**
         * Runs when the plugin is activated
         */  
        function install() {
            // do not generate any output here
        }
    
        /**
         * Runs when the plugin is initialized
         */
        function init() {
            // Setup localization
            load_plugin_textdomain( self::slug, false, dirname( plugin_basename( __FILE__ ) ) . '/lang' );
            // Load JavaScript and stylesheets
            $this->register_scripts_and_styles();
    
            // Register the shortcode [icon]
            add_shortcode( 'icon', array( &$this, 'render_shortcode' ) );
    
            // Get CDN data
            $this->setup_cdn_data();
    
            // Do options page
            $this->do_options_page();
        }
    
        function action_callback_method_name() {
            // TODO define your action method here
        }
    
        function filter_callback_method_name() {
            // TODO define your filter method here
        }
    
        function render_shortcode( $atts ) {
            extract(shortcode_atts(array(
                'name' => '',
                'classes' => ''
                ), $atts)
            );
    
            return '<i class="fa fa-' . sanitize_html_class( $name ) . ' ' . sanitize_html_class( $classes ) . '"></i>';
        }
    
        /**
         * Registers and enqueues stylesheets for the administration panel and the
         * public facing site.
         */
        private function setup_cdn_data() {
            $this->cdn_data = json_decode( $this->get_data( 'http://api.jsdelivr.com/v1/bootstrap/libraries/font-awesome/' ) )[0];
    
        } // end setup_cdn_data
    
        private function do_options_page() {
            $titan = TitanFramework::getInstance( 'better-font-awesome' );
    
            foreach( $this->cdn_data->versions as $version ) {
                $verions[$version] = $version;
            }
    
            $optionsPage = $titan->createAdminPanel( array(
                'name' => __( 'Better Font Awesome', 'better-font-awesome'),
                'parent' => 'options-general.php',
            ) );
    
            $optionsPage->createOption( array(
                'name' => __( 'Version', 'better-font-awesome' ),
                'id' => 'version',
                'type' => 'select',
                'desc' => __( 'Select the version of Font Awesome you would like to use. Please note that different versions use different icon names, and switching versions. . .', 'better-font-awesome') ,
                'options' => $this->cdn_data->versions,
            ) );
    
            $optionsPage->createOption( array(
                'name' => __( 'Minified', 'better-font-awesome' ),
                'id' => 'minified',
                'type' => 'checkbox',
                'desc' => 'Whether to include the minified version of the CSS (checked), or the unminified version (unchecked).',
                'default' => false,
            ) );
    
            $optionsPage->createOption( array(
                'type' => 'save',
            ) );
        }
    
        /**
         * Registers and enqueues stylesheets for the administration panel and the
         * public facing site.
         */
        private function register_scripts_and_styles() {
            $titan = TitanFramework::getInstance( 'better-font-awesome' );
    
            $version = $titan->getOption( 'version' );
            $minified = $titan->getOption( 'minified' );
    
            $stylesheet = $minified ? '/css/font-awesome.min.css' : '/css/font-awesome.css';
    
            // Enqueue Font Awesome CSS
            wp_register_style( 'font-awesome', '//netdna.bootstrapcdn.com/font-awesome/' . $version . $stylesheet );
            wp_enqueue_style( 'font-awesome' );
    
        } // end register_scripts_and_styles
    
        /**
         * Helper function for registering and enqueueing scripts and styles.
         *
         * @name    The     ID to register with WordPress
         * @file_path       The path to the actual file
         * @is_script       Optional argument for if the incoming file_path is a JavaScript source file.
         */
        private function load_file( $name, $file_path, $is_script = false ) {
    
            $url = plugins_url($file_path, __FILE__);
            $file = plugin_dir_path(__FILE__) . $file_path;
    
            if( file_exists( $file ) ) {
                if( $is_script ) {
                    wp_register_script( $name, $url, array('jquery') ); //depends on jquery
                    wp_enqueue_script( $name );
                } else {
                    wp_register_style( $name, $url );
                    wp_enqueue_style( $name );
                } // end if
            } // end if
    
        } // end load_file
    
        /**
         * Get contents of URL
         *
         * @param   string $url URL to get content
         * @return  mixed Contents of URL
         */
        private function get_data( $url ) {
            $ch = curl_init();
            $timeout = 5;
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
            $data = curl_exec($ch);
            curl_close($ch);
            return $data;
        }
    
    } // end class
    new BetterFontAwesome();
    
    ?>
    

    Any ideas what I'm doing wrong?

    bug 
    opened by MickeyKay 12
  • Possible to get image upload dimensions?

    Possible to get image upload dimensions?

    Hi there,

    Is there any native Titan method to get/output the dimensions of an image upload option? I'm thinking this would be really handy for the quick CSS generation method that's available, with sizing a logo area based on the logo's size, for example.

    Thanks!

    enhancement 
    opened by MickeyKay 11
  • Bump decode-uri-component from 0.2.0 to 0.2.2

    Bump decode-uri-component from 0.2.0 to 0.2.2

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 0
  • Fix: unserialize() expects parameter 1 to be string, array given

    Fix: unserialize() expects parameter 1 to be string, array given

    Hi there,

    This is a small patch related to unserialize functions.

    Warning: unserialize() expects parameter 1 to be string, array given in /home/testwp/assets/plugins/divi-machine/titan-framework/lib/class-titan-framework.php on line 259

    Thanks.

    opened by nawawi 0
  • wpColorPickerL10n not defined in WP 5.5

    wpColorPickerL10n not defined in WP 5.5

    wpColorPickerL10n is deprecated in WP 5.5 (erk!) and Titan throws undefined variable in js\wp-color-picker-alpha.js

    Workaround (via previous /wp-includes/script-loader.php):

    add_action( 'wp_print_scripts', 'titan_color_picker_translation_fix', 11 );
    function titan_color_picker_translation_fix() {
    	$wp_scripts = wp_scripts();
    	$wp_scripts->localize( 'wp-color-picker', 'wpColorPickerL10n', array(
    		'clear'            => __( 'Clear' ),
    		'clearAriaLabel'   => __( 'Clear color' ),
    		'defaultString'    => __( 'Default' ),
    		'defaultAriaLabel' => __( 'Select default color' ),
    		'pick'             => __( 'Select Color' ),
    		'defaultLabel'     => __( 'Color value' ),
    	) );
    }
    
    opened by majick777 0
  • Documentation site is down, Siteground changed IP address

    Documentation site is down, Siteground changed IP address

    The documentation site must be hosted on Siteground. Recently, Siteground moved their servers into Google Cloud and had to update all IP addresses. That hasn't been done on the documentation site, so it's down.

    DNS needs to be updated with the new IP address, it's about a three minute task.

    opened by TreyOverton 0
  • PHP 7.4 issue

    PHP 7.4 issue

    Hello, there is an issue with TF at php 7.4

    Trying to access array offset on value of type null in... titan-framework/lib/class-admin-page.php on line 78

    So it's

    $settings['parent'] = $this->settings['id'];

    at function

    public function createAdminPanel( $settings ) { $settings['parent'] = $this->settings['id']; return $this->owner->createAdminPanel( $settings ); }

    May be Mr. Intal or Mr. Healey could help with it? Thank you!

    opened by goodwinpress 1
Releases(1.12.1)
  • 1.12.1(Jul 4, 2018)

  • 1.12(Jun 19, 2018)

    • New: Added page_template parameter for meta boxes.
    • Fixed: Error with the color picker option (and options that use the color picker) in WP 4.9
    • Fixed: PHP warning when reseting font options
    Source code(tar.gz)
    Source code(zip)
  • 1.9.2(Oct 6, 2015)

    • New: tf_css_get_css_file_path_{$namespace} filter
    • Enhanced: Heading options in Customizer now look great
    • Enhanced: The css parameter now performs live preview changes instead of reloading the page
    • Enhanced: Added inherit values for some styles in the font option
    • Enhanced: Changed some default style values in the font option to inherit
    • Fixed: Options with a value of zero do not generate CSS properly (they wrongly reset to their default value before)
    • Fixed: getOptions function turned non-existent keys to false
    • Fixed: Existing panel names (not panel IDs) across different namespaces that match get shown in the wrong section
    • Fixed: Removed remnance of a checkbox in the enable option while in the Customizer in Firefox
    Source code(tar.gz)
    Source code(zip)
  • 1.9.1(Sep 26, 2015)

  • 1.9(Sep 24, 2015)

    • Major performance and speed optimizations, now is less process & memory intensive
    • New iframe option
    • New custom option
    • New multiple attribute in select options for selecting multiple values
    • New desc attribute in heading options for displaying short descriptions
    • New alpha attribute in color options for picking rgba colors
    • New editor_options attribute in editor options for specifying editor settings
    • New tf_admin_tab_created_{namespace} action
    • New $titan->getOptions() function for getting multiple options at once
    • Updated Google Font list
    • Heading options now generate an id attribute
    • Now using Gulp for development and building
    • Started using WordPress PHP Coding Standards
    • Started unit testing. Coverage currently at 8%
    • Removed initializing state which could cause duplication problems
    • Bumped minimum version to 4.1
    • Simplified Titan Framework checker code
    • Fixed: notice for newly added options
    • Fixed: upload option now uses attachment url in livePreview attribute
    • Fixed: meta boxes now save properly for attachment post_types
    • Fixed: font text-shadows
    • Fixed: meta box css & js code from showing up in non-singular pages
    • Fixed: stray border in enable options in the customizer
    • Fixed: upload images misalign after saving in the customizer
    • Removed: references to old select-google-font option
    Source code(tar.gz)
    Source code(zip)
  • 1.8.1(Sep 1, 2015)

    • Duplicated CSS rules #271
    • Generated css contains duplicated declarations #232
    • Add support for checking item ID #267
    • Removed missing gallery since we still need to work on it bd236235d36dc971b385f56b4d685b5400ce4840
    Source code(tar.gz)
    Source code(zip)
  • 1.8rc2(Aug 28, 2015)

  • 1.8rc1(Aug 27, 2015)

    • New option: ajax-button
    • Added new hooks:
      • tf_done
      • tf_pre_save_admin_{namespace}
      • tf_save_admin_{namespace}
      • tf_pre_reset_admin_{namespace}
      • tf_reset_admin_{namespace}
    • Added desc option for headers
    • Removed unused tracking code
    • Tweaked customizer font css
    • Added label for blank page/post titles for page/post options
    • Updated & namespaced SCSSPHP
    • Saving '0' values now work (e.g. in select options)
    • Additional check to prevent scss compile of empty string
    • Fixed bug where sometimes options without IDs (e.g. note) produce errors in the Customizer
    • Fixed possible JS running in iframe-font-preview + empty checks for CWE-200
    • getOption no longer throws a "called too early" warning and can now be called anywhere
    • #240 Update class-option-font.php
    • #235 Update class-option-checkbox.php
    • #262 Namespace invisible class
    • #264 Switch to strpos instead of preg_match
    • #253 Remove timepicker from requirements
    Source code(tar.gz)
    Source code(zip)
  • v1.7.4(Jan 17, 2015)

    • Faster SCSS parsing
    • Faster loading time
    • Unit parameter for number options now supported in the Theme Customizer
    • Better font color option handling in Theme Customizer
    • Now prevents SCSS errors from showing up
    • Fixed name label issues with the enable option
    • Better plugin checking method
    • Plugin checker now integrates with TGM Plugin Activation
    • Updated Ace
    Source code(tar.gz)
    Source code(zip)
  • v1.7.3(Dec 22, 2014)

  • v1.7.2(Dec 18, 2014)

    • EDD option can now check for updates all by itself (thank you julien731)
    • get_post_types function now callable from tf_create_options
    • Now passes theme-check (ignored add_menu_page error)
    Source code(tar.gz)
    Source code(zip)
  • v1.7.1(Dec 11, 2014)

    • Bug fixes for the Easy Digital Download License option
    • Enhanced date option parameters
    • New parameters for Theme Customizer for creating panels
    Source code(tar.gz)
    Source code(zip)
  • v1.7(Dec 11, 2014)

    • New Easy Digital Download License option (thank you julien731)
    • New date option (thank you ardalann)
    • Added new action tf_save_options_{namespace} which is called after saving options
    • Fixed display issue with the font option in the theme customizer
    • Fixed bug where empty multicheck returned an array
    • Fix: customizer show_font_size & show_color
    Source code(tar.gz)
    Source code(zip)
  • v1.6.1(Oct 10, 2014)

  • v1.6(Sep 29, 2014)

    • New embed method (check the getting started section)
    • New tf_create_options hook for creating options
    • New number unit parameter
    • Removed font awesome, now uses dashicons
    • Added desc params to panels, tabs and meta boxes
    • Added size attribute for the upload option
    • Deleted Uncommon Ace Extensions
    • Improve load script to meta boxes
    • Lots of bug fixes
    Source code(tar.gz)
    Source code(zip)
  • v1.5.2(Jul 30, 2014)

  • v1.5(Jul 29, 2014)

    • Added German, Portuguese, Turkish and updated Italian translations
    • Added notification and paragraph paramaters to the note option
    • Added include_fonts parameter to the font option for specifying the selectable fonts
    • Added show_websafe_fonts and show_google_fonts parameters to the font option
    • Added maxlength parameter to the the text option
    • Fixed Titan plugin detection code
    • New more WordPress-centric styling of admin panels (special thanks to @sagarjadhav)
    • A Lot of stabilization bug fixes
    Source code(tar.gz)
    Source code(zip)
  • v1.4.2(Mar 13, 2014)

  • v1.4.1(Mar 13, 2014)

    • Added some new hooks
    • Added namespaces to all hooks
    • Added meta links
    • Fixed bug where font drop downs closed immediately in Firefox
    • Fixed bug where getInstance did not return the same instance sometimes
    • Fixed bug where the font option did not generate CSS correctly
    • Fixed bug where only one Titan instance generated CSS files
    • Fixed bug where CSS were being generated multiple times
    • Fixed bug where option IDs in different instances caused an error
    • Fixed bug where the live preview lagged a lot
    Source code(tar.gz)
    Source code(zip)
  • v1.4(Mar 7, 2014)

  • v1.3(Mar 4, 2014)

    • Added Spanish translations (thanks @maperezotero)
    • Added Code option that uses Ace
    • No need to use the post ID when getting getOption
    • createMetaBox can now accept an array in the post_type parameter
    • Now using Travis CI
    • Tons of bug fixes
    Source code(tar.gz)
    Source code(zip)
  • v1.2.1(Feb 26, 2014)

    • Added French translations (thanks @PunKeel)
    • Added removeOption function
    • Fixed bug where fonts sometimes cannot be changed
    • Fixed fatal error encountered sometimes when generating CSS
    • Fixed bug where other post types are unable to be saved
    Source code(tar.gz)
    Source code(zip)
  • v1.1.1(Feb 23, 2014)

    • Titan can now be embedded into themes and plugins
    • Added Radio Image option
    • Better layout for Google WebFont option
    • Now enforcing unique option ids
    • Fixed bug that shows up in fresh WP installs
    Source code(tar.gz)
    Source code(zip)
  • v1.1(Feb 20, 2014)

    • Added WYSIWYG editor option
    • Added Radio Palette option
    • Fixed bug where special characters in admin pages and tabs were not redirecting correctly
    • Fixed minor bug where customizer options become reordered
    • Minor bug fixes
    Source code(tar.gz)
    Source code(zip)
  • v1.0.2(Feb 19, 2014)

  • v1.0.1(Feb 19, 2014)

Owner
Gambit Technologies
Gambit Technologies
A powerful yet easy-to-use PHP micro-framework designed to help you build dynamic and robust Web applications - fast!

A powerful yet easy-to-use PHP micro-framework designed to help you build dynamic and robust Web applications - fast! Condensed in a single ~65KB file

Bong Cosca 2.6k Dec 30, 2022
A very slight PHP framework, very easy to use and integrate.

A very slight PHP framework, very easy to use and integrate.

Jerry 95 Oct 26, 2022
PIP is a tiny application framework built for people who use a LAMP stack.

PIP is a tiny application framework built for people who use a LAMP stack. PIP aims to be as simple as possible to set up and use.

Ron Marasigan 244 Dec 30, 2022
a framework for WebDevelop based on the mvc structure. The name of this project for Fun because everyone can use it. Completely simple and powerful structure for all your projects

A_A (-.-) ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ |-| █▄─▄▄─█▄─██─▄█─▄▄▄▄█─▄▄▄▄█▄─█─▄█─▄▄▄─██▀▄─██─▄

MasihGhaznavi 7 Jun 29, 2022
Tarantool connector for yii2 framework. Allow to use activerecord, schemas, widgets and more.

Tarantool connector for yii2 framework Tarantool connector for yii2 framework. Allow to use framework abstractions such as ActiveRecord, Schema, Table

Andrey 11 Nov 21, 2021
TrailLamp is a lightweight, easy-to-use Php MVC framework that can be used to build web applications and REST APIs.

TrailLamp Introduction TrailLamp is a lightweight, easy-to-use Php MVC framework that can be used to build web applications and REST APIs. Installatio

Etorojah Okon 14 Jun 10, 2022
Easy to use, fast extendable small PHP Framework, like the one you ever missed. The skeleton-APP

About Tufu-Framework Easy to use, fast extendable PHP Framework, like the one you ever missed. Features included such as: Twig and extensions. Fast ro

Giacomo Barbalinardo 0 Jul 2, 2022
Pods is a development framework for creating, extending, managing, and deploying customized content types in WordPress.

Pods Framework Pods is a development framework for creating, extending, managing, and deploying customized content types in WordPress. Description Che

Pods Foundation, Inc 982 Jan 4, 2023
CleverStyle Framework is simple, scalable, fast and secure full-stack PHP framework

CleverStyle Framework is simple, scalable, fast and secure full-stack PHP framework. It is free, Open Source and is distributed under Free Public Lice

Nazar Mokrynskyi 150 Apr 12, 2022
I made my own simple php framework inspired from laravel framework.

Simple MVC About Since 2019, I started learning the php programming language and have worked on many projects using the php framework. Laravel is one

null 14 Aug 14, 2022
PHPR or PHP Array Framework is a framework highly dependent to an array structure.

this is new repository for php-framework Introduction PHPR or PHP Array Framework is a framework highly dependent to an array structure. PHPR Framewor

Agung Zon Blade 2 Feb 12, 2022
I made my own simple php framework inspired from laravel framework.

Simple MVC About Since 2019, I started learning the php programming language and have worked on many projects using the php framework. Laravel is one

Rizky Alamsyah 14 Aug 14, 2022
Framework X – the simple and fast micro framework for building reactive web applications that run anywhere.

Framework X Framework X – the simple and fast micro framework for building reactive web applications that run anywhere. Quickstart Documentation Tests

Christian Lück 620 Jan 7, 2023
Framework X is a simple and fast micro framework based on PHP

Framework X is a simple and fast micro framework based on PHP. I've created a simple CRUD application to understand how it works. I used twig and I created a custom middleware to handle PUT, DELETE methods.

Mahmut Bayri 6 Oct 14, 2022
Spiral Framework is a High-Performance PHP/Go Full-Stack framework and group of over sixty PSR-compatible components

Spiral HTTP Application Skeleton Spiral Framework is a High-Performance PHP/Go Full-Stack framework and group of over sixty PSR-compatible components.

Spiral Scout 152 Dec 18, 2022
Sunhill Framework is a simple, fast, and powerful PHP App Development Framework

Sunhill Framework is a simple, fast, and powerful PHP App Development Framework that enables you to develop more modern applications by using MVC (Model - View - Controller) pattern.

Mehmet Selcuk Batal 3 Dec 29, 2022
Multi-process coroutine edition Swoole spider !! Learn about Swoole's network programming and the use of its related APIs

swoole_spider php bin/spider // Just do it !! Cache use Swoole\Table; use App\Table\Cache; $table = new Table(1<<20); // capacity size $table->column

null 3 Apr 22, 2021
Lite & fast micro PHP abuse library that is **easy to use**.

Utopia Abuse Utopia framework abuse library is simple and lite library for managing application usage limits. This library is aiming to be as simple a

utopia 23 Dec 17, 2022
BEdita, ready to use back-end API, extensible API-first Content Management

BEdita, a back-end API BEdita 4 is a ready to use back-end API to handle the data of your mobile, IoT, web and desktop applications. It's also an exte

BEdita 65 Oct 31, 2022