NEW: api functions soma_queue_notice() and soma_completion_notice(). stores and displays admin notices in the core wp "message box" format.
FIX: saving framework options from the advanced tab was clearing all options. now all such options are on the same tab. renamed declarations tab > reports
cleaned up various css issues with metabox attachment items
added "uploaded X ago" to file attachment display
NEW: action hook soma_metabox_data_init, provides better location to hook all usage of soma_metabox_data() when declaring metabox field arrays. * soma_metabox_data_init passes $post as an argument, so can finally use functions to provide data to field arguments!
NOTE: you should never use "admin_init" as the hook for soma_metabox_data() anymore. Fires too early, no $post data possible
NEW: field type "button", outputs clicker buttons in the field row, can pass label and URL (or show a submit button)
audio shortcodes in fields now include ID of the attachment for more data than just the file src
radio field types now show emphasis on the selected radio label
FIX: finally solved the issue with post titles and slugs not getting saved when custom post type doesn't "support" title
FIX: deleting content from core data fields actually clears the saved field now
when using custom post title fields (not wp's title field), and field is left blank, title is changed to "Untitled"
new CPT icons
NEW: filter for custom metabox field data, "soma_field_data_[id]". Allows manipulation of $meta right before fields get rendered
readonly field type text gets run thru the_content filter, so formatting actually works
fully private site option. forces login on front-end to view anything at all.
disable RSS feeds option
NEW: when debug active, current template path is shown in admin bar
NEW: somaRequest class and soma_request_[*] dynamic action hook -- works much like wp_ajax_ hooks, but without the ajax. Triggered with the 'soma_request' query_var or as simple URL query params via $_GET. Very handy for export/download functions to fire without leaving current page!
NEW: somaFunctions::build_request_link() creates link to trigger soma_request_[*] action hook and pass along data (string or array)
all functionality of the old somaDownload class is now incorporated in an soma_request_legacy-download action hook (though the old "download" query var remains for backwards compatibility)
NEW: api function soma_fetch_file() returns bunch of really handy info about an attachment's file, including download link
swapped order of params on soma_select_number_generator() to make including 'zero' second
NEW: custom post type icons integrated - can now be picked with the arg "icon_set" (makes it easier to place soma-config.php in mu-plugins folder, as no additional images have to be included)
CHANGE: soma_init_type arg "icons" is now "custom_icon_path", to differentiate from built-in icon sets (all old configs will need to be updated, or use the new integrated sets)
gallery field items now show less attachment meta fields for filetypes other than images
sanitizing form field values less, allowing for decimals
better handling of mime-type file icons
FIX: action and filter hooks in somaSave class with same name resulted in nuked data upon save
NEW: filter hook to construct save data in special field cases: "soma_field_new_save_data"
FIX: finally cracked the issue of custom fields saving core column data and dealing with the quirks of tinymce ID limitations
cleaned up undefined indexes and variables
FIX: severe bug that prevented saving any changes from a wp_editor() richtext field or core post data columns
NOTE: when you spawn a richtext or html field type, the ID you give should only consist of lowercase letters, nothing else. A function has been included to provide backwards compatibility with older configs where underscores or dashes were used in the ID.
FIX: finally using wp_update_post() instead of $wpdb->update for core data, so now text gets sanitized and filtered as normal before saving.
FIX: major bugs in metabox text saving, resulting in escaped backslash quotes and more issues.
FIX: safe ID's now generated when using wp_editor(), as it's pretty fussy about ID's. You can use anything you want now without setting it off
FIX: finally isolated saving of core metabox data types thru custom ID's, so they don't get hijacked by core save routines
NEW: gallery field of attachments now supports editing of each attachment's title, caption, description and changing sort order!
FIX: colorbox overlays in admin have maxheight and maxwidth set
FIX: soma-public-jquery.js was failing and halting js when front-end colorbox was not enabled
NEW: sort_group_type -> ancestors allows Sort Order page via post_parent grouping (only deals with top-level parents)
FIX: saving post_title fields now also updates the post slug to match
FIX: more accurate use of wp_localize_script
FIX: soma_fetch_image was failing to return image sizes if none were generated because original was too small
FIX: errors using wp_register_style
FIX: broken styling of save-changes buttons
UPDATE: jquery UI smoothness theme updated to 1.9.2, removed local jQuery UI datepicker, as it's in wp-core
UPDATE: jquery UI timepicker addon to 1.2.1
NOTE: for 'upload-files' field types, the ID string for that field cannot contain a dash, or it breaks plupload js
added more filetype icons
metabox css tweaks
finally defined default args for metabox data and field arrays
more undefined index cleanup...
NEW: each metabox field can have "restrict" parameter to hide from non-staff level users
FIX: metabox jquery errors
started moving soma_metabox_generator() to be useful outside of post editor
modified soma_plupload.js to be useful outside of the post editor
metabox field data type "user" is gone. Use "core" instead and "post_author" as the field ID
metabox select fields now don't consider 0 to be "empty" if referring to post_parent
framework option for enabling Colorbox on front-end posts now automatically makes image links lightboxed
page-attributes metabox is no longer forced to show when post type is hierarchical (might want to use custom fields instead)
FIX: soma_singular_term() parameters fixed, can also fetch term_id
NEW: metabox field type "radio-horizontal" displays radio buttons... horizontally
NEW: can specify (per customposttype args or via post_meta key) "delete_attachments_upon_deletion" - to have all media attachments (and their files) specifically attached to a post deleted when that post gets deleted. I call it the "ritual suicide" option...
NEW action hook: soma_init - allows hooking init but only after Somatic Framework loads. Otherwise other plugins trying to register custom types would fail if they loaded before this one.
FIX: major bug with hierarchical post types not supporting anything
NEW functions fetch_sub_pages() and fetch_root_pages() for dealing with hierarchical post types
fixed stray undefined indexes...
FIX: deep bug that caused hierarchical CPTs to return 404 on child pages
NEW: option to enable custom link redirects via /go/[slug]. Use the filter 'soma_go_redirect_codes' to add a new slug/url pair. remember to flush rewrite rules
NEW: api soma_go_link(), returns HTML link code for an existing go code and link text
NEW: system for dynamically showing/hiding certain metabox field rows based on a list selection
field argument 'reveal-control' - should be assigned only to a 'radio' or 'select' field type (and only one per page)
field argument 'reveal-group' - array of names corresponding with the possible values of the reveal-control selector. If the current value is in the array, that field is shown, otherwise hidden
changes to table structure for metabox field rows - now descriptions and extra options are all within the main field row, so they can all be hidden together
FIX: taxonomy dropdown selectors can finally use "Create New" and have a new term created upon save! just use soma_select_taxonomy_terms('mytaxonomy', true) to generate the field 'options' array
FIX: metabox field type 'checkbox-single' (now known as 'toggle') finally works as expected! You can uncheck things now :-P
NEW: soma_fetch_image(), soma_asset_meta(), soma_attachments(), soma_fetch_image(), soma_singular_term() now accept either a post object or post ID (integer or string)
improved the save hooks to fire only when dealing with our custom fields
thumbnail columns now automatically adjust width according to thumbnail options (max width 200px)
FIX: finally overhauled somaSave and somaMetaboxes classes to more accurately handle saving and retrieving multiple items vs. single items
NOTE: when checkboxes are desired (one or more), use the new field type "checkbox" and pass options array. the old 'checkbox-single' type is deprecated in favor of 'toggle' - but to be used only with meta data (not taxonomy, etc)
NEW api soma_attachments(), wrapper for get_posts() returns array of attached post objects, minus the featured image (unless specified)
NEW api soma_fetch_image(), basically just renamed soma_featured_image() [still around for backwards compatibility] - reflects its ability to retrieve image data for any attachment, not just featured images
somaFunctions::fetch_attached_media() now takes mime-type argument and an optional argument to exclude the featured image
metabox field type "attachment" is now "gallery" (still with data of "attachment"). Shows all attached images or audio or video (via mediaelement)
metabox "gallery" field type now excludes the featured image automatically, allowing fully independent featured image and gallery attachment uploaders
metabox field argument for data of "attachment" can also include "mime-type" for filtering retrieved attachments by media type
NOTE: metabox field "upload-images" has been folded into "upload-files", which has abandoned the old html file selector input model, and now uses the hot new plUpload system.
NEW: metabox field "upload-files" can now handle audio as well as images!
old field type for featured image plUpload boxes, "upload-featured", is now deprecated: use "upload-files", with 'data' arg set to "featured"
FIX: multiple plUpload boxes on the same page now behave!
FIX: soma_fetch_image() was failing certain specific requests, now returns original full file URL if the requested size is not available (eg: original pic was smaller than site's "large" setting)
FIX: soma_fetch_image() now includes custom image sizes when available
NEW: soma_fetch_image() now returns title, description, caption, and alt text
NOTE: this means the key for the thumbnail image is now "thumbnail" (as returned by wp), and not "thumb", as it had been hardcoded before. Your old calls to soma_featured_image() for thumbs are likely broken now
NOTE: the missing image placeholder is now one single size image, so make sure you manually indicate the width and height in your image tags (or else they'll all display at 512px)
options to hide new Thesis 2.0 metaboxes
cleaned up all undefined index warnings
FIX: custom post type update messages were not being produced properly...
FIX: media uploader metabox field type works again
improvements to the styling and behavior of the sorting pages
improvements to the somaUploadField class
NOTE: any old metabox fields dealing with attachments should probably be revisited...
FIX save routines on external media and images don't die anymore if empty
NEW metabox field: "link"
metabox CSS tweaks
cleaned up some deprecated junk in manage_posts_columns calls
NEW api function soma_get_excerpt() for fetching existing post_excerpt or manually creating one from post_content via post ID or object
fixed warning with lack of metabox definitions. Now, in soma_init_type args, you can declare blank_slate = true to remove all core wp metaboxes (in effect, declaring no post_type_support for title, editor, author, etc.). This replaces the old behavior of passing an empty array to the "supports" arg, which didn't work well when parsing default args. It also means the missing metabox warning will only appear if the post type doesn't support any core wp boxes.
FIX default behavior to not always show the toolbar on the front end [facepalm]
NEW users have toolbar off by default
NEW option to force toolbar to show for everyone, everywhere
NEW soma_option for setting the Login page logo
custom login logos should be transparent PNG of 320x70 exactly, with content aligned bottom center for best results
stopped hiding user profile fields
now using transients with soma_set_option(), allowing caching, reducing DB load when calling soma_set_option() on every page load
option to force admin bar only applies to logged in users
$_GET and $_POST are now passed to JS via soma_vars
fixed stripslashes problem with quotes in text fields
kint debug aborts if output buffering not on
login page indicator if WPEngine
NEW image uploader metabox field type. Uses WP included plUpload for drag-n-drop, queued uploads, creates attachments upon saving. Can also be used for featured images.
new option to disable screen options tab
disabled privileges check in save_asset() that conflicted with paypal digital goods checkout
fixed bug that output junk to the login screen
fixed column listing error when no columns are defined in a CPT
changed save_asset() to not fire when quickedit is used
changed save_asset() to not wipe out our custom defined metadata and taxonomies when other forms/plugins call save_post
fixed problem where quickedit would fail to complete because of jQuery error (when custom columns were in use) - NOTE: after quickedit save updates, it won't show the custom columns - refresh the list page to see custom columns again
removed hook that fired on user profile update, as it got stuck in a fatal infinite loop with any other plugin that tried to update a user...
changed SOMA_URL constant (and all others built on it) to use https:// scheme when in use
fixed error in disabling paging for custom taxonomies defined elsewhere...
updated placeholder images
added flag to custom post type definitions to identify which CPT's have been defined through this framework
Admin CSS improvements
FIX: removed undefined metabox errors for built-in post types
NOTE: for soma_debug output, php.ini must be configured with "output_buffering" set to ON (not a number like 4096), or you will see a bunch of "Cannot modify header information" warnings coming from Kint....
NEW: option to enable Colorbox JS on front-end
metabox field save button can now be set to always change post status to "publish"
FIX: fatal SQL error in the posts_orderby filter when order_by wasn't defined (default was set to date instead of post_date)
NOTE: when defining sort_by values for CPT's, do not use the WP_Query values for 'orderby' - must use actual wp_posts column names (like post_title instead of just title)
NEW: soma_init_type() arguments "sort_by" (post_date, post_title, post_author, menu_order, meta_value) and "sort_order" (asc, desc) to override the default query filters
REMOVED: soma_init_type() argument "sortable" is gone - replace with new "sort_by"
NOTE: must modify all calls to soma_init_type()!
moved all filtering of parse_query into somaTypes class
fixed various "missing index" errors
CHANGE: soma_select_items() second argument is now an array of any arguments you would pass to get_posts()
soma_featured_image now handles custom image size labels (from add_image_size) via the $specific argument
new metabox field: p2p-select - allows assigning single p2p relationship via dropdown (warning: must hide the core p2p admin box if you use these fields! there's a conflict in the save routines)
new metabox field: p2p-multi - allows assigning multiple p2p relationships via checkboxes
can now use soma_metabox_data() with core post and page types
updated jqueryUI timepicker to 0.9.9
timepicker metabox type now actually works...
new Sort Order grouping: p2p, give it a P2P connection type name (ex: sortable = true, sort_group_type = p2p, sort_group_slug = albums-tracks)
new save action hook: soma_save_asset
admin css tweaks
metabox field type p2p-thumbs is now p2p-objects
expanded list of metaboxes to disable to include core WP ones
new ability to specify grouping of cpt objects on the Sort Order page, if sorting is enabled (ex: sortable = true, sort_group_type = taxonomy, sort_group_slug = genres)
fixed css bug in clicker buttons
fixed query parsing on sortable post types - now the query is always filtered to sort the query output by menu_order ASC (as was intended) - so now admin and front-end post listings reflect the proper order!
new option to disable paging (list all items instead) per post type
moved all custom somatic framework arguments for register_post_type within the core arguments array, so they're stored as part of the post type object and can be retrieved with get_queried_object()
NOTE: make sure you've updated any calls to soma_init_type, so that the "sortable", "create_nav_item", etc args are passed in the main "args" array!
disabling admin menus also gets rid of the +New admin bar item
using checked() on html forms now
better handling of missing metabox config data...
tabs on the option page
subtle tweaks to login page
using wp_enqueue_scripts() globally now
favicon set and display on options page
options page is now top-level, with subpages
import/export of framework options
fixed menu detection with soma_init_type argument "create_nav_item"
custom post types and taxonomies now actually display list metaboxes in Appearance->Menus if "show_in_nav_menus" arg is true (rather than simply being available to show via Screen Options, but unchecked by default)
NEW somatic_framework_options settings container (serialized array of default options)
NEW api function: soma_set_option() - allows easy manipulation of somatic_framework_options in wp_options table
NEW global var: $soma_options - quick checking of current options with DB query
NEW settings page to toggle debug mode, plugin dependencies, dashboard widgets, bottom admin bar, editor metaboxes, admin menus, and more
NEW daily cron task, use action hook 'soma_daily_event'
NEW csv export class, included in trunk but not ready for prime time
NEW plugin checks for minimum wordpress version, aborts otherwise...
NEW for CPT's with show_in_nav_menu = true, an item will be available at the top of the "view all" tab in the CPT panel of Appearance->Menus. Adding that to the menu will create a custom nav menu item configured to display CPT archives
NEW arg 'create_nav_item' for soma_init_type() - replaces the 'navbar' arg
CHANGE: custom post type nav items - instead of filtering the nav menu output and tacking our CPT's on, we're actually creating real nav menu items in the DB. Then you can go to Appearance->Menus and re-order that item like any other
REMOVED filter: soma_custom_type_nav_position, as the CPT nav items aren't being generated by somaTypes::custom_type_nav() anymore
DEPRECATED: old options soma_meta_prefix, soma_meta_serialize, soma_debug - store your values in the new somatic_framework_options settings container. ex: update_option('somatic_framework_options', array('meta_prefix', '_foo'));
CHANGE: keycommand for showing/hiding the debug bar panels is now "\" for minimized and alt+"\" for maximized view
sexy settings link right on the plugins page!
improved the example php config templates
better handling of missing metabox config data in add_boxes()
independent handling of current nav menu item classes with fix_nav_classes()
fixed fatal error in checking for Kint when debug mode is enabled...
NEW metabox field type: external_media - Text field that accepts vimeo or youtube URLs, and fetches that video's metadata via each site's public API. Also saves that response in post_meta for quicker retrieval.
NEW metabox field type: external_image - Text field that accepts image URL, and can import the image as an attachment, also setting imported image as Featured Image
NEW API function: soma_external_media() - parses URL from either youtube or vimeo, returns an array with basic metadata, including ID, title, thumbnails - optionally imports source image to local library and sets the post_thumbnail!. NOTE: desired video must not be private, password-protected, or have embedding disabled by the owner!
NEW internal function: somaFunctions::attach_external_image() - sideloads an external image URL into the wordpress media library and attaches to a post
updated colorbox.js to 1.3.19
fixed broken url for jquery UI smoothness css
fixed link output in custom_type_nav() for when the custom post type slug includes variables for taxonomy permalinks
NEW filter: soma_custom_type_nav_position, for determining with the nav items that are automatically generated for custom post types are placed before or after the existing menu items. Defaults to "after" (return "before" via filter to change)
fixed soma_init_type ignoring navbar=false and inserting menu item anyway
fixed broken css on Sort Order pages
consolidated metabox description row code (too much duplication)
a smattering of other tweaks, enhancements, and bugfixes..
admin footer text output
fixed numeric field input to allow colon (:)
fixed problem with setting the option soma_meta_serialize, which needs to be passed 0 or 1, not boolean true or false (false resulted in empty option_value, which broke everything)
NOTE: when using soma_asset_meta(), don't include the prefix when specifying the post_meta key! it gets added automatically. Just use the exact ID you gave when declaring the field in soma_metabox_data()
NEW API function: soma_singular_term() for retrieving the term of a taxonomy that is meant to have only one value at a time.
NEW documentation - example PHP code in the doc folder, to help demonstrate how to use the somatic framework
added 'navbar' argument to soma_init_type to choose whether to display a nav menu item to the primary navbar for custom post types [default: true]
added 'sortable' argument to soma_init_type to choose whether to make items manually sortable (instead of automatically sorting by date) [default: false]
post meta keys are now stored individually by default. If you want to store all metadata per post as a serialized array in a single key, you need to set the option 'soma_meta_serialize' to true
the default post meta key name prefix is "_soma" (what you give as the ID for a metabox field is added to it). If you want a custom prefix, you need to set the option 'soma_meta_prefix' to "_YOUR_PREFIX"
admin type sorting page rows fit content better
NEW API function: soma_asset_meta() for manipulating post_meta (abstracts the core functions to better handle serialization cases)
NEW API function: soma_featured_image() for retrieving everything you could possibly need to know about the featured image (post thumbnail)
in edit listing columns, the checkbox column is always included now, so don't need to pass it in soma_init_type column array
fixed a query parsing filter that was forcing everything to order by menu_order ASC, no matter what...
had forgotten to actually enqueue jquery UI datepicker and slider js and css this whole time
added button to clear date values when using datepicker
revised somaFunctions::fetch_connected_items() to handle p2p plugin evolution
note: must pass the p2p type ID and not the post_type anymore! Please revise all calls to fetch_connected_items()!
When passing "p2p" field data with soma_metabox_data(), you must also pass "p2pname" for the unique registered p2p connection ID and "type" (p2p-list or p2p-thumb) for output
cleaned up save routines, stripslashes bugs
metabox type "richtext" now uses the new WP3.3 wp_editor() function (multiple rich editors possible, yay!)
NEW metabox type "html" uses the new WP3.3 wp_editor() function, but without the visual editor
metabox type "editor" removed - use "richtext" instead with ID of "post_content" and data of "core" if you're trying to replace the core post editor (just make sure to NOT include "editor" in the post type support!)
some css tweaks in the editor to keep up with WP3.3
added action hook "soma_column_data" to inject custom post type column data output
added listings for public custom post types and taxonomies to the Right Now dashboard widget
added ability to pick future years (+10) in the basic date picker
bugfix: soma_metabox_data was expecting unecessary array keys
bugfix: legacy date selectors couldn't handle mysqldate format
bugfix: somaFunctions::fetch_featured_image() couldn't handle when wp uploads were organized in year-month folders. Also couldn't handle when all the sizes (thumb, medium, full) didn't exist... ugh...
created public functions in api.php to initialize things like custom post type, taxonomy, terms, and custom metabox data
added flush_rewrite_rules to plugin activation
added contextual help customization per CPT
generate custom icon paths automatically based on CPT slug, just provide URL to directory where they're located, image name scheme "slug-menu-icon.png"
limit taxonomy term insertion to plugin or theme activation (two scenarios where soma_init_taxonomy could be called)
first public release on wordpress.org
added jPlayer for metaboxes - meta type Audio or Video
asset_meta() can be set to serialize or not post_meta via somaMetaboxes::$meta_serialize var (default true), can also be overridden via function params
somaMetaboxes::$meta_prefix var for themes to override
added arg to init_taxonomy to automatically hide metaboxes on custom taxonomies
added file upload field type
added attachment gallery display field type
added colorbox lightbox viewing for images, pdf, doc, xls, ppt (with google doc iframe viewer)
added somaDownload class for creating links to download attachments directly
added jqueryUI datepicker and timepicker
added "help" metabox field type, displaying the text across both table columns
fixed ridiculous metabox field table layout issues
fixed saving of incomplete "date" fields
NEW fetch_index function for dealing with $_GET and $_POST
purged tons of outdated/unused code from other projects
changed save_asset() for core data types to use wp_update_post instead of $wpdb->update
NEW metabox field type: richtext (with tinymce)
NEW functions for fetching userdata
individual metabox save buttons
added somaTypes class, handling generation of custom post types, taxonomies, and terms
Code documentation is crude, with comments everywhere. Will standardize docs soon...
includes somaFunctions, somaMetaboxes, somaSave, and somaSorter classes
Requires: 3.3 or higher Compatible up to: 3.5.2 Last Updated: 2014-3-1 Downloads: 2,141