Plugin Directory

Changeset 701410


Ignore:
Timestamp:
04/22/2013 07:51:17 AM (13 years ago)
Author:
carstenbach
Message:

release version 1.4

Location:
cbach-wp-gridster
Files:
93 added
9 edited

Legend:

Unmodified
Added
Removed
  • cbach-wp-gridster/trunk/cbach-wp-gridster.php

    r698498 r701410  
    11<?php
    2 /*
    3 Plugin Name:            Gridster
    4 Plugin URI:       https://github.com/carstingaxion/cbach-wp-gridster
    5 Description:      Gridster is a WordPress plugin that makes building intuitive draggable layouts from elements spanning multiple columns. You can even dynamically resize, add and remove elements from the grid, as edit the elements content inline.
    6 Author:                 Carsten Bach
    7 Version:                    1.3.2
    8 Author URI:         http://carsten-bach.de
    9 */
     2/**
     3 * Plugin Name:             Gridster
     4 * Plugin URI:        https://github.com/carstingaxion/cbach-wp-gridster
     5 * Description:       Gridster is a WordPress plugin that makes building intuitive draggable layouts from elements spanning multiple columns. You can even dynamically resize, add and remove elements from the grid, as edit the elements content inline.
     6 * Author:                  Carsten Bach
     7 * Version:                     1.4
     8 * Author URI:          http://carsten-bach.de
     9 * Text Domain:       cbach-wp-gridster
     10 * License:           GPLv2
     11 *
     12 * Copyright 2013
     13 *
     14 * This program is free software; you can redistribute it and/or modify
     15 * it under the terms of the GNU General Public License, version 2, as
     16 * published by the Free Software Foundation.
     17 *
     18 * This program is distributed in the hope that it will be useful,
     19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
     21 * GNU General Public License for more details.
     22 *
     23 * You should have received a copy of the GNU General Public License
     24 * along with this program; if not, write to the Free Software
     25 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
     26 */
    1027
    1128
     
    4461         *   @type  string
    4562         */         
    46         protected $version = '1.3.2';
     63        protected $version = '1.4';
    4764       
    4865       
     
    88105         *  @type   string
    89106         */                                             
    90         private $cpt_gridster = 'gridster';
     107        private static  $cpt_gridster = 'gridster';
    91108       
    92109       
     
    116133         *  @type   string
    117134         */                                                       
    118         private $default_settings_name = 'gridster_default_options';
     135        private static $default_settings_name = 'gridster_default_options';
    119136
    120137
     
    168185        protected $error_msg = array(); 
    169186       
     187       
     188        /**
     189         *  Feature pointer holder
     190         * 
     191         *  @type   mixed
     192         */                                     
     193        protected $show_feature_pointers = false;
     194                                                 
    170195                                                                                 
    171196        /**
    172197         *  Construct the CLASS
    173          * 
    174          *  @todo remove script debug                 
    175198         * 
    176199         */ 
     
    194217           
    195218            // check requirements
    196             if ( $this->check_dependencies() === true ) {
     219            if ( $this->check_dependencies() ) {
    197220           
    198221                //Hook up to the init action
     
    220243         *   
    221244         */                 
    222         public function activate() {
    223            
    224             // init our new post_types and taxonomies to whitelist new permalink structures
    225             $this->gridster_register_as_posttype();
     245        public static function activate() {
    226246           
    227247            // init first plugin options
    228 #            update_option( $this->default_settings_name, $this->get_default_settings() );
     248#            update_option( self::$default_settings_name, $this->get_default_settings() );
    229249        }
    230250       
     
    237257         *   
    238258         */                 
    239         public function deactivate() {
     259        public static function deactivate() {
    240260        }
    241261       
     
    250270         *   
    251271         */                 
    252         public function uninstall() {
     272        public static function uninstall() {
    253273           
    254274            // important: check if the file is the one that was registered with the uninstall hook (function)
     
    259279            $all_gridsters = get_posts( array(
    260280                'posts_per_page'=> -1,
    261                 'post_type' => $this->cpt_gridster,
     281                'post_type' => self::$cpt_gridster,
    262282                'post_status' => 'any'
    263283            ) );
     
    273293           
    274294            // delete plugin options
    275             delete_option( $this->default_settings_name );
     295            delete_option( self::$default_settings_name );
    276296        }     
    277297     
     
    370390                // AJAX callback for textile rendering of Jeditable "textile" field
    371391#                add_action('wp_ajax_ajax_get_textile_markup_for_jeditable', array( &$this, 'ajax_get_textile_markup_for_jeditable' ) );
     392
     393#add_action( 'admin_enqueue_scripts', array( &$this, 'feature_pointer' ), 1000 );
     394#add_filter( 'gridster_admin_pointers-post', array( &$this, 'feature_pointers_post' ) );
     395#add_filter( 'gridster_admin_pointers-post', array( &$this, 'sec_feature_pointers_post' ) );
     396
    372397            } else {
    373398               
     
    407432            // only in 'wp-admin/post-new.php?post_type=gridster'
    408433            // or '/wp-admin/post.php'
    409 #            if ( is_admin() && isset( $_GET['post_type'] ) && $_GET['post_type'] == $this->cpt_gridster ) {
     434#            if ( is_admin() && isset( $_GET['post_type'] ) && $_GET['post_type'] == self::$cpt_gridster ) {
    410435
    411436                // in WP < 3.4 the has_post_thumbnail function is only
     
    441466           
    442467            // get styles for our workbench
    443             if ( $this->current_screen->base == 'post' && $this->current_screen->post_type == $this->cpt_gridster ) {
     468            if ( $this->current_screen->base == 'post' && $this->current_screen->post_type == self::$cpt_gridster ) {
    444469                // Jquery UI
    445470                wp_register_style( 'jquery-ui-base-css', plugins_url( '/css/jquery-ui/jquery-ui-base.'.$this->minified_css_files.'css', __FILE__ ), $deps, '1.0' );         
     
    455480                wp_register_style( $this->prefix.'lib_css', plugins_url( '/css/gridster/jquery.gridster.'.$this->minified_css_files.'css', __FILE__ ), $deps, $this->gridster_version );
    456481                wp_enqueue_style( $this->prefix.'lib_css' );           
    457             }   
     482            }
     483/*           
     484            // get styles for feature pointers
     485            if ( $this->show_feature_pointers ) {
     486               
     487                // Add pointers style to queue.
     488                wp_enqueue_style( 'wp-pointer' );
     489            }               
     490*/
    458491        }
    459492       
     
    501534
    502535            // Register our workbench Scripts
    503             if ( $this->current_screen->base == 'post' && $this->current_screen->post_type == $this->cpt_gridster ) {
     536            if ( $this->current_screen->base == 'post' && $this->current_screen->post_type == self::$cpt_gridster ) {
    504537
    505538                // load depending scripts first
     
    545578                wp_localize_script( $this->prefix.'admin_js', $this->prefix.'admin', $localize );       
    546579            }
     580/*           
     581            // load scripts for feature-pointers
     582            if ( $this->show_feature_pointers ) {
     583               
     584                // Add pointers script to queue.
     585                wp_register_script( $this->prefix.'feature-pointer', plugins_url( 'js/gridster_feature-pointer.'.$this->minified_js_files.'js', __FILE__ ), array( 'wp-pointer' ), $this->version );               
     586                wp_enqueue_script( $this->prefix.'feature-pointer' );
     587             
     588                // Add pointer options to script.
     589                wp_localize_script( $this->prefix.'feature-pointer', $this->prefix.'Pointers', $this->show_feature_pointers );             
     590            }
     591*/
     592         
    547593
    548594        }
     
    677723                'can_export' => true,
    678724            );
    679             register_post_type( $this->cpt_gridster, $gridster_args );
     725            register_post_type( self::$cpt_gridster, $gridster_args );
    680726        }
    681727
     
    701747            global $post, $post_ID;
    702748           
    703             $messages[$this->cpt_gridster] = array(
     749            $messages[self::$cpt_gridster] = array(
    704750                0 => '', // Unused. Messages start at index 1.
    705751                1 => _x( 'Gridster updated.', 'post_updated message', 'cbach-wp-gridster' ),
     
    734780       
    735781            // Check current admin page
    736             if( $pagenow == 'edit.php' && isset( $_GET['post_type'] ) && $_GET['post_type'] == $this->cpt_gridster ){
    737                 wp_redirect( admin_url('/post-new.php?post_type=' . $this->cpt_gridster, 'http'), 302 );
     782            if( $pagenow == 'edit.php' && isset( $_GET['post_type'] ) && $_GET['post_type'] == self::$cpt_gridster ){
     783                wp_redirect( admin_url('/post-new.php?post_type=' . self::$cpt_gridster, 'http'), 302 );
    738784                exit;
    739785            }
     
    818864        public function gridster_post_row_actions( $actions, $post ) {
    819865           
    820             if ( $post->post_type == $this->cpt_gridster ) {
     866            if ( $post->post_type == self::$cpt_gridster ) {
    821867                unset( $actions['inline hide-if-no-js'] );
    822868                unset( $actions['view'] );
     
    833879             *           
    834880             */
    835             function add_shortcode_to_publish_metabox() {
     881            public function add_shortcode_to_publish_metabox() {
    836882               
    837883            global $post;
    838884           
    839             if ( $this->cpt_gridster != get_post_type( $post->ID ) )
     885            if ( self::$cpt_gridster != get_post_type( $post->ID ) )
    840886                return;
    841887               
     
    860906                __( 'Gridster', 'cbach-wp-gridster' ),
    861907                array( &$this, 'gridster_workbench_meta_box' ),
    862                 $this->cpt_gridster,
     908                self::$cpt_gridster,
    863909                'normal',
    864910                'high'
     
    872918                    __( 'Gridster - Layout options', 'cbach-wp-gridster' ),
    873919                    array( &$this, 'gridster_options_meta_box' ),
    874                     $this->cpt_gridster,
     920                    self::$cpt_gridster,
    875921                    'side',
    876922                    'default'
     
    879925           
    880926            // remove "Slug" metabox 'cause we really don't need it
    881             remove_meta_box( 'slugdiv', $this->cpt_gridster, 'normal' );
     927            remove_meta_box( 'slugdiv', self::$cpt_gridster, 'normal' );
    882928
    883929           
     
    10571103        }
    10581104       
    1059        
    1060        
     1105 
     1106       
     1107
     1108
     1109 
     1110public function feature_pointer( ) {
     1111
     1112    $screen_id = $this->current_screen->base;
     1113#fb($screen_id);
     1114    // Get pointers for this screen
     1115    $pointers = apply_filters( 'gridster_admin_pointers-' . $screen_id, array() );
     1116 
     1117    if ( ! $pointers || ! is_array( $pointers ) )
     1118        return;
     1119 
     1120    // Get dismissed pointers
     1121    $dismissed = explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) );
     1122    $valid_pointers = array();
     1123 
     1124    // Check pointers and remove dismissed ones.
     1125    foreach ( $pointers as $pointer_id => $pointer ) {
     1126 
     1127        // Sanity check
     1128        if ( in_array( $pointer_id, $dismissed ) || empty( $pointer )  || empty( $pointer_id ) || empty( $pointer['target'] ) || empty( $pointer['options'] ) )
     1129            continue;
     1130 
     1131        $pointer['pointer_id'] = $pointer_id;
     1132 
     1133        // Add the pointer to $valid_pointers array
     1134        $valid_pointers[] =  $pointer;
     1135    }
     1136 
     1137    // No valid pointers? Stop here.
     1138    if ( ! empty( $valid_pointers ) )
     1139        $this->show_feature_pointers = $valid_pointers;
     1140
     1141                // Add pointers script to queue.
     1142                wp_register_script( $this->prefix.'feature-pointer', plugins_url( 'js/gridster_feature-pointer.'.$this->minified_js_files.'js', __FILE__ ), array( 'wp-pointer' ), $this->version );               
     1143                wp_enqueue_script( $this->prefix.'feature-pointer' );
     1144             
     1145                // Add pointer options to script.
     1146                wp_localize_script( $this->prefix.'feature-pointer', $this->prefix.'Pointers', $this->show_feature_pointers );             
     1147
     1148}       
    10611149/***************************************************************************************************************************************************************************************************
    10621150 *
     
    11131201               
    11141202            // look for existing posts
    1115             $have_posts = get_posts( array( 'post_type' => $this->cpt_gridster, 'posts_per_page' => -1, 'post_status' => 'any' ) );
     1203            $have_posts = get_posts( array( 'post_type' => self::$cpt_gridster, 'posts_per_page' => -1, 'post_status' => 'any' ) );
    11161204
    11171205            // update plugin options, if we've posts
    11181206            $this->default_settings['have_gridster_posts'] = ( empty( $have_posts ) ) ? false : true;
    1119             update_option( $this->default_settings_name, $this->default_settings );           
     1207            update_option( self::$default_settings_name, $this->default_settings );           
    11201208        }
    11211209
     
    11361224           
    11371225            // get settings from DB
    1138             $default_settings = (array) get_option( $this->default_settings_name );
     1226            $default_settings = (array) get_option( self::$default_settings_name );
    11391227            $this->default_settings = $default_settings;
    11401228           
     
    12091297           
    12101298            // remove "All Gridster" Page from "Gridster" post_type menu, if nothing can be shown there           
    1211             remove_submenu_page( 'edit.php?post_type=' . $this->cpt_gridster, 'edit.php?post_type=' . $this->cpt_gridster );
     1299            remove_submenu_page( 'edit.php?post_type=' . self::$cpt_gridster, 'edit.php?post_type=' . self::$cpt_gridster );
    12121300        }
    12131301       
     
    12221310        public function settings_page () {
    12231311               
    1224             $tab = isset( $_GET['tab'] ) ? $_GET['tab'] : $this->default_settings_name;
     1312            $tab = isset( $_GET['tab'] ) ? $_GET['tab'] : self::$default_settings_name;
    12251313                ?>
    12261314                <div class="wrap">
     
    12491337        public function plugin_options_tabs() {
    12501338           
    1251           $current_tab = isset( $_GET['tab'] ) ? $_GET['tab'] : $this->default_settings_name;
     1339          $current_tab = isset( $_GET['tab'] ) ? $_GET['tab'] : self::$default_settings_name;
    12521340            screen_icon();
    12531341            echo '<h2 class="nav-tab-wrapper">';
     
    12731361           
    12741362            // Title of general Settings Tab
    1275             $this->plugin_settings_tabs[$this->default_settings_name] = __( 'Default Options for all gridsters','cbach-wp-gridster' );
     1363            $this->plugin_settings_tabs[self::$default_settings_name] = __( 'Default Options for all gridsters','cbach-wp-gridster' );
    12761364               
    12771365                // register settings and validate callback
    12781366            register_setting(
    1279                 $this->default_settings_name,
    1280                 $this->default_settings_name,
     1367                self::$default_settings_name,
     1368                self::$default_settings_name,
    12811369                array( &$this, 'settings_validate' )
    12821370            );
     
    12871375                __( 'Default Options for all Gridsters', 'cbach-wp-gridster' ),
    12881376                array( &$this, 'settings_default_section_helptext' ),
    1289                 $this->default_settings_name
     1377                self::$default_settings_name
    12901378            );
    12911379               
     
    12951383                __( 'Minimum number columns to create', 'cbach-wp-gridster' ),
    12961384                array( &$this, 'settings_text_input' ),
    1297                 $this->default_settings_name,
     1385                self::$default_settings_name,
    12981386                'section_general',
    12991387                array(
    13001388                    'name' => 'min_cols',
    1301                     'label_for' => $this->default_settings_name.'-min_cols',
     1389                    'label_for' => self::$default_settings_name.'-min_cols',
    13021390                )           
    13031391            );
     
    13081396                __( 'horizontal margin', 'cbach-wp-gridster' ),
    13091397                array( &$this, 'settings_text_input' ),
    1310                 $this->default_settings_name,
     1398                self::$default_settings_name,
    13111399                'section_general',
    13121400                array(
    13131401                    'name' => 'widget_margin_x',
    1314                     'label_for' => $this->default_settings_name.'-widget_margin_x',
     1402                    'label_for' => self::$default_settings_name.'-widget_margin_x',
    13151403                )           
    13161404            );
     
    13211409                __( 'vertical margin', 'cbach-wp-gridster' ),
    13221410                array( &$this, 'settings_text_input' ),
    1323                 $this->default_settings_name,
     1411                self::$default_settings_name,
    13241412                'section_general',
    13251413                array(
    13261414                    'name' => 'widget_margin_y',
    1327                     'label_for' => $this->default_settings_name.'-widget_margin_y',
     1415                    'label_for' => self::$default_settings_name.'-widget_margin_y',
    13281416                )           
    13291417            );           
     
    13341422                __( 'widgets base width', 'cbach-wp-gridster' ),
    13351423                array( &$this, 'settings_text_input' ),
    1336                 $this->default_settings_name,
     1424                self::$default_settings_name,
    13371425                'section_general',
    13381426                array(
    13391427                    'name' => 'widget_base_width',
    1340                     'label_for' => $this->default_settings_name.'-widget_base_width',
     1428                    'label_for' => self::$default_settings_name.'-widget_base_width',
    13411429                )           
    13421430            );
     
    13471435                __( 'widgets base height', 'cbach-wp-gridster' ),
    13481436                array( &$this, 'settings_text_input' ),
    1349                 $this->default_settings_name,
     1437                self::$default_settings_name,
    13501438                'section_general',
    13511439                array(
    13521440                    'name' => 'widget_base_height',
    1353                     'label_for' => $this->default_settings_name.'-widget_base_height',
     1441                    'label_for' => self::$default_settings_name.'-widget_base_height',
    13541442                )           
    13551443            );           
     
    13921480            } else {
    13931481                add_settings_error(
    1394                     $this->default_settings_name,
     1482                    self::$default_settings_name,
    13951483                    'invalid-min_cols-integer',
    13961484                    '<strong>'.__( 'Minimum number columns to create', 'cbach-wp-gridster' ).'</strong>: '. __( 'You have entered an invalid value. Value must be of type: integer.', 'cbach-wp-gridster' )
     
    14031491            } else {
    14041492                add_settings_error(
    1405                     $this->default_settings_name,
     1493                    self::$default_settings_name,
    14061494                    'invalid-widget_margin_x-integer',
    14071495                    '<strong>'.__( 'horizontal margin', 'cbach-wp-gridster' ).'</strong>: '. __( 'You have entered an invalid value. Value must be of type: integer.', 'cbach-wp-gridster' )
     
    14141502            } else {
    14151503                add_settings_error(
    1416                     $this->default_settings_name,
     1504                    self::$default_settings_name,
    14171505                    'invalid-widget_margin_y-integer',
    14181506                    '<strong>'.__( 'vertical margin', 'cbach-wp-gridster' ).'</strong>: '. __( 'You have entered an invalid value. Value must be of type: integer.', 'cbach-wp-gridster' )
     
    14251513            } else {
    14261514                add_settings_error(
    1427                     $this->default_settings_name,
     1515                    self::$default_settings_name,
    14281516                    'invalid-widget_base_width-integer',
    14291517                    '<strong>'.__( 'widgets base width', 'cbach-wp-gridster' ).'</strong>: '. __( 'You have entered an invalid value. Value must be of type: integer.', 'cbach-wp-gridster' )
     
    14361524            } else {
    14371525                add_settings_error(
    1438                     $this->default_settings_name,
     1526                    self::$default_settings_name,
    14391527                    'invalid-widget_base_height-integer',
    14401528                    '<strong>'.__( 'widgets base height', 'cbach-wp-gridster' ).'</strong>: '. __( 'You have entered an invalid value. Value must be of type: integer.', 'cbach-wp-gridster' )
     
    14571545        public function settings_text_input( $args ) {
    14581546           
    1459             $id =  esc_attr( $this->default_settings_name.'-'.$args['name'] );
    1460             $name = esc_attr( $this->default_settings_name.'['.$args['name'].']' );
     1547            $id =  esc_attr( self::$default_settings_name.'-'.$args['name'] );
     1548            $name = esc_attr( self::$default_settings_name.'['.$args['name'].']' );
    14611549            $value = esc_attr( $this->default_settings[$args['name']] );
    14621550            echo '<input type="text" id="'.$id.'" name="'.$name.'" value="'.$value.'" />';
     
    14801568           
    14811569            // check if we're on the right post_type
    1482             if ( $this->cpt_gridster != $_POST['post_type'] )
     1570            if ( self::$cpt_gridster != $_POST['post_type'] )
    14831571                return;
    14841572               
     
    15311619           
    15321620            // only go on for gridster posts
    1533             if ( $post->post_type != $this->cpt_gridster )
     1621            if ( $post->post_type != self::$cpt_gridster )
    15341622                return;
    15351623               
    15361624            // check if the current user is authorised to do this action.           
    1537             $pt = get_post_type_object( $this->cpt_gridster );
     1625            $pt = get_post_type_object( self::$cpt_gridster );
    15381626            if ( ! current_user_can(  $pt->cap->delete_post , $post_id ) )
    15391627                return;
     
    15801668           
    15811669            // check if we're on the right post_type
    1582             if ( $this->cpt_gridster != $post->post_type )
     1670            if ( self::$cpt_gridster != $post->post_type )
    15831671                return;
    15841672           
     
    17161804            // verifies the AJAX request to prevent external processing requests 
    17171805            check_ajax_referer( $this->nonce, 'nonce' );
     1806           
     1807            // on updating an existing shortcode, we need the ID
     1808            $selected = ( isset( $_GET['selected'] ) && !empty( $_GET['selected'] ) && $_GET['selected'] != 'undefined' ) ? absint( $_GET['selected'] ) : false ;
    17181809
    17191810            // setup query arguments
    17201811            $args = array(
    1721                 'post_type' => $this->cpt_gridster,
     1812                'post_type' => self::$cpt_gridster,
    17221813                'orderby'=> 'title',
    17231814                'order' => 'ASC',
     
    17361827            echo '<link rel="stylesheet" media="screen" type="text/css" href="' . includes_url( '/js/tinymce/themes/advanced/skins/wp_theme/dialog.css', __FILE__ ) . '">';           
    17371828            echo '<link rel="stylesheet" media="screen" type="text/css" href="' . plugins_url( '/css/gridster_admin.'.$this->minified_css_files.'css', __FILE__ ) . '">';
    1738 #            echo '<script language="javascript" type="text/javascript" src="' . plugins_url( '/tinymce/tinymce_gridster_shortcode_modal.js', __FILE__ ) . '" /></script>';
    1739             // for debug only
    1740 #            $date = new DateTime();
    1741 #            echo '<link rel="stylesheet" media="screen" type="text/css" href="' . plugins_url( '/css/gridster_admin.css?cache=' . $date->getTimestamp(), __FILE__ ) . '">';           
    1742 #            echo '<script language="javascript" type="text/javascript" src="' . plugins_url( '/tinymce/tinymce_gridster_shortcode_modal.js?cache=' . $date->getTimestamp(), __FILE__ ) . '" /></script>';           
     1829            echo '<script language="javascript" type="text/javascript" src="' . includes_url( 'js/tinymce/tiny_mce_popup.js' ) . '"></script>';
     1830            echo '<script language="javascript" type="text/javascript" src="' . plugins_url( '/tinymce/tinymce_gridster_shortcode_modal.'.$this->minified_css_files.'js', __FILE__ ) . '" /></script>';
    17431831
    17441832            echo '</head><body>';
     
    17521840                    echo '<p>';
    17531841                        echo '<label for="'.$this->prefix.'choose_shortcode_list_el-' . get_the_ID() . '">';
    1754                             echo '<input type="radio" name="' . $this->prefix . 'choose_shortcode_list" id="' . $this->prefix . 'choose_shortcode_list_el-' . get_the_ID() . '" value="' . esc_attr( '[' . $this->gridster_shortcode . ' id="' . get_the_ID() . '" title="' . get_the_title() . '"]' ) . '">';               
     1842                            echo '<input type="radio" ' . checked( $selected, get_the_ID(), false ) . ' name="' . $this->prefix . 'choose_shortcode_list" id="' . $this->prefix . 'choose_shortcode_list_el-' . get_the_ID() . '" value="' . esc_attr( '[' . $this->gridster_shortcode . ' id="' . get_the_ID() . '" title="' . get_the_title() . '"]' ) . '">';               
    17551843                            echo get_the_title() . ' ';
    17561844                        echo '</label>';                           
     
    17681856
    17691857                endwhile;
    1770            
     1858               
     1859                $submit_value = ( $selected ) ? __( 'Replace', 'cbach-wp-gridster' ) : __( 'Insert', 'cbach-wp-gridster' );
     1860                echo '<div class="mceActionPanel">'.
     1861                        '<input type="submit" onclick="GridsterModalDialog.insert(GridsterModalDialog.local_ed)" value="' . $submit_value . '" id="insert">'.
     1862                        '<input type="button" onclick="tinyMCEPopup.close();" value="' . __( 'Cancel', 'cbach-wp-gridster' ) . '" id="cancel">'.
     1863                      '</div>';
     1864                                 
    17711865            // no?, then give a hint
    17721866            else:
     
    17771871                    echo '<p>' . sprintf(
    17781872                        __( 'Go on and <a onclick="javascript:window.top.location.href=\'%1$s\'; return false; " href="%1$s" title="Go to the Gridster Edit Screen (will load a new page)">publish at least one</a>.', 'cbach-wp-gridster' ),
    1779                         admin_url( 'edit.php?post_type=' . $this->cpt_gridster )
     1873                        admin_url( 'edit.php?post_type=' . self::$cpt_gridster )
    17801874                        ) . '</p>';           
    17811875                echo '</div>';
    1782                
     1876
     1877                echo '<div class="mceActionPanel">'.
     1878                        '<input type="button" onclick="tinyMCEPopup.close();" value="' . __( 'Cancel', 'cbach-wp-gridster' ) . '" id="cancel">'.
     1879                      '</div>';
    17831880            endif;
    17841881           
     
    18461943            if( $gridster_last->have_posts() ) :
    18471944
    1848                 while ( $gridster_last->have_posts()) : $gridster_last->the_post();
     1945                while ( $gridster_last->have_posts() ) : $gridster_last->the_post();
    18491946
    18501947                    $post_links .= '<li rel="' . get_the_ID() . '">' .
     
    20272124           
    20282125            $plugin_array['gridster_shortcode'] = plugins_url( '/tinymce/tinymce_gridster_shortcode_plugin.'.$this->minified_js_files.'js', __FILE__ );     
    2029             // for debug only
    2030 #            $date = new DateTime();
    2031 #            $plugin_array['gridster_shortcode'] = plugins_url( '/tinymce/tinymce_gridster_shortcode_plugin.js?cache=' . $date->getTimestamp(), __FILE__ );
    20322126            return $plugin_array;
    20332127        }
     
    20492143           
    20502144            $editor_styles['content_css'] .= ',' . plugins_url( '/css/gridster_shortcode_editor-style.'.$this->minified_css_files.'css' , __FILE__ );
    2051             // for debug only
    2052 #            $date = new DateTime();
    2053 #            $editor_styles['content_css'] .= ',' . plugins_url( '/css/gridster_shortcode_editor-style.css?cache=' . $date->getTimestamp() , __FILE__ );
    20542145            return $editor_styles;       
    20552146        }
     
    20642155         *  @param    array   tinymce buttons
    20652156         * 
    2066          *  @return   array   updated tinymce buttons including a seperator and the"Insert Gridster" Button
     2157         *  @return   array   updated tinymce buttons including a seperator and the "Insert Gridster" Button
    20672158         * 
    20682159         */                                       
     
    21062197         * 
    21072198         */                                                                               
    2108         function body_class( $classes ) {
     2199        public function body_class( $classes ) {
    21092200           
    21102201            global $post;
     
    21182209       
    21192210
    2120        
     2211
     2212public function feature_pointers_post( $p ) {
     2213    $p['gridster_tinymce_button'] = array(
     2214        'target' => '#content_gridster_shortcode',
     2215        'options' => array(
     2216            'content' => sprintf( '<h3> %s </h3> <p> %s </p>',
     2217                __( 'Title', 'cbach-wp-gridster' ),
     2218                __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'cbach-wp-gridster' )
     2219            ),
     2220            'position' => array( 'edge' => 'bottom', 'align' => 'middle' )
     2221        )
     2222    );
     2223    return $p;
     2224}
     2225
     2226public function sec_feature_pointers_post( $p ) {
     2227    $p['gridster_menu'] = array(
     2228        'target' => '#menu-posts-gridster',
     2229        'options' => array(
     2230            'content' => sprintf( '<h3> %s </h3> <p> %s </p>',
     2231                __( 'Ceate your first Gridster','cbach-wp-gridster' ),
     2232                __( 'Start with your first Gridster here. Drag & drop your existing content into a customizable grid, resize its elements and re-use it from everywhere by using shortcodes.', 'cbach-wp-gridster' )
     2233            ),
     2234            'position' => array( 'edge' => 'left', 'align' => 'middle' )
     2235        )
     2236    );
     2237    return $p;
     2238}
    21212239/***************************************************************************************************************************************************************************************************
    21222240 *
     
    21452263                'id' => '',
    21462264              'title' => ''
    2147             ), $atts ) );
     2265            ), $atts, $this->gridster_shortcode ) );
    21482266
    21492267            // abort if ID is not present
     
    21612279            if ( ! $layout = $this->post_settings['layout'] )
    21622280                return;
    2163            
     2281
     2282            // unescape Widgets from JSON string
     2283            $widgets = json_decode( $layout );
     2284                       
    21642285            // define this, to load scripts & styles accordingly
    21652286            $this->shortcode_used = true;   
    21662287
    2167             $output  = '<div class="gridster-wrap">'.
     2288            // executes a hook created by add_action
     2289            do_action( 'gridster_before_shortcode_render', $id, $title, $widgets );
     2290           
     2291            $output  = '<div id="' . sanitize_title_with_dashes( strtolower( $title ) ) . '" class="gridster-wrap">'.
    21682292                       '<ul class="gridster">';
    21692293           
    2170             $widgets = json_decode( $layout );
    21712294            foreach ( $widgets as $widget ) {
    2172                 $output .= '<li data-sizex="'.$widget->size_x.'" data-sizey="'.$widget->size_y.'" data-col="'.$widget->col.'" data-row="'.$widget->row.'" class="' . implode( ' ', get_post_class( $widget->classes, $widget->id ) ) . '">';
     2295           
     2296                $classes = ( isset( $widget->classes ) && !empty( $widget->classes ) ) ? $widget->classes : array();
     2297                $output .= '<li data-sizex="'.$widget->size_x.'" data-sizey="'.$widget->size_y.'" data-col="'.$widget->col.'" data-row="'.$widget->row.'" class="' . implode( ' ', get_post_class( $classes, $widget->id ) ) . '">';
    21732298                $output .= html_entity_decode( $widget->html );
    21742299                $output .= '</li>';
     
    21762301                                 
    21772302            $output .= '</ul></div>';
     2303
     2304            //
     2305            $output = apply_filters( 'gridster_shortcode_output', $output );
     2306           
     2307            // executes a hook created by add_action           
     2308            do_action( 'gridster_after_shortcode_render', $id, $title, $widgets );
    21782309       
    21792310            return $output;
     
    22272358
    22282359        /**
    2229          *  set current_screen object
     2360         *  get current_screen object
    22302361         * 
    22312362         *  @since    1.0
     
    23022433                            $no_missing_requirement  = false;
    23032434                $this->error_msg[] = sprintf(
    2304                     __( 'You need to run at least PHP %1$s.' ,'cbach-wp-gridster' )
     2435                    __( 'Your server is running PHP version %1$s but this plugin requires at least PHP %2$s. Please run an upgrade.' ,'cbach-wp-gridster' )
     2436                    ,phpversion()
    23052437                    ,self::PHPNEED
    23062438                );
     
    23212453            settings_errors( );
    23222454   
    2323             if ( isset( $this->error_msg ) && current_user_can('manage_options') ) {
     2455            if ( !empty( $this->error_msg ) && current_user_can('manage_options') ) {
     2456           
     2457                // Suppress "Plugin activated" notice.
     2458                unset( $_GET['activate'] );
     2459               
    23242460                $error_code = sanitize_title_with_dashes( strtolower( self::NAME ) );
    23252461                $errors = new WP_Error( $error_code, $this->error_msg );
     
    23322468                                            '<strong>'.self::NAME.'</strong>: '.
    23332469                                            $error_element.
    2334                                         '</p></div>';
     2470                                        '</p><p>' . sprintf( __( '%s has been deactivated.', 'cbach-wp-gridster' ), '<i>' . self::NAME . '</i> ' ) . '</p></div>';
    23352471                                                    $i++;
    23362472                                }
     
    23382474                    echo $output;
    23392475                            }
     2476           
     2477                // do not activate plugin, because of missing requirements
     2478                deactivate_plugins( plugin_basename( __FILE__ ) );
    23402479            }
    23412480        }
     
    23522491   
    23532492    // On first activation
    2354     register_activation_hook( __FILE__, array( &$cbach_wpGridster, 'activate' ) );
     2493    register_activation_hook( __FILE__, array( 'cbach_wpGridster', 'activate' ) );
    23552494    // On deactivation
    2356     register_activation_hook( __FILE__, array( &$cbach_wpGridster, 'deactivate' ) );
    2357     // On delete
    2358     register_activation_hook( __FILE__, array( &$cbach_wpGridster, 'uninstall' ) );       
     2495    register_deactivation_hook( __FILE__, array( 'cbach_wpGridster', 'deactivate' ) );
     2496    // On deletion
     2497    register_uninstall_hook( __FILE__, array( 'cbach_wpGridster', 'uninstall' ) );       
    23592498}
  • cbach-wp-gridster/trunk/css/gridster_admin.css

    r691719 r701410  
    523523    color: #333333;
    524524    background-color: #F1F1F1;
     525    height: 100%;
    525526}
    526527html#gridster_modal-content,
    527528html#gridster_modal-content body {
     529    min-height: 95%;
     530    position: relative;
    528531}
    529532    #gridster_modal-content h2 {
     
    565568        margin: 3.5em 10%;
    566569    }
    567 
     570    #gridster_modal-content div.mceActionPanel {
     571        bottom: 0;
     572        margin-top: 5px;
     573        position: absolute;
     574        width: 100%;
     575    }   
    568576
    569577
  • cbach-wp-gridster/trunk/css/gridster_admin.min.css

    r691719 r701410  
    1 .gridster li .meta-label span.delete-post,.gridster li .meta-label span.move-handle,#adminmenu #menu-posts-gridster div.wp-menu-image,#icon-edit.icon32-posts-gridster,body.settings_page_gridster_default_options #icon-options-general,.gridster_edit:before,.gridster_edit-area:before,.wp_themeSkin .mceIcon.mce_gridster_shortcode{background-image:url('../images/gridster_sprite.png');background-repeat:no-repeat}#adminmenu #menu-posts-gridster div.wp-menu-image{background-position:7px -42px}#adminmenu #menu-posts-gridster:hover div.wp-menu-image,#adminmenu #menu-posts-gridster.wp-has-current-submenu div.wp-menu-image{background-position:7px -71px}#icon-edit.icon32-posts-gridster,body.settings_page_gridster_default_options #icon-options-general{background-position:0 -114px}.wp_themeSkin .mceIcon.mce_gridster_shortcode{background-position:2px -46px}.wp_themeSkin .mceIcon.mce_gridster_shortcode:hover,.wp_themeSkin .mceIcon.mce_gridster_shortcode:active,.wp_themeSkin .mceIcon.mce_gridster_shortcode:focus{background-position:2px -75px}#gridster_sr_btns{padding:2px;position:absolute;display:none;z-index:155000}#gridster_changeShortcode,#gridster_editShortcode,#gridster_delShortcode{border-color:#999;background-color:#eee;margin:2px;padding:2px;border-width:1px;border-style:solid;-webkit-border-radius:3px;border-radius:3px}#gridster_changeShortcode:hover,#gridster_editShortcode:hover,#gridster_delShortcode:hover{border-color:#555;background-color:#ccc}.gridster_shortcode-in-list-table{min-width:75%;font-family:Consolas,monaco,monospace;border:0}#gridster_workbench_metabox{background:0;border:0}#gridster_workbench_metabox:after{content:'';clear:both;display:block}#gridster_workbench_metabox.one-column #gridster_content_blocks{width:100%}#gridster_workbench_metabox.one-column #gridster_content_blocks>div{width:48.5%;float:left}#gridster_workbench_metabox.one-column #gridster_content_blocks>div:nth-child(even){margin-left:3%}#gridster_workbench_metabox.one-column .gridster_widget-block .inside li span{max-width:74%}#gridster_workbench_metabox.one-column #gridster_workbench_wrap{margin-left:-280px;margin-bottom:20px}#gridster_workbench_metabox.two-columns #gridster_content_blocks{width:280px}#gridster_workbench_metabox.two-columns #gridster_workbench_wrap{margin-left:-280px}#gridster_workbench_metabox.two-columns #gridster_workbench,#gridster_workbench_metabox.two-columns #gridster_workbench_wrap noscript div,#gridster_workbench_metabox.two-columns #gridster_loader{margin-left:300px}#gridster_workbench_metabox>.handlediv,#gridster_workbench_metabox>h3{display:none}#gridster_workbench_metabox>.inside{padding:0;margin:0}#gridster_content_blocks{float:left;position:relative;z-index:1}.gridster_widget-block{margin-bottom:1em;position:relative;border:1px solid #dfdfdf;background-color:whitesmoke;-webkit-border-radius:3px;border-radius:3px;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-box-shadow:inset 0 1px 0 0 #fff;box-shadow:inset 0 1px 0 0 #fff}.js .gridster_widget-block h3{cursor:pointer}#gridster_workbench_metabox:hover .gridster_widget-block .handlediv{background:0}.js #gridster_workbench_metabox .gridster_widget-block:hover .handlediv{background:url('/wp-admin/images/arrows.png') no-repeat scroll 6px 7px transparent}.js #gridster_workbench_metabox .gridster_widget-block.trigger_active .handlediv{background:url('/wp-admin/images/arrows.png') no-repeat scroll 6px -29px transparent}#gridster_workbench_metabox .gridster_widget-block .inside{margin:0;display:none;padding:0}.gridster_widget-block .inside div.error{margin:10px}.gridster_widget-block .inside li{clear:both;margin:0;padding:3px 10px}.gridster_widget-block .inside li:hover{cursor:move;background-color:#fff}.gridster_widget-block .inside li span{display:inline-block;max-width:82%;color:#21759b}.gridster_widget-block .inside li:hover span{color:#d54e21}.gridster_widget-block .inside li abbr{border:0}.gridster_widget-block .inside li.ui-draggable-dragging{z-index:999!important;display:list-item;padding:3px 6px;width:70%;background-color:#ffffe0!important;border:1px dotted #e6db55;-webkit-transform:scale(1.5);-moz-transform:scale(1.5);-ms-transform:scale(1.5);-o-transform:scale(1.5);transform:scale(1.5)}.gridster_widget-block .inside li.ui-draggable-dragging>span{max-width:100%}.gridster_widget-block .inside li.ui-draggable-dragging small.howto{display:none}.gridster_widget-block .inside .widget-block-paginav{height:30px;padding:0 10px;position:relative}.gridster_widget-block .inside .widget-block-paginav .gridster_search-posts-by-type{display:block;left:20%;position:absolute;top:0;width:60%}.gridster_widget-block .spinner{background-position:50%;left:0;position:absolute;top:0;width:100%;height:100%;margin:0;background-color:rgba(255,255,255,.5)}#gridster_workbench_wrap{width:100%;float:right;position:relative}.js #gridster_workbench{overflow-x:hidden;min-height:400px;border:1px dashed #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-background-clip:padding-box;background-clip:padding-box;background:#f8f8f8;-webkit-box-shadow:inset 1px 1px 5px #ccc;-moz-box-shadow:inset 1px 1px 5px #ccc;box-shadow:inset 1px 1px 5px #ccc}#gridster_workbench_wrap noscript div{text-align:center;min-height:200px;padding:100px 0;margin:0;font-size:1.5em;line-height:1.25em}#gridster_load-wrap{height:100%;left:0;position:absolute;top:0;width:100%;display:none;z-index:1000}#gridster_loader{background-color:rgba(228,228,228,0.85);-webkit-border-radius:3px;border-radius:3px;-webkit-background-clip:padding-box;background-clip:padding-box;cursor:not-allowed;padding:0 30px;font-size:1.5em;height:100%;text-align:center;text-shadow:1px 1px 0 #FFF,0 0 35px #000;border:1px dashed #ccc}#gridster_loader.error{background-color:rgba(255,0,0,0.85);text-shadow:1px 1px 0 #000,0 0 35px #f00;border-color:#f00;margin-top:0}#gridster_loader p{padding:180px 0;margin:0}#gridster_loader.error p{color:#fff}#gridster_load-wrap p img{vertical-align:middle;margin-right:5px}.gridster .content_width-border{border-left:2px dotted #ffcfc9;height:100%;position:absolute;top:0;padding-left:2px;cursor:help}.gridster>ul>li.gs_w{margin:0;background-color:#ececec;outline:1px dotted grey;overflow:hidden;z-index:1}.gridster>ul>li.preview-holder{background-color:#fff;border:1px dotted #CCC;opacity:.75}.gridster>ul>li .admin-html-holder{padding:30px 0}#gridster_workbench>ul>li h1,#gridster_workbench>ul>li h2,#gridster_workbench>ul>li h3,#gridster_workbench>ul>li h4,#gridster_workbench>ul>li h5,#gridster_workbench>ul>li h6{margin:0 0 .25em}.gridster li img{border:0 none;left:0;opacity:.25;position:absolute;top:0;height:100%;width:auto}.gridster li.ui-resizable-resizing{z-index:9999999!important}.gridster li.isUpdated{background:#ececec url('/wp-admin/images/wpspin_light.gif') 50% no-repeat}.gridster li.isUpdated>*{opacity:.3}.gridster li .admin-html-holder a{text-decoration:none!important;outline:none!important}.gridster li .meta-label{padding:5px 5px 5px 10px;position:absolute;top:0;right:0;z-index:10;background:whitesmoke;border-bottom-left-radius:6px;-moz-box-shadow:-1px 1px 3px #333;-webkit-box-shadow:-1px 1px 3px #333;box-shadow:-1px 1px 3px #333;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box;display:none}.gridster li:hover .meta-label{display:block}.gridster li .meta-label label,.gridster li .meta-label span.ir{width:18px;display:inline-block;height:18px;margin-right:4px;cursor:pointer;vertical-align:top;opacity:.5;margin-top:2px}.gridster li .meta-label label:hover,.gridster li .meta-label span:hover{opacity:1}.gridster li .meta-label span.move-handle{background-position:0 -1px}.gridster li .meta-label span.delete-post{background-position:0 -22px}.gridster .meta-label select.dynamic-classes-chosen.chzn-done,.gridster .meta-label div.chzn-container{margin-right:5px;font-size:11px;width:auto!important;max-width:85%}.gridster .meta-label .chzn-container-multi .chzn-choices .search-field input{font-size:11px;height:14px;padding:0 5px;xwidth:1px!important}.gridster .meta-label .chzn-container-multi .chzn-choices .search-choice{padding:0 20px 0 5px}.gridster .meta-label .chzn-container-multi .chzn-choices .search-choice .search-choice-close{top:1px}.gridster_edit,.gridster_edit-area{position:relative;padding:2px 20px!important;min-height:1em}.gridster_edit:hover,.gridster_edit-area:hover{background-color:rgba(255,255,224,.7);cursor:text}.gridster_edit.isEdited,.gridster_edit-area.isEdited{background-color:transparent;display:block}.gridster_edit:before,.gridster_edit-area:before{position:absolute;top:2px;left:2px;background-position:0 -164px;content:'';width:16px;height:16px;display:block;visibility:hidden;cursor:pointer}.gridster li:hover .gridster_edit:before,.gridster li:hover .gridster_edit-area:before{visibility:visible}.gridster_edit form input,.gridster_edit-area form textarea{line-height:1em;margin:0;width:100%;padding:2px 1px;min-height:1em;resize:vertical}.gridster .gridster_edit-area form button{margin:5px 5px 0 0}.gridster_edit-area form button.button-primary{height:22px;line-height:21px}#gridster_options_metabox label.short-text-integer{display:block;position:relative;padding-right:23px}#gridster_options_metabox label.short-text-integer:after{position:absolute;top:0;right:0;width:20px;color:#666;content:'px'}#gridster_options_metabox input.short-text-integer{width:50px;text-align:right;position:relative;margin-top:-3px}html#gridster_modal-content{font-family:sans-serif;font-size:12px;line-height:1.4em;color:#333;background-color:#f1f1f1}#gridster_modal-content h2{margin-bottom:.75em}#gridster_modal-content p{margin:.25em 0 .75em;clear:both}#gridster_modal-content label{display:inline-block;font-size:14px;padding-left:30px;padding-right:5%;width:65%;cursor:pointer;float:left;margin-bottom:.5em}#gridster_modal-content label input{margin:2px 0 0 -30px;width:30px}#gridster_modal-content label .alignright{float:right;display:inline-block}#gridster_modal-content a:link,#gridster_modal-content a:visited{color:#21759b}#gridster_modal-content a:hover,#gridster_modal-content a:focus,#gridster_modal-content a:active{color:#d54e21}#gridster_modal-content div.error{margin:3.5em 10%}.ir{display:block;text-indent:-999em;overflow:hidden;background-repeat:no-repeat;text-align:left;direction:ltr}
     1.gridster li .meta-label span.delete-post,.gridster li .meta-label span.move-handle,#adminmenu #menu-posts-gridster div.wp-menu-image,#icon-edit.icon32-posts-gridster,body.settings_page_gridster_default_options #icon-options-general,.gridster_edit:before,.gridster_edit-area:before,.wp_themeSkin .mceIcon.mce_gridster_shortcode{background-image:url('../images/gridster_sprite.png');background-repeat:no-repeat}#adminmenu #menu-posts-gridster div.wp-menu-image{background-position:7px -42px}#adminmenu #menu-posts-gridster:hover div.wp-menu-image,#adminmenu #menu-posts-gridster.wp-has-current-submenu div.wp-menu-image{background-position:7px -71px}#icon-edit.icon32-posts-gridster,body.settings_page_gridster_default_options #icon-options-general{background-position:0 -114px}.wp_themeSkin .mceIcon.mce_gridster_shortcode{background-position:2px -46px}.wp_themeSkin .mceIcon.mce_gridster_shortcode:hover,.wp_themeSkin .mceIcon.mce_gridster_shortcode:active,.wp_themeSkin .mceIcon.mce_gridster_shortcode:focus{background-position:2px -75px}#gridster_sr_btns{padding:2px;position:absolute;display:none;z-index:155000}#gridster_changeShortcode,#gridster_editShortcode,#gridster_delShortcode{border-color:#999;background-color:#eee;margin:2px;padding:2px;border-width:1px;border-style:solid;-webkit-border-radius:3px;border-radius:3px}#gridster_changeShortcode:hover,#gridster_editShortcode:hover,#gridster_delShortcode:hover{border-color:#555;background-color:#ccc}.gridster_shortcode-in-list-table{min-width:75%;font-family:Consolas,monaco,monospace;border:0}#gridster_workbench_metabox{background:0;border:0}#gridster_workbench_metabox:after{content:'';clear:both;display:block}#gridster_workbench_metabox.one-column #gridster_content_blocks{width:100%}#gridster_workbench_metabox.one-column #gridster_content_blocks>div{width:48.5%;float:left}#gridster_workbench_metabox.one-column #gridster_content_blocks>div:nth-child(even){margin-left:3%}#gridster_workbench_metabox.one-column .gridster_widget-block .inside li span{max-width:74%}#gridster_workbench_metabox.one-column #gridster_workbench_wrap{margin-left:-280px;margin-bottom:20px}#gridster_workbench_metabox.two-columns #gridster_content_blocks{width:280px}#gridster_workbench_metabox.two-columns #gridster_workbench_wrap{margin-left:-280px}#gridster_workbench_metabox.two-columns #gridster_workbench,#gridster_workbench_metabox.two-columns #gridster_workbench_wrap noscript div,#gridster_workbench_metabox.two-columns #gridster_loader{margin-left:300px}#gridster_workbench_metabox>.handlediv,#gridster_workbench_metabox>h3{display:none}#gridster_workbench_metabox>.inside{padding:0;margin:0}#gridster_content_blocks{float:left;position:relative;z-index:1}.gridster_widget-block{margin-bottom:1em;position:relative;border:1px solid #dfdfdf;background-color:whitesmoke;-webkit-border-radius:3px;border-radius:3px;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-box-shadow:inset 0 1px 0 0 #fff;box-shadow:inset 0 1px 0 0 #fff}.js .gridster_widget-block h3{cursor:pointer}#gridster_workbench_metabox:hover .gridster_widget-block .handlediv{background:0}.js #gridster_workbench_metabox .gridster_widget-block:hover .handlediv{background:url('/wp-admin/images/arrows.png') no-repeat scroll 6px 7px transparent}.js #gridster_workbench_metabox .gridster_widget-block.trigger_active .handlediv{background:url('/wp-admin/images/arrows.png') no-repeat scroll 6px -29px transparent}#gridster_workbench_metabox .gridster_widget-block .inside{margin:0;display:none;padding:0}.gridster_widget-block .inside div.error{margin:10px}.gridster_widget-block .inside li{clear:both;margin:0;padding:3px 10px}.gridster_widget-block .inside li:hover{cursor:move;background-color:#fff}.gridster_widget-block .inside li span{display:inline-block;max-width:82%;color:#21759b}.gridster_widget-block .inside li:hover span{color:#d54e21}.gridster_widget-block .inside li abbr{border:0}.gridster_widget-block .inside li.ui-draggable-dragging{z-index:999!important;display:list-item;padding:3px 6px;width:70%;background-color:#ffffe0!important;border:1px dotted #e6db55;-webkit-transform:scale(1.5);-moz-transform:scale(1.5);-ms-transform:scale(1.5);-o-transform:scale(1.5);transform:scale(1.5)}.gridster_widget-block .inside li.ui-draggable-dragging>span{max-width:100%}.gridster_widget-block .inside li.ui-draggable-dragging small.howto{display:none}.gridster_widget-block .inside .widget-block-paginav{height:30px;padding:0 10px;position:relative}.gridster_widget-block .inside .widget-block-paginav .gridster_search-posts-by-type{display:block;left:20%;position:absolute;top:0;width:60%}.gridster_widget-block .spinner{background-position:50%;left:0;position:absolute;top:0;width:100%;height:100%;margin:0;background-color:rgba(255,255,255,.5)}#gridster_workbench_wrap{width:100%;float:right;position:relative}.js #gridster_workbench{overflow-x:hidden;min-height:400px;border:1px dashed #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-background-clip:padding-box;background-clip:padding-box;background:#f8f8f8;-webkit-box-shadow:inset 1px 1px 5px #ccc;-moz-box-shadow:inset 1px 1px 5px #ccc;box-shadow:inset 1px 1px 5px #ccc}#gridster_workbench_wrap noscript div{text-align:center;min-height:200px;padding:100px 0;margin:0;font-size:1.5em;line-height:1.25em}#gridster_load-wrap{height:100%;left:0;position:absolute;top:0;width:100%;display:none;z-index:1000}#gridster_loader{background-color:rgba(228,228,228,0.85);-webkit-border-radius:3px;border-radius:3px;-webkit-background-clip:padding-box;background-clip:padding-box;cursor:not-allowed;padding:0 30px;font-size:1.5em;height:100%;text-align:center;text-shadow:1px 1px 0 #FFF,0 0 35px #000;border:1px dashed #ccc}#gridster_loader.error{background-color:rgba(255,0,0,0.85);text-shadow:1px 1px 0 #000,0 0 35px #f00;border-color:#f00;margin-top:0}#gridster_loader p{padding:180px 0;margin:0}#gridster_loader.error p{color:#fff}#gridster_load-wrap p img{vertical-align:middle;margin-right:5px}.gridster .content_width-border{border-left:2px dotted #ffcfc9;height:100%;position:absolute;top:0;padding-left:2px;cursor:help}.gridster>ul>li.gs_w{margin:0;background-color:#ececec;outline:1px dotted grey;overflow:hidden;z-index:1}.gridster>ul>li.preview-holder{background-color:#fff;border:1px dotted #CCC;opacity:.75}.gridster>ul>li .admin-html-holder{padding:30px 0}#gridster_workbench>ul>li h1,#gridster_workbench>ul>li h2,#gridster_workbench>ul>li h3,#gridster_workbench>ul>li h4,#gridster_workbench>ul>li h5,#gridster_workbench>ul>li h6{margin:0 0 .25em}.gridster li img{border:0 none;left:0;opacity:.25;position:absolute;top:0;height:100%;width:auto}.gridster li.ui-resizable-resizing{z-index:9999999!important}.gridster li.isUpdated{background:#ececec url('/wp-admin/images/wpspin_light.gif') 50% no-repeat}.gridster li.isUpdated>*{opacity:.3}.gridster li .admin-html-holder a{text-decoration:none!important;outline:none!important}.gridster li .meta-label{padding:5px 5px 5px 10px;position:absolute;top:0;right:0;z-index:10;background:whitesmoke;border-bottom-left-radius:6px;-moz-box-shadow:-1px 1px 3px #333;-webkit-box-shadow:-1px 1px 3px #333;box-shadow:-1px 1px 3px #333;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box;display:none}.gridster li:hover .meta-label{display:block}.gridster li .meta-label label,.gridster li .meta-label span.ir{width:18px;display:inline-block;height:18px;margin-right:4px;cursor:pointer;vertical-align:top;opacity:.5;margin-top:2px}.gridster li .meta-label label:hover,.gridster li .meta-label span:hover{opacity:1}.gridster li .meta-label span.move-handle{background-position:0 -1px}.gridster li .meta-label span.delete-post{background-position:0 -22px}.gridster .meta-label select.dynamic-classes-chosen.chzn-done,.gridster .meta-label div.chzn-container{margin-right:5px;font-size:11px;width:auto!important;max-width:85%}.gridster .meta-label .chzn-container-multi .chzn-choices .search-field input{font-size:11px;height:14px;padding:0 5px;xwidth:1px!important}.gridster .meta-label .chzn-container-multi .chzn-choices .search-choice{padding:0 20px 0 5px}.gridster .meta-label .chzn-container-multi .chzn-choices .search-choice .search-choice-close{top:1px}.gridster_edit,.gridster_edit-area{position:relative;padding:2px 20px!important;min-height:1em}.gridster_edit:hover,.gridster_edit-area:hover{background-color:rgba(255,255,224,.7);cursor:text}.gridster_edit.isEdited,.gridster_edit-area.isEdited{background-color:transparent;display:block}.gridster_edit:before,.gridster_edit-area:before{position:absolute;top:2px;left:2px;background-position:0 -164px;content:'';width:16px;height:16px;display:block;visibility:hidden;cursor:pointer}.gridster li:hover .gridster_edit:before,.gridster li:hover .gridster_edit-area:before{visibility:visible}.gridster_edit form input,.gridster_edit-area form textarea{line-height:1em;margin:0;width:100%;padding:2px 1px;min-height:1em;resize:vertical}.gridster .gridster_edit-area form button{margin:5px 5px 0 0}.gridster_edit-area form button.button-primary{height:22px;line-height:21px}#gridster_options_metabox label.short-text-integer{display:block;position:relative;padding-right:23px}#gridster_options_metabox label.short-text-integer:after{position:absolute;top:0;right:0;width:20px;color:#666;content:'px'}#gridster_options_metabox input.short-text-integer{width:50px;text-align:right;position:relative;margin-top:-3px}html#gridster_modal-content{font-family:sans-serif;font-size:12px;line-height:1.4em;color:#333;background-color:#f1f1f1;height:100%}html#gridster_modal-content,html#gridster_modal-content body{min-height:95%;position:relative}#gridster_modal-content h2{margin-bottom:.75em}#gridster_modal-content p{margin:.25em 0 .75em;clear:both}#gridster_modal-content label{display:inline-block;font-size:14px;padding-left:30px;padding-right:5%;width:65%;cursor:pointer;float:left;margin-bottom:.5em}#gridster_modal-content label input{margin:2px 0 0 -30px;width:30px}#gridster_modal-content label .alignright{float:right;display:inline-block}#gridster_modal-content a:link,#gridster_modal-content a:visited{color:#21759b}#gridster_modal-content a:hover,#gridster_modal-content a:focus,#gridster_modal-content a:active{color:#d54e21}#gridster_modal-content div.error{margin:3.5em 10%}#gridster_modal-content div.mceActionPanel{bottom:0;margin-top:5px;position:absolute;width:100%}.ir{display:block;text-indent:-999em;overflow:hidden;background-repeat:no-repeat;text-align:left;direction:ltr}
  • cbach-wp-gridster/trunk/languages/cbach-wp-gridster-de_DE.po

    r698498 r701410  
    22msgstr ""
    33"Project-Id-Version: WP Gridster\n"
    4 "POT-Creation-Date: 2013-04-16 13:53+0100\n"
    5 "PO-Revision-Date: 2013-04-16 13:53+0100\n"
     4"POT-Creation-Date: 2013-04-19 13:17+0100\n"
     5"PO-Revision-Date: 2013-04-19 13:20+0100\n"
    66"Last-Translator: Carsten Bach <mail@carsten-bach.de>\n"
    77"Language-Team: Carsten Bach <mail@carsten-bach.de>\n"
     
    1919"X-Poedit-SearchPath-1: ./..\n"
    2020
    21 #: ../cbach-wp-gridster.php:475
     21#: ../cbach-wp-gridster.php:489
    2222msgid "Move"
    2323msgstr "Verschieben"
    2424
    25 #: ../cbach-wp-gridster.php:476
     25#: ../cbach-wp-gridster.php:490
    2626msgid "Delete"
    2727msgstr "Löschen"
    2828
    29 #: ../cbach-wp-gridster.php:477
     29#: ../cbach-wp-gridster.php:491
    3030msgid "There was a problem loading your content, please try again."
    3131msgstr "Es gab ein Problem beim Laden des Inhalts, bitte versuch's nochmal."
    3232
    33 #: ../cbach-wp-gridster.php:478 ../cbach-wp-gridster.php:1870
     33#: ../cbach-wp-gridster.php:492 ../cbach-wp-gridster.php:1893
    3434msgid "Nothing found."
    3535msgstr "Nichts gefunden."
    3636
    37 #: ../cbach-wp-gridster.php:479
     37#: ../cbach-wp-gridster.php:493
    3838msgid ""
    3939"Maximum content width defined in your current theme by the variable "
     
    4343"Deinem Theme definiert wurde"
    4444
    45 #: ../cbach-wp-gridster.php:481
     45#: ../cbach-wp-gridster.php:495
    4646msgid "Click to edit"
    4747msgstr "zum Bearbeiten klicken"
    4848
    49 #: ../cbach-wp-gridster.php:482
     49#: ../cbach-wp-gridster.php:496 ../cbach-wp-gridster.php:1788
     50#: ../cbach-wp-gridster.php:1804
    5051msgid "Cancel"
    5152msgstr "Abbrechen"
    5253
    53 #: ../cbach-wp-gridster.php:483
     54#: ../cbach-wp-gridster.php:497
    5455msgid "OK"
    5556msgstr "OK"
    5657
    57 #: ../cbach-wp-gridster.php:486
     58#: ../cbach-wp-gridster.php:500
    5859msgid "Choose styles"
    5960msgstr "Stil auswählen"
    6061
    61 #: ../cbach-wp-gridster.php:487
     62#: ../cbach-wp-gridster.php:501
    6263msgid "No results matched"
    6364msgstr "Keine Übereinstimmung"
    6465
    65 #: ../cbach-wp-gridster.php:637 ../cbach-wp-gridster.php:638
    66 #: ../cbach-wp-gridster.php:860
     66#: ../cbach-wp-gridster.php:651 ../cbach-wp-gridster.php:652
     67#: ../cbach-wp-gridster.php:874
    6768msgid "Gridster"
    6869msgstr "Gridster"
    6970
    70 #: ../cbach-wp-gridster.php:639
     71#: ../cbach-wp-gridster.php:653
    7172msgctxt "menu name"
    7273msgid "Gridster"
    7374msgstr "Gridster"
    7475
    75 #: ../cbach-wp-gridster.php:640
     76#: ../cbach-wp-gridster.php:654
    7677msgid "All Gridster"
    7778msgstr "Alle Gridster"
    7879
    79 #: ../cbach-wp-gridster.php:641
     80#: ../cbach-wp-gridster.php:655
    8081msgctxt "add new gridster"
    8182msgid "Add New"
    8283msgstr "Hinzufügen"
    8384
    84 #: ../cbach-wp-gridster.php:642
     85#: ../cbach-wp-gridster.php:656
    8586msgid "Add New Gridster"
    8687msgstr "Neuen Gridster anlegen"
    8788
    88 #: ../cbach-wp-gridster.php:643
     89#: ../cbach-wp-gridster.php:657
    8990msgid "Edit Gridster"
    9091msgstr "Gridster bearbeiten"
    9192
    92 #: ../cbach-wp-gridster.php:644
     93#: ../cbach-wp-gridster.php:658
    9394msgid "New Gridster"
    9495msgstr "Neuer Gridster"
    9596
    96 #: ../cbach-wp-gridster.php:645
     97#: ../cbach-wp-gridster.php:659
    9798msgid "View Gridster"
    9899msgstr "Gridster anzeigen"
    99100
    100 #: ../cbach-wp-gridster.php:646
     101#: ../cbach-wp-gridster.php:660
    101102msgid "Search Gridster"
    102103msgstr "Gridster durchsuchen"
    103104
    104 #: ../cbach-wp-gridster.php:647
     105#: ../cbach-wp-gridster.php:661
    105106msgid "No Gridster found"
    106107msgstr "Keine Gridster gefunden"
    107108
    108 #: ../cbach-wp-gridster.php:648
     109#: ../cbach-wp-gridster.php:662
    109110msgid "No Gridster found in Trash"
    110111msgstr "Keine Gridster im Papierkorb"
    111112
    112 #: ../cbach-wp-gridster.php:649
     113#: ../cbach-wp-gridster.php:663
    113114msgid "Parent Gridster:"
    114115msgstr "Übergeordnete Gridster:"
    115116
    116 #: ../cbach-wp-gridster.php:655
     117#: ../cbach-wp-gridster.php:669
    117118msgid "Content arranged within a grid, powered by gridster.js"
    118119msgstr "Inhalte ausgerichtet in einem Raster, angetrieben von gridster.js"
    119120
    120 #: ../cbach-wp-gridster.php:705 ../cbach-wp-gridster.php:708
     121#: ../cbach-wp-gridster.php:719 ../cbach-wp-gridster.php:722
    121122msgctxt "post_updated message"
    122123msgid "Gridster updated."
    123124msgstr "Gridster aktualisiert."
    124125
    125 #: ../cbach-wp-gridster.php:706
     126#: ../cbach-wp-gridster.php:720
    126127msgid "Custom field updated."
    127128msgstr "Benutzerdefiniertes Feld aktualisiert."
    128129
    129 #: ../cbach-wp-gridster.php:707
     130#: ../cbach-wp-gridster.php:721
    130131msgid "Custom field deleted."
    131132msgstr "Benutzerdefiniertes Feld gelöscht."
    132133
    133 #: ../cbach-wp-gridster.php:709
     134#: ../cbach-wp-gridster.php:723
    134135#, php-format
    135136msgid "Gridster restored to revision from %s"
    136137msgstr "Gridster aus Überarbeitung vom %s wiederhergestellt"
    137138
    138 #: ../cbach-wp-gridster.php:710
     139#: ../cbach-wp-gridster.php:724
    139140msgctxt "post_updated message"
    140141msgid "Gridster published."
    141142msgstr "Gridster veröffentlicht."
    142143
    143 #: ../cbach-wp-gridster.php:711
     144#: ../cbach-wp-gridster.php:725
    144145msgid "Gridster saved."
    145146msgstr "Gridster gespeichert."
    146147
    147 #: ../cbach-wp-gridster.php:712
     148#: ../cbach-wp-gridster.php:726
    148149msgctxt "post_updated message"
    149150msgid "Gridster submitted."
    150151msgstr "Gridster übertragen."
    151152
    152 #: ../cbach-wp-gridster.php:713
     153#: ../cbach-wp-gridster.php:727
    153154#, php-format
    154155msgctxt "post_updated message"
     
    156157msgstr "Gridster Veröffentlichung geplant für: <strong>%1$s</strong>."
    157158
    158 #: ../cbach-wp-gridster.php:713
     159#: ../cbach-wp-gridster.php:727
    159160msgid "M j, Y @ G:i"
    160161msgstr "d. F Y H:i"
    161162
    162 #: ../cbach-wp-gridster.php:714
     163#: ../cbach-wp-gridster.php:728
    163164msgctxt "post_updated message"
    164165msgid "Gridster draft updated."
    165166msgstr "Gridster Entwurf aktualisiert."
    166167
    167 #: ../cbach-wp-gridster.php:763 ../cbach-wp-gridster.php:842
     168#: ../cbach-wp-gridster.php:777 ../cbach-wp-gridster.php:856
    168169msgid "Shortcode"
    169170msgstr "Shortcode"
    170171
    171 #: ../cbach-wp-gridster.php:872
     172#: ../cbach-wp-gridster.php:886
    172173msgid "Gridster - Layout options"
    173174msgstr "Gridster - Layout-Einstellungen"
    174175
    175 #: ../cbach-wp-gridster.php:949
     176#: ../cbach-wp-gridster.php:963
    176177msgid "Your content is being prepared as a gridster widget."
    177178msgstr "Dein Inhalt wird als Gridster Widget vorbereitet."
    178179
    179 #: ../cbach-wp-gridster.php:956
     180#: ../cbach-wp-gridster.php:970
    180181#, php-format
    181182msgid ""
     
    189190"a>!"
    190191
    191 #: ../cbach-wp-gridster.php:971
     192#: ../cbach-wp-gridster.php:985
    192193msgid "Click to toggle"
    193194msgstr "zum Umschalten klicken"
    194195
    195 #: ../cbach-wp-gridster.php:999
     196#: ../cbach-wp-gridster.php:1013
    196197msgid "Override the default options for this gridster."
    197198msgstr "Überschreibe die Standardeinstellungen für diesen Gridster."
    198199
    199 #: ../cbach-wp-gridster.php:1013 ../cbach-wp-gridster.php:1308
    200 #: ../cbach-wp-gridster.php:1407
     200#: ../cbach-wp-gridster.php:1027 ../cbach-wp-gridster.php:1322
     201#: ../cbach-wp-gridster.php:1421
    201202msgid "horizontal margin"
    202203msgstr "horizontaler Außenabstand"
    203204
    204 #: ../cbach-wp-gridster.php:1016 ../cbach-wp-gridster.php:1321
    205 #: ../cbach-wp-gridster.php:1418
     205#: ../cbach-wp-gridster.php:1030 ../cbach-wp-gridster.php:1335
     206#: ../cbach-wp-gridster.php:1432
    206207msgid "vertical margin"
    207208msgstr "vertikaler Außenabstand"
    208209
    209 #: ../cbach-wp-gridster.php:1019 ../cbach-wp-gridster.php:1334
    210 #: ../cbach-wp-gridster.php:1429
     210#: ../cbach-wp-gridster.php:1033 ../cbach-wp-gridster.php:1348
     211#: ../cbach-wp-gridster.php:1443
    211212msgid "widgets base width"
    212213msgstr "Widget-Basis-Breite"
    213214
    214 #: ../cbach-wp-gridster.php:1022 ../cbach-wp-gridster.php:1347
    215 #: ../cbach-wp-gridster.php:1440
     215#: ../cbach-wp-gridster.php:1036 ../cbach-wp-gridster.php:1361
     216#: ../cbach-wp-gridster.php:1454
    216217msgid "widgets base height"
    217218msgstr "Widget-Basis-Höhe"
    218219
    219 #: ../cbach-wp-gridster.php:1199
     220#: ../cbach-wp-gridster.php:1213
    220221msgid "Gridster Default Options"
    221222msgstr "Gridster Standard-Einstellungen"
    222223
    223 #: ../cbach-wp-gridster.php:1200
     224#: ../cbach-wp-gridster.php:1214
    224225msgctxt "title of options page"
    225226msgid "Gridster"
    226227msgstr "Gridster"
    227228
    228 #: ../cbach-wp-gridster.php:1275
     229#: ../cbach-wp-gridster.php:1289
    229230msgid "Default Options for all gridsters"
    230231msgstr "Standard-Einstellungen für alle Gridster"
    231232
    232 #: ../cbach-wp-gridster.php:1287
     233#: ../cbach-wp-gridster.php:1301
    233234msgid "Default Options for all Gridsters"
    234235msgstr "Standard-Einstellungen für alle Gridster"
    235236
    236 #: ../cbach-wp-gridster.php:1295 ../cbach-wp-gridster.php:1396
     237#: ../cbach-wp-gridster.php:1309 ../cbach-wp-gridster.php:1410
    237238msgid "Minimum number columns to create"
    238239msgstr "Minimal-Anzahl der zu erzeugenden Spalten"
    239240
    240 #: ../cbach-wp-gridster.php:1368
     241#: ../cbach-wp-gridster.php:1382
    241242msgid "Enter the default layout-settings, used by every gridster."
    242243msgstr ""
     
    244245"werden."
    245246
    246 #: ../cbach-wp-gridster.php:1369
     247#: ../cbach-wp-gridster.php:1383
    247248msgid "You can alter theese settings for every gridster on its edit-page."
    248249msgstr "Du kannst diese Einstellungen für jeden Gridster einzeln abändern."
    249250
    250 #: ../cbach-wp-gridster.php:1396 ../cbach-wp-gridster.php:1407
    251 #: ../cbach-wp-gridster.php:1418 ../cbach-wp-gridster.php:1429
    252 #: ../cbach-wp-gridster.php:1440
     251#: ../cbach-wp-gridster.php:1410 ../cbach-wp-gridster.php:1421
     252#: ../cbach-wp-gridster.php:1432 ../cbach-wp-gridster.php:1443
     253#: ../cbach-wp-gridster.php:1454
    253254msgid "You have entered an invalid value. Value must be of type: integer."
    254255msgstr ""
     
    256257"Ganzzahlen sein."
    257258
    258 #: ../cbach-wp-gridster.php:1749
     259#: ../cbach-wp-gridster.php:1763
    259260msgid "Choose your Gridster to embed here."
    260261msgstr "Wähle den Gridster der hier angezeigt wird."
    261262
    262 #: ../cbach-wp-gridster.php:1759 ../cbach-wp-gridster.php:1854
     263#: ../cbach-wp-gridster.php:1773 ../cbach-wp-gridster.php:1877
    263264#, php-format
    264265msgid "Last edited by %1$s on %2$s at %3$s"
    265266msgstr "Zuletzt bearbeitet von %1$s am %2$s um %3$s Uhr"
    266267
    267 #: ../cbach-wp-gridster.php:1775
     268#: ../cbach-wp-gridster.php:1785
     269msgid "Replace"
     270msgstr "Ersetzen"
     271
     272#: ../cbach-wp-gridster.php:1785
     273msgid "Insert"
     274msgstr "Einfügen"
     275
     276#: ../cbach-wp-gridster.php:1795
    268277msgid "No Gridster here, yet."
    269278msgstr "Keine Gridster gefunden."
    270279
    271 #: ../cbach-wp-gridster.php:1776
     280#: ../cbach-wp-gridster.php:1796
    272281msgid "You do not have published any gridster."
    273282msgstr "Du hast bisher noch keine Gridster veröffentlicht."
    274283
    275 #: ../cbach-wp-gridster.php:1778
     284#: ../cbach-wp-gridster.php:1798
    276285#, php-format
    277286msgid ""
     
    284293"(wird eine neue Seite laden)\">wenigstens einen veröffentlichen</a>."
    285294
    286 #: ../cbach-wp-gridster.php:1875
     295#: ../cbach-wp-gridster.php:1898
    287296#, php-format
    288297msgid "Get previous %s"
    289298msgstr "Vorherige %s"
    290299
    291 #: ../cbach-wp-gridster.php:1876
     300#: ../cbach-wp-gridster.php:1899
    292301msgid "Search"
    293302msgstr "Suche"
    294303
    295 #: ../cbach-wp-gridster.php:1876
     304#: ../cbach-wp-gridster.php:1899
    296305msgid "Type searchterm  & wait 2 seconds"
    297306msgstr "Suchbegriff eingeben & 2 Sekunden warten"
    298307
    299 #: ../cbach-wp-gridster.php:1877
     308#: ../cbach-wp-gridster.php:1900
    300309#, php-format
    301310msgid "Get next %s"
    302311msgstr "Nächste %s"
    303312
    304 #: ../cbach-wp-gridster.php:1955
     313#: ../cbach-wp-gridster.php:1978
    305314msgid "Settings"
    306315msgstr "Einstellungen"
    307316
    308 #: ../cbach-wp-gridster.php:1979
     317#: ../cbach-wp-gridster.php:2002
    309318msgid "Report issues"
    310319msgstr "Fehler melden"
    311320
    312 #: ../cbach-wp-gridster.php:1980
     321#: ../cbach-wp-gridster.php:2003
    313322msgid "Support"
    314323msgstr "Support"
    315324
    316 #: ../cbach-wp-gridster.php:2295
     325#: ../cbach-wp-gridster.php:2325
    317326#, php-format
    318327msgid "Please %1$s your wordpress to at least version %2$s."
    319 msgstr "Bitte %1$s WordPress auf mindestens Version %2$s."
    320 
    321 #: ../cbach-wp-gridster.php:2296
     328msgstr "Bitte %1$s WordPress mindestens auf Version %2$s."
     329
     330#: ../cbach-wp-gridster.php:2326
    322331msgid "upgrade"
    323332msgstr "aktualisiere"
    324333
    325 #: ../cbach-wp-gridster.php:2304
    326 #, php-format
    327 msgid "You need to run at least PHP %1$s."
    328 msgstr "Du benötigste mindestens PHP %1$s."
     334#: ../cbach-wp-gridster.php:2334
     335#, php-format
     336msgid ""
     337"Your server is running PHP version %1$s but this plugin requires at least "
     338"PHP %2$s. Please run an upgrade."
     339msgstr ""
     340"Auf Deinem Server läuft PHP Version %1$s, aber dieses Plugin benötigt "
     341"mindestens PHP %2$s. Bitte aktualisiere es."
     342
     343#: ../cbach-wp-gridster.php:2369
     344#, php-format
     345msgid "%s has been deactivated."
     346msgstr "%s wurde deaktiviert."
    329347
    330348#: ../tinymce/i18n/mce_locale.php:12
     
    333351
    334352#: ../tinymce/i18n/mce_locale.php:13
    335 msgid "Choose from your avaiable Gridsters"
    336 msgstr "Wähle aus deinen verfügbaren Gridster"
     353msgid "Choose your Gridster"
     354msgstr "Wähle den Gridster"
    337355
    338356#: ../tinymce/i18n/mce_locale.php:14
    339 msgid "Change which Gridster to show here."
     357msgid "Change the Gridster, to show here."
    340358msgstr "Ändere welcher Gridster hier angezeigt wird."
    341359
     
    348366msgstr "Gridster-Shortcode löschen"
    349367
     368#~ msgid "Choose from your avaiable Gridsters"
     369#~ msgstr "Wähle aus deinen verfügbaren Gridster"
     370
    350371#~ msgid "Layout your content here"
    351372#~ msgstr "Gestalte Deinen Inhalt hier"
  • cbach-wp-gridster/trunk/readme.txt

    r698498 r701410  
    66Author:             Carsten Bach
    77Requires at least:  3.3
    8 Tested up to:           3.5.1
    9 Stable tag:                 1.3.2
     8Tested up to:           3.6
     9Stable tag:                 1.4
    1010License:            GPLv2 or later
    1111License URI:        http://www.gnu.org/licenses/gpl-2.0.html
     
    146146== Changelog ==
    147147
     148= 1.4 =
     149* Tested compatibility with WP 3.6 - everything fine ;)
     150* Added support for new [`shortcode_atts_{shortcode}`-filter](http://markjaquith.wordpress.com/2013/04/04/wordpress-36-shortcode-attribute-filter/), introduced in WP 3.6; use it like this `add_filter( 'shortcode_atts_gridster', 'YOUR-FILTER-FUNCTION-NAME' );`
     151* Introduced a new filter to modify the HTML generated by the shortcode, use `add_filter( 'gridster_shortcode_output', 'YOUR-FILTER-FUNCTION-NAME' )`
     152* Added two actionhooks, one before and one after the rendering of the shortcode output
     153* Fix for Activation-, Deactivation and Uninstall-Hooks
     154* Added a CSS id of the gridster-title to the shortcode output
     155* Fixed the "Edit this Gridster"-Link located upon the shortcode replacement, to work on post-new.php
     156* Removed PHP Notice `Undefined Property $widget->classes on line 2191`
     157* "Insert Gridster" modal now recognizes to insert a new shortcode or to replace an existing one
     158* updated german translation   
     159
    148160= 1.3.2 =
    149161* Fix pagination of posts (of all types) inside widget-blocks
     
    203215= Filters and Hooks =
    204216 
    205 You can adjust the behavior of this plugin by using following filters:
     217You can adjust the behavior of this plugin by using following **filters**:
    206218
    207219* Change the `get_post_types()` call for usable post_types by filtering `gridster_get_post_types_as_widget_blocks_args`
     
    213225* Change the capability, which allows users to overwrite the default settings for each gridster individually by filtering `gridster_overwrite_post_options_with_cap`. By default "edit_theme_options" is used.
    214226
     227Or you can hook in your own functionality by using the following **action hooks**:
     228
     229* Do something before and/or after the shortcode ouput by using `gridster_before_shortcode_render` or `gridster_after_shortcode_render`. Both action hooks come with three additional arguments you are able to work with, the `$post_id`, the `$title` and the `$widgets_html` of the current gridster-post. 
    215230
    216231Have a look inside the plugin file to see, what variables you are able to use within your filter hooks.
  • cbach-wp-gridster/trunk/tinymce/i18n/mce_locale.php

    r690718 r701410  
    1111        {
    1212            buttonTitle : "' . esc_js( __( 'Insert Gridster', 'cbach-wp-gridster' ) ) . '",
    13             popupTitle  : "' . esc_js( __( 'Choose from your avaiable Gridsters', 'cbach-wp-gridster' ) ) . '",
    14             changeButton: "' . esc_js( __( 'Change which Gridster to show here.', 'cbach-wp-gridster' ) ) . '",     
     13            popupTitle  : "' . esc_js( __( 'Choose your Gridster', 'cbach-wp-gridster' ) ) . '",
     14            changeButton: "' . esc_js( __( 'Change the Gridster, to show here.', 'cbach-wp-gridster' ) ) . '",     
    1515            editButton  : "' . esc_js( __( 'Edit this Gridster (will load a new page)', 'cbach-wp-gridster' ) ) . '",
    1616            dellButton  : "' . esc_js( __( 'Delete Gridster-Shortcode', 'cbach-wp-gridster' ) ) . '",
  • cbach-wp-gridster/trunk/tinymce/tinymce_gridster_shortcode_plugin.js

    r690718 r701410  
    2929           
    3030                // Register commands for shortcode change modal
    31                 ed.addCommand('ajax_gridster_shortcode_update_modal', function() {
     31                ed.addCommand('ajax_gridster_shortcode_update_modal', function( u, v ) {
    3232                        ed.windowManager.open({
    33                     file: ajaxurl + '?action=ajax_gridster_shortcode_update_modal&nonce=' + ed.getLang('gridster_shortcode.AjaxNonce'),
     33                    file: ajaxurl + '?action=ajax_gridster_shortcode_update_modal&nonce=' + ed.getLang('gridster_shortcode.AjaxNonce') + '&selected=' + v,
    3434                            width : 300,
    3535                            height : 240,
     
    4444                ed.addCommand('gridster_edit_current_gridster', function() {
    4545                        var ed = tinymce.activeEditor, el = ed.selection.getNode();
    46                 // find attr inside encoded shortcode of title-Attribute
    47                     function getAttr(s, n) {
    48                             n = new RegExp(n + '=\&quot\;([0-9]+)\&quot\;').exec(s);
    49                     return n ? tinymce.DOM.decode(n[1]) : '';
    50                     };
    5146                // is this a gridster shortcode ?
    5247                        if ( el.nodeName == 'IMG' && ed.dom.hasClass(el, 'gridsterShortcodeGUI') ) {
    53                     // clone image element
    54                     var clone = el.cloneNode(true);
    55                     // create temporary parent element
    56                     var tmp = document.createElement("div");
    57                     // append clone to parent
    58                     tmp.appendChild(clone);
    59                     // get string representation of element
    60                     var stringed_el = tmp.innerHTML;
    61                     // get ID of gridster post from shortcode Attribute
    62                     var gridster_id = getAttr(stringed_el, 'id');
     48                    // extract gridster post_ID from shortcode attribute
     49                    var gridster_id = ed.plugins.gridster_shortcode._get_gridster_id( el );
    6350                    // get base URL
    64                     var path_array = window.location.href.split( 'post.php' );
     51                    var path_array = ajaxurl.split( 'admin-ajax.php' );
    6552                    var admin_url = path_array[0];
    6653                    // create edit url with our gridster id as parameter
     
    142129                });
    143130            },
     131       
     132        //
     133        _get_gridster_id : function( el ) {
     134           
     135            // find attr inside encoded shortcode of title-Attribute
     136                function getAttr(s, n) {
     137                        n = new RegExp(n + '=\&quot\;([0-9]+)\&quot\;').exec(s);
     138                return n ? tinymce.DOM.decode(n[1]) : '';
     139                };
     140
     141            // clone image element
     142            var clone = el.cloneNode(true);
     143            // create temporary parent element
     144            var tmp = document.createElement("div");
     145            // append clone to parent
     146            tmp.appendChild(clone);
     147            // get string representation of element
     148            var stringed_el = tmp.innerHTML;
     149            // get ID of gridster post from shortcode Attribute
     150            var gridster_id = getAttr(stringed_el, 'id');
     151           
     152            return gridster_id;
     153        },
    144154   
    145155        // Add Edit-Handler Buttons to DOM and add event-handlers
     
    166176                        title : ed.getLang('gridster_shortcode.changeButton')
    167177                });
    168                 tinymce.dom.Event.add(changeButton, 'mousedown', function(e) {
    169                         var ed = tinymce.activeEditor;
    170                         ed.execCommand("ajax_gridster_shortcode_update_modal");
    171                         ed.plugins.gridster_shortcode._hideButtons();
     178                tinymce.dom.Event.add( changeButton, 'mousedown', function(e) {
     179                        var ed = tinymce.activeEditor, el = ed.selection.getNode();
     180                // is this a gridster shortcode ?
     181                        if ( el.nodeName == 'IMG' && ed.dom.hasClass(el, 'gridsterShortcodeGUI') ) {
     182                    // extract gridster post_ID from shortcode attribute
     183                    var gridster_id = ed.plugins.gridster_shortcode._get_gridster_id( el );
     184                            // open Modal to pick gridster shortcode from list
     185                    ed.execCommand("ajax_gridster_shortcode_update_modal", false, gridster_id );
     186                            // hide Edit-handler-Buttons
     187                    ed.plugins.gridster_shortcode._hideButtons();                   
     188                        }
    172189                });
    173190     
     
    180197                        title : ed.getLang('gridster_shortcode.editButton')
    181198                });
    182                 tinymce.dom.Event.add(editButton, 'mousedown', function(e) {
     199                tinymce.dom.Event.add( editButton, 'mousedown', function(e) {
    183200                        var ed = tinymce.activeEditor;
    184201                        ed.execCommand("gridster_edit_current_gridster");
     
    195212                        title : ed.getLang('gridster_shortcode.dellButton')
    196213                });
    197                 tinymce.dom.Event.add(dellButton, 'mousedown', function(e) {
     214                tinymce.dom.Event.add( dellButton, 'mousedown', function(e) {
    198215                        var ed = tinymce.activeEditor, el = ed.selection.getNode();
    199216                // is this a gridster shortcode ?
  • cbach-wp-gridster/trunk/tinymce/tinymce_gridster_shortcode_plugin.min.js

    r691010 r701410  
    1 (function(){tinymce.create("tinymce.plugins.gridster_shortcode",{init:function(a,b){var c=this;c.url=b;c._createButtons();a.onBeforeSetContent.add(function(d,e){e.content=c._do_gridster_shortcode(e.content)});a.onExecCommand.add(function(d,e){if(e==="mceInsertContent"){tinyMCE.activeEditor.setContent(c._do_gridster_shortcode(tinyMCE.activeEditor.getContent()))}});a.onPostProcess.add(function(d,e){if(e.get){e.content=c._get_gridster_shortcode(e.content)}});a.addCommand("ajax_gridster_shortcode_update_modal",function(){a.windowManager.open({file:ajaxurl+"?action=ajax_gridster_shortcode_update_modal&nonce="+a.getLang("gridster_shortcode.AjaxNonce"),width:300,height:240,title:a.getLang("gridster_shortcode.popupTitle"),inline:1},{plugin_url:b})});a.addCommand("gridster_edit_current_gridster",function(){var j=tinymce.activeEditor,d=j.selection.getNode();function k(o,p){p=new RegExp(p+"=&quot;([0-9]+)&quot;").exec(o);return p?tinymce.DOM.decode(p[1]):""}if(d.nodeName=="IMG"&&j.dom.hasClass(d,"gridsterShortcodeGUI")){var m=d.cloneNode(true);var h=document.createElement("div");h.appendChild(m);var f=h.innerHTML;var l=k(f,"id");var g=window.location.href.split("post.php");var e=g[0];var i="post.php?post="+l+"&action=edit";window.top.location.href=e+i}});a.addButton("gridster_shortcode",{title:a.getLang("gridster_shortcode.buttonTitle"),cmd:"ajax_gridster_shortcode_update_modal"});a.onMouseDown.add(function(d,f){if(f.target.nodeName=="IMG"&&d.dom.hasClass(f.target,"gridsterShortcodeGUI")){d.plugins.gridster_shortcode._hideButtons();d.plugins.wordpress._showButtons(f.target,"gridster_sr_btns")}});a.onInit.add(function(d){tinymce.dom.Event.add(d.getWin(),"scroll",function(f){d.plugins.gridster_shortcode._hideButtons()});tinymce.dom.Event.add(d.getBody(),"dragstart",function(f){d.plugins.gridster_shortcode._hideButtons()})});a.onBeforeExecCommand.add(function(d,f,e,g){d.plugins.gridster_shortcode._hideButtons()});a.onSaveContent.add(function(d,e){d.plugins.gridster_shortcode._hideButtons()});a.onMouseDown.add(function(d,f){if(f.target.nodeName!="IMG"){d.plugins.gridster_shortcode._hideButtons()}});a.onKeyDown.add(function(d,f){if(f.which==tinymce.VK.DELETE||f.which==tinymce.VK.BACKSPACE){d.plugins.gridster_shortcode._hideButtons()}})},_do_gridster_shortcode:function(b){var a=this;return b.replace(/\[gridster([^\]]*)\]/g,function(d,c){return'<img src="'+a.url+'/img/t.gif" class="gridsterShortcodeGUI mceItem" title="gridster'+tinymce.DOM.encode(c)+'" />'})},_get_gridster_shortcode:function(b){function a(c,d){d=new RegExp(d+'="([^"]+)"',"g").exec(c);return d?tinymce.DOM.decode(d[1]):""}return b.replace(/(?:<p[^>]*>)*(<img[^>]+>)(?:<\/p>)*/g,function(e,d){var c=a(d,"class");if(c.indexOf("gridsterShortcodeGUI")!=-1){return"<p>["+tinymce.trim(a(d,"title"))+"]</p>"}return e})},_createButtons:function(){var b=this,a=tinymce.activeEditor,d=tinymce.DOM,e,c,f;if(d.get("gridster_sr_btns")){return}f=(window.devicePixelRatio&&window.devicePixelRatio>1)||(window.matchMedia&&window.matchMedia("(min-resolution:130dpi)").matches);d.add(document.body,"div",{id:"gridster_sr_btns",style:"display:none;"});changeButton=d.add("gridster_sr_btns","img",{src:f?b.url+"/img/change-2x.png":b.url+"/img/change.png",id:"gridster_changeShortcode",width:"24",height:"24",title:a.getLang("gridster_shortcode.changeButton")});tinymce.dom.Event.add(changeButton,"mousedown",function(h){var g=tinymce.activeEditor;g.execCommand("ajax_gridster_shortcode_update_modal");g.plugins.gridster_shortcode._hideButtons()});e=d.add("gridster_sr_btns","img",{src:f?b.url+"/img/edit-2x.png":b.url+"/img/edit.png",id:"gridster_editShortcode",width:"24",height:"24",title:a.getLang("gridster_shortcode.editButton")});tinymce.dom.Event.add(e,"mousedown",function(h){var g=tinymce.activeEditor;g.execCommand("gridster_edit_current_gridster");g.plugins.gridster_shortcode._hideButtons()});c=d.add("gridster_sr_btns","img",{src:f?b.url+"/img/delete-2x.png":b.url+"/img/delete.png",id:"gridster_delShortcode",width:"24",height:"24",title:a.getLang("gridster_shortcode.dellButton")});tinymce.dom.Event.add(c,"mousedown",function(i){var g=tinymce.activeEditor,h=g.selection.getNode();if(h.nodeName=="IMG"&&g.dom.hasClass(h,"gridsterShortcodeGUI")){g.dom.remove(h);g.execCommand("mceRepaint");g.dom.events.cancel(i)}g.plugins.gridster_shortcode._hideButtons()})},_hideButtons:function(){var a=tinymce.DOM;a.hide(a.select("#gridster_sr_btns"))},getInfo:function(){return{longname:"Gridster shortcode replace with user-friendly GUI",author:"Carsten Bach",authorurl:"http://carsten-bach.de",infourl:"https://github.com/carstingaxion/cbach-wp-gridster",version:"1.0"}}});tinymce.PluginManager.add("gridster_shortcode",tinymce.plugins.gridster_shortcode)})();
     1(function(){tinymce.create("tinymce.plugins.gridster_shortcode",{init:function(a,b){var c=this;c.url=b;c._createButtons();a.onBeforeSetContent.add(function(d,e){e.content=c._do_gridster_shortcode(e.content)});a.onExecCommand.add(function(d,e){if(e==="mceInsertContent"){tinyMCE.activeEditor.setContent(c._do_gridster_shortcode(tinyMCE.activeEditor.getContent()))}});a.onPostProcess.add(function(d,e){if(e.get){e.content=c._get_gridster_shortcode(e.content)}});a.addCommand("ajax_gridster_shortcode_update_modal",function(e,d){a.windowManager.open({file:ajaxurl+"?action=ajax_gridster_shortcode_update_modal&nonce="+a.getLang("gridster_shortcode.AjaxNonce")+"&selected="+d,width:300,height:240,title:a.getLang("gridster_shortcode.popupTitle"),inline:1},{plugin_url:b})});a.addCommand("gridster_edit_current_gridster",function(){var d=tinymce.activeEditor,h=d.selection.getNode();if(h.nodeName=="IMG"&&d.dom.hasClass(h,"gridsterShortcodeGUI")){var e=d.plugins.gridster_shortcode._get_gridster_id(h);var g=ajaxurl.split("admin-ajax.php");var i=g[0];var f="post.php?post="+e+"&action=edit";window.top.location.href=i+f}});a.addButton("gridster_shortcode",{title:a.getLang("gridster_shortcode.buttonTitle"),cmd:"ajax_gridster_shortcode_update_modal"});a.onMouseDown.add(function(d,f){if(f.target.nodeName=="IMG"&&d.dom.hasClass(f.target,"gridsterShortcodeGUI")){d.plugins.gridster_shortcode._hideButtons();d.plugins.wordpress._showButtons(f.target,"gridster_sr_btns")}});a.onInit.add(function(d){tinymce.dom.Event.add(d.getWin(),"scroll",function(f){d.plugins.gridster_shortcode._hideButtons()});tinymce.dom.Event.add(d.getBody(),"dragstart",function(f){d.plugins.gridster_shortcode._hideButtons()})});a.onBeforeExecCommand.add(function(d,f,e,g){d.plugins.gridster_shortcode._hideButtons()});a.onSaveContent.add(function(d,e){d.plugins.gridster_shortcode._hideButtons()});a.onMouseDown.add(function(d,f){if(f.target.nodeName!="IMG"){d.plugins.gridster_shortcode._hideButtons()}});a.onKeyDown.add(function(d,f){if(f.which==tinymce.VK.DELETE||f.which==tinymce.VK.BACKSPACE){d.plugins.gridster_shortcode._hideButtons()}})},_do_gridster_shortcode:function(b){var a=this;return b.replace(/\[gridster([^\]]*)\]/g,function(d,c){return'<img src="'+a.url+'/img/t.gif" class="gridsterShortcodeGUI mceItem" title="gridster'+tinymce.DOM.encode(c)+'" />'})},_get_gridster_shortcode:function(b){function a(c,d){d=new RegExp(d+'="([^"]+)"',"g").exec(c);return d?tinymce.DOM.decode(d[1]):""}return b.replace(/(?:<p[^>]*>)*(<img[^>]+>)(?:<\/p>)*/g,function(e,d){var c=a(d,"class");if(c.indexOf("gridsterShortcodeGUI")!=-1){return"<p>["+tinymce.trim(a(d,"title"))+"]</p>"}return e})},_get_gridster_id:function(d){function c(g,h){h=new RegExp(h+"=&quot;([0-9]+)&quot;").exec(g);return h?tinymce.DOM.decode(h[1]):""}var f=d.cloneNode(true);var b=document.createElement("div");b.appendChild(f);var e=b.innerHTML;var a=c(e,"id");return a},_createButtons:function(){var b=this,a=tinymce.activeEditor,d=tinymce.DOM,e,c,f;if(d.get("gridster_sr_btns")){return}f=(window.devicePixelRatio&&window.devicePixelRatio>1)||(window.matchMedia&&window.matchMedia("(min-resolution:130dpi)").matches);d.add(document.body,"div",{id:"gridster_sr_btns",style:"display:none;"});changeButton=d.add("gridster_sr_btns","img",{src:f?b.url+"/img/change-2x.png":b.url+"/img/change.png",id:"gridster_changeShortcode",width:"24",height:"24",title:a.getLang("gridster_shortcode.changeButton")});tinymce.dom.Event.add(changeButton,"mousedown",function(j){var g=tinymce.activeEditor,i=g.selection.getNode();if(i.nodeName=="IMG"&&g.dom.hasClass(i,"gridsterShortcodeGUI")){var h=g.plugins.gridster_shortcode._get_gridster_id(i);g.execCommand("ajax_gridster_shortcode_update_modal",false,h);g.plugins.gridster_shortcode._hideButtons()}});e=d.add("gridster_sr_btns","img",{src:f?b.url+"/img/edit-2x.png":b.url+"/img/edit.png",id:"gridster_editShortcode",width:"24",height:"24",title:a.getLang("gridster_shortcode.editButton")});tinymce.dom.Event.add(e,"mousedown",function(h){var g=tinymce.activeEditor;g.execCommand("gridster_edit_current_gridster");g.plugins.gridster_shortcode._hideButtons()});c=d.add("gridster_sr_btns","img",{src:f?b.url+"/img/delete-2x.png":b.url+"/img/delete.png",id:"gridster_delShortcode",width:"24",height:"24",title:a.getLang("gridster_shortcode.dellButton")});tinymce.dom.Event.add(c,"mousedown",function(i){var g=tinymce.activeEditor,h=g.selection.getNode();if(h.nodeName=="IMG"&&g.dom.hasClass(h,"gridsterShortcodeGUI")){g.dom.remove(h);g.execCommand("mceRepaint");g.dom.events.cancel(i)}g.plugins.gridster_shortcode._hideButtons()})},_hideButtons:function(){var a=tinymce.DOM;a.hide(a.select("#gridster_sr_btns"))},getInfo:function(){return{longname:"Gridster shortcode replace with user-friendly GUI",author:"Carsten Bach",authorurl:"http://carsten-bach.de",infourl:"https://github.com/carstingaxion/cbach-wp-gridster",version:"1.0"}}});tinymce.PluginManager.add("gridster_shortcode",tinymce.plugins.gridster_shortcode)})();
Note: See TracChangeset for help on using the changeset viewer.