Featured
FacetWP Manipulator

FacetWP Manipulator

This is an unofficial add-on for FacetWP that allows you to manipulate it’s functionality through it’s various Filters and Actions.

Over the last few months, I’ve been helping with support and add-on development. In these few months, I have noticed that many issues can simply be solved through hooking into a filter or action and tweaking some settings or output.

This is a fairly easy thing to do, but for some users, using code, even snippets, can be a little overwhelming. So, to try make things a little easier and less chance of causing a WSOD, I created a simple little plugin that allows you to add code for the specific hook and activate it. All from the Admin Area.

FacetWP Manipulator is a free plugin and you can installed or downloaded from the WordPress Repo

DB Post types Launched

DB Post types Launched

DB Post types is now up and ready for sale.

Briefly, DB Post Types allows you to create a Post Type from a database table. This means the contents of the table can be used as a normal post type. It does not import or copy the data, but instead creates a link between a reference post and the original data. So the table can still be used. If a new entry is added to the table, a new post is created a swell. And if a record is removed, so to is the post removed.

See the introduction post for more

Introducing DB Post Types

Introducing DB Post Types

Easily use database tables created by other plugins or an external source, as native WordPress Post Types with no data duplication or syncronisation.

A video demonstration showing the setup process to interpret entries from Caldera Forms as a Post Type, along with displaying and editing the data.

There are many table to post type importers out there, and most do the job perfectly. However they all are simply importers; copy data from one table into two other tables. Yup two! Since you’re importing differently structured data, the columns won’t match. So you’ll end up having to save the columns as meta data. This is also a static import meaning that if you alter the source, you’ll need to sync to the copy.

DB Post Types is different. There is no data duplication. All data is dynamically linked. You don’t need to sync any data once the initial sync is complete. The source is the data.

DB Post Types is an interpreter.

This gives you the freedom to use the true data as you would a normal post, because quite simply, it is.

For advanced users, you have full control and access to use the WP_Query andĀ  WP_Meta_Query, allowing you to make the content fully searchable.

 

Introducing Brickroad, (beta testers wanted).

Introducing Brickroad, (beta testers wanted).

Brickroad can be described as a Plugin Builder, for the non-developer. It has the ability to create Shortcodes, Widgets, Code Injection, Custom Settings Pages, Custom Post Types, Custom Metaboxes, PHP Classes, Custom Customizer Controls, and Page Templates.

These are called “Brickroad Elements” and can be exported as stand alone, independent plugins, which you can distribute as complete plugins in their own right. All from the WordPress Admin.

Read More Read More

Event Notifier 1.2

Event Notifier 1.2

A couple of weeks back, I created a simple little plugin called Event Notifier. The purpose was to allow me to send an email whenever an action or filter is called. While it is functional and does simply that, I wanted a little bit more. So I have added Slack integration, a Dashboard widget; to log events to the dashboard, and a content box to customize the message sent.

The issue of common hooks being called frequently, has also been addressed by adding a “recurrence” setting. This logs each call, then after set limit, sends out the captured log.

While it’s pretty simple, it has found way more uses that I expected. Also, it’s free and on the wordpress.org repo! take a look. https://wordpress.org/plugins/event-notifier/

 

Example loan calculator made with Caldera Forms

Example loan calculator made with Caldera Forms

An example of a loan calculator using sliders and two calculation fields. No coding required.


$500
24 Months
14%

$

$


This is just an example. Fill in the form and hit submit to receive a copy of how the email result looks.

(Don’t worry, your details are safe, its purely as an example.)

Read More Read More

Nesting Shortcodes in WordPress (shortcodes in shortcodes)

Nesting Shortcodes in WordPress (shortcodes in shortcodes)

Shortcodes in WordPress are extreamly usefull for applying formatting or embeding external content in your pages or posts.
The only problem with them is the parser only does a single pass on the content, so if your shortcodes outputs a shortcode, or you have a shortcode nested within shortcodes, they wont render.

I found on the WordPress Codex that, to enable nesting shortcodes, or shortcodes within shortcodes, I would have to add return do_shortcode($content); This way it will push the result back into the parser.

That’s all very well, but what of shortcodes I didn’t make, or don’t have this added to them? So I made a little plugin that would override the default do_shortcode filter with an evaluator that would check for shortcodes and keep pushing it to do_shortcode until they are all done.

/*
Plugin Name: Shortcode Recursion
Description: Adds shortcode recursion for shortcodes that have shortcodes in shortcodes that has a shortcode in a shortcode in a shortcode with a shortcode in it, all wrapped in a shortcode within a shortcode... and so on.
Author: David Cramer
Version: 1.0
Author URI: http://digilab.co.za/
*/

/* evaluates content for shortcodes and sends it to do_shortcode() if needed and revaluates the result */
function shortcode_inception($content){
    // evaluate content for shortcodes.
    preg_match_all("/".get_shortcode_regex()."/s", $content, $matches);
    // if has shortcode, return revaluated content from  native do_shortcode
    if(isset($matches[2][0]))
        return shortcode_inception(do_shortcode($content));
    // return if nothing is found
    return $content;
}
// remove the native do_shortcode filter
remove_filter('the_content', 'do_shortcode', 11);
// replace the filter with the evaluator function
add_filter('the_content', 'shortcode_inception', 11);  
CSS3 + Jquery Ring Progress bar

CSS3 + Jquery Ring Progress bar

Animated ring progress bar in CSS3 and JQuery previewSo I’ve been playing with CSS3. Particularly transitions and clipping. As a result, I made this animated ring progress bar.

There is still a few alignment bugs and haven’t tested on all browsers, but in the big 3 (Chrome, FF and Safari) it looks pretty neat.

All layout gradients and animations are CSS3 transitions. I use jQuery to set the value and to animate the counter in the center.

To build it, I used this tutorialĀ kylejlarson.com/blog/2011/how-to-create-pie-charts-with-css3/ to make a pie chart in CSS3 as this is technically a piechart with two values and a hole in the middle.

There’s a working demo after the jump.

 

 

Read More Read More

DB-Toolkit Toggle Buttons sample

DB-Toolkit Toggle Buttons sample

Been working on V1 of my WordPress plugin DB-Toolkit for a few months now.

Some background, its a WordPress plugin that enables you to build interfaces into database tables, both existing and custom. Its currently in beta version but after working it so long, I decided that V1 required a rebuild using the knowledge I gained. I decided to go custom interface for this rather than adapt it into WordPress UI. Mu thinking on this subject is that you need to retain some elements, mainly navigation style and colors, but a plugin should have its own feel. Sure a plugin needs to be part of WordPress but that doesn’t mean it should look like it.

Anyway, these are a sample of the toggle buttons for setting up a DB-Toolkit interface. the green highlight indicates its checked while the extended button with the “required” text expands on hover to reveal the text.