WordPress.org

Plugin Directory

Changeset 626506


Ignore:
Timestamp:
11/17/12 21:56:25 (17 months ago)
Author:
eskapism
Message:

version 0.10.1

Location:
cms-tree-page-view
Files:
4 edited
7 copied

Legend:

Unmodified
Added
Removed
  • cms-tree-page-view/tags/0.10.1/functions.php

    r625420 r626506  
    127127    load_plugin_textdomain('cms-tree-page-view', WP_CONTENT_DIR . "/plugins/languages", "/cms-tree-page-view/languages"); 
    128128 
    129 } 
     129    // add row to plugin page 
     130    add_filter( 'plugin_row_meta', 'cms_tpv_set_plugin_row_meta', 10, 2 ); 
     131 
     132} 
     133 
     134/** 
     135 * Add settings link to plugin page 
     136 * Hopefully this helps some people to find the settings page quicker 
     137 */ 
     138function cms_tpv_set_plugin_row_meta($links, $file) { 
     139 
     140    if ($file === "cms-tree-page-view/index.php") { 
     141        return array_merge( 
     142            $links, 
     143            array( sprintf( '<a href="options-general.php?page=%s">%s</a>', "cms-tpv-options", __('Settings') ) ) 
     144        ); 
     145    } 
     146    return $links; 
     147 
     148} 
     149 
    130150 
    131151// save settings 
     
    207227            $options = cms_tpv_get_options(); 
    208228 
    209             $post_types = get_post_types(array(), "objects"); 
     229            $post_types = get_post_types(array( 
     230                "show_ui" => TRUE 
     231            ), "objects"); 
    210232            $arr_page_options = array(); 
    211233            foreach ($post_types as $one_post_type) { 
     
    219241                } 
    220242 
    221                 if ($one_post_type->show_ui) { 
    222  
    223                     $arr_page_options[] = "post-type-dashboard-$name"; 
    224                     $arr_page_options[] = "post-type-menu-$name"; 
    225                     echo "<p>"; 
    226                     echo "<strong>".$one_post_type->label."</strong>"; 
    227                      
    228                     $checked = (in_array($name, $options["dashboard"])) ? " checked='checked' " : ""; 
    229                     echo "<br />"; 
    230                     echo "<input $checked type='checkbox' name='post-type-dashboard[]' value='$name' id='post-type-dashboard-$name' /> <label for='post-type-dashboard-$name'>" . __("On dashboard", 'cms-tree-page-view') . "</label>"; 
    231                      
    232                     $checked = (in_array($name, $options["menu"])) ? " checked='checked' " : ""; 
    233                     echo "<br />"; 
    234                     echo "<input $checked type='checkbox' name='post-type-menu[]' value='$name' id='post-type-menu-$name' /> <label for='post-type-menu-$name'>" . __("In menu", 'cms-tree-page-view') . "</label>"; 
    235                     echo "</p>"; 
    236                 } 
     243                $arr_page_options[] = "post-type-dashboard-$name"; 
     244                $arr_page_options[] = "post-type-menu-$name"; 
     245                echo "<p>"; 
     246                echo "<strong>".$one_post_type->label."</strong>"; 
     247                 
     248                $checked = (in_array($name, $options["dashboard"])) ? " checked='checked' " : ""; 
     249                echo "<br />"; 
     250                echo "<input $checked type='checkbox' name='post-type-dashboard[]' value='$name' id='post-type-dashboard-$name' /> <label for='post-type-dashboard-$name'>" . __("On dashboard", 'cms-tree-page-view') . "</label>"; 
     251                 
     252                $checked = (in_array($name, $options["menu"])) ? " checked='checked' " : ""; 
     253                echo "<br />"; 
     254                echo "<input $checked type='checkbox' name='post-type-menu[]' value='$name' id='post-type-menu-$name' /> <label for='post-type-menu-$name'>" . __("In menu", 'cms-tree-page-view') . "</label>"; 
     255                echo "</p>"; 
     256 
    237257            } 
    238258 
     
    295315function cms_tpv_print_common_tree_stuff($post_type = "") { 
    296316 
     317    global $sitepress, $cms_tpv_view; 
     318 
    297319    if (!$post_type) { 
    298320        $post_type = cms_tpv_get_selected_post_type(); 
     
    304326    $pages = cms_tpv_get_pages($get_pages_args); 
    305327 
     328    // check if wpml is active and if this post type is one of its enabled ones 
    306329    $wpml_current_lang = ""; 
    307     if (defined("ICL_SITEPRESS_VERSION") && $post_type == "page") { 
    308         global $sitepress; 
    309         $wpml_current_lang = $sitepress->get_current_language(); 
    310     } 
    311  
    312     global $cms_tpv_view; 
     330    $wmpl_active_for_post = FALSE; 
     331    if (defined("ICL_SITEPRESS_VERSION")) { 
     332 
     333        $wpml_post_types = $sitepress->get_translatable_documents(); 
     334        if (array_key_exists($post_type, $wpml_post_types)) { 
     335            $wmpl_active_for_post = TRUE; 
     336            $wpml_current_lang = $sitepress->get_current_language(); 
     337        } 
     338     
     339    } 
     340 
    313341    // output js for the root/top level 
    314342    // function cms_tpv_print_childs($pageID, $view = "all", $arrOpenChilds = null, $post_type) { 
     
    336364        <?php 
    337365 
    338         // check if WPML is activated 
    339         // if: show a language-menu 
    340         if (defined("ICL_SITEPRESS_VERSION") && $post_type == "page") { 
     366        // check if WPML is activated and show a language-menu 
     367        if ($wmpl_active_for_post) { 
     368 
    341369            $wpml_langs = icl_get_languages(); 
    342370            $wpml_active_lang = null; 
     
    357385                echo $lang_out; 
    358386            } 
    359         } 
    360         /* 
    361         Array 
    362         ( 
    363             [en] => Array 
    364                 ( 
    365                     [id] => 1 
    366                     [active] => 1 
    367                     [native_name] => English 
    368                     [language_code] => en 
    369                     [translated_name] => English 
    370                     [url] => http://localhost/wordpress3 
    371                     [country_flag_url] => http://localhost/wordpress3/wp-content/plugins/sitepress-multilingual-cms/res/flags/en.png 
    372                 ) 
    373         */ 
    374      
     387 
     388        } 
     389 
    375390        if (empty($pages)) { 
    376391            echo '<div class="updated fade below-h2"><p>' . __("No posts found.", 'cms-tree-page-view') . '</p></div>'; 
     
    735750                    "title": "<?php echo $title ?>", 
    736751                    "attr": { 
    737                         "href": "<?php echo $editLink ?>", 
    738                         "xid": "cms-tpv-<?php echo $onePage->ID ?>" 
    739                     }, 
    740                     "xicon": "<?php echo CMS_TPV_URL . "images/page_white_text.png" ?>" 
     752                        "href": "<?php echo $editLink ?>" 
     753                        <?php /* , "xid": "cms-tpv-<?php echo $onePage->ID ?>" */ ?> 
     754                    }<?php /*, 
     755                    "xicon": "<?php echo CMS_TPV_URL . "images/page_white_text.png" ?>"*/?> 
    741756                }, 
    742757                "attr": { 
    743                     "xhref": "<?php echo $editLink ?>", 
     758                    <?php /* "xhref": "<?php echo $editLink ?>", */ ?> 
    744759                    "id": "cms-tpv-<?php echo $onePage->ID ?>", 
    745                     "xtitle": "<?php _e("Click to edit. Drag to move.", 'cms-tree-page-view') ?>", 
     760                    <?php /* "xtitle": "<?php _e("Click to edit. Drag to move.", 'cms-tree-page-view') ?>", */ ?> 
    746761                    "class": "<?php echo $user_can_edit_page_css ?>" 
    747762                }, 
     
    765780                <?php 
    766781                // if id is in $arrOpenChilds then also output children on this one 
     782                // TODO: if only "a few" (< 100?) pages then load all, but keep closed, so we don't have to do the ajax thingie 
    767783                if ($hasChildren && isset($arrOpenChilds) && in_array($onePage->ID, $arrOpenChilds)) { 
    768784                    ?>, "children": <?php 
     
    11241140    update_option('cms_tpv_show_annoying_little_box', 1); 
    11251141     
     1142    // first install or pre custom posts version: 
     1143    // make sure pages are enabled by default 
     1144    // run on admin_init so most themes and plugins have time to setup their things. late prio too. 
     1145    add_action("admin_init", "cms_tpv_setup_defaults", 999); 
     1146 
     1147    // set to current version 
     1148    update_option('cms_tpv_version', CMS_TPV_VERSION); 
     1149} 
     1150 
     1151/** 
     1152 * setup some defaults 
     1153 */ 
     1154function cms_tpv_setup_defaults() { 
     1155 
    11261156    // check and update version 
    11271157    $version = get_option('cms_tpv_version', 0); 
     1158 
     1159    //$version = 0; 
     1160 
    11281161    if ($version <= 0) { 
    1129         // first install or pre custom posts version: 
    1130         // make sure pages are enabled by default 
     1162 
    11311163        $options = array(); 
     1164 
     1165        // Add pages to both dashboard and menu 
    11321166        $options["dashboard"] = array("page"); 
    11331167        $options["menu"] = array("page"); 
     1168 
     1169        // since 0.10.1 enable menu for all hierarchical custom post types 
     1170        $post_types = get_post_types(array( 
     1171            "show_ui"       => TRUE, 
     1172            "hierarchical"  => TRUE 
     1173        ), "objects"); 
     1174 
     1175        foreach ($post_types as $one_post_type) { 
     1176            $options["menu"][] = $one_post_type->name; 
     1177        } 
     1178 
     1179        $options["menu"] = array_unique($options["menu"]); 
     1180 
    11341181        update_option('cms_tpv_options', $options); 
    11351182    } 
    1136      
    1137     // set to current version 
    1138     update_option('cms_tpv_version', CMS_TPV_VERSION); 
     1183 
    11391184} 
    11401185 
  • cms-tree-page-view/tags/0.10.1/index.php

    r625420 r626506  
    44Plugin URI: http://eskapism.se/code-playground/cms-tree-page-view/ 
    55Description: Adds a CMS-like tree view of all your pages, like the view often found in a page-focused CMS. Use the tree view to edit, view, add pages and search pages (very useful if you have many pages). And with drag and drop you can rearrange the order of your pages. Page management won't get any easier than this! 
    6 Version: 0.10 
     6Version: 0.10.1 
    77Author: Pär Thernström 
    88Author URI: http://eskapism.se/ 
     
    2727 
    2828#require("functions.php"); 
     29 
     30define( "CMS_TPV_VERSION", "0.10.1"); 
     31define( "CMS_TPV_NAME", "CMS Tree Page View"); 
     32 
    2933require(dirname(__FILE__)."/functions.php"); 
    30  
    31 define( "CMS_TPV_VERSION", "0.10"); 
    32 define( "CMS_TPV_NAME", "CMS Tree Page View"); 
    3334 
    3435// Find the plugin directory URL 
     
    4748// There! Now we should have it. 
    4849define( "CMS_TPV_URL", $plugin_dir_url); 
     50// define( "CMS_TPV_PLUGIN_FOLDERNAME_AND_FILENAME", basename(dirname(__FILE__)) . "/" . basename(__FILE__) ); 
    4951 
    5052// on admin init: add styles and scripts 
  • cms-tree-page-view/tags/0.10.1/readme.txt

    r625420 r626506  
    55Requires at least: 3.0 
    66Tested up to: 3.5 
    7 Stable tag: 0.10 
     7Stable tag: 0.10.1 
    88 
    99Adds a tree of all your pages or custom posts. Use drag & drop to reorder your pages, and edit, view, add, and search your pages. 
     
    8989== Changelog == 
    9090 
     91= 0.10.1 = 
     92- Fixed popup closing to fast on Firefox. 
     93- Enable menu item setting by default for hierarchical post types during first install. It was confusing when it was enabled for pages but not for other post types. Consistency! 
     94- Added link to settings page to plugin listing. 
     95- Fixed: WPML-stuff now also works on custom post types 
     96 
    9197= 0.10 = 
    9298- Fixed position of action div. Now it's always to the right of the page name. 
  • cms-tree-page-view/tags/0.10.1/scripts/cms_tree_page_view.js

    r625420 r626506  
     1 
     2/* 
     3 
     4Some docs so I remember how things work: 
     5 
     6Timers: 
     7 
     8    cmstpv_global_link_timer 
     9    set when mouse over link. used to show the actions div. 
     10 
     11*/ 
     12 
     13 
     14/** 
     15 * Should have a module for all instead... 
     16 */ 
     17var cms_tree_page_view = (function () { 
     18     
     19    var my = {}, 
     20        privateVariable = 1; 
     21      
     22    function privateMethod() { 
     23        // ... 
     24    } 
     25      
     26    my.moduleProperty = 1; 
     27    my.moduleMethod = function () { 
     28        // ... 
     29    }; 
     30 
     31    my.init = function() { 
     32        my.log("init cms tree page view"); 
     33    }; 
     34 
     35    /** 
     36     * Log, but only if console.log is available 
     37     */ 
     38    my.log = function(what) { 
     39        if (typeof(window.console) === "object" && typeof(window.console.log) === "function" ) { 
     40            console.log(what); 
     41        } 
     42    }; 
     43      
     44    return my; 
     45}()); 
     46 
     47cms_tree_page_view.init(); 
     48 
    149 
    250// @todo: add prefix to treeOptions, div_actions 
     
    1058    // try to override css 
    1159    var height = "20", height2 = "18", ins_height = "20"; 
    12     css_string = '' +  
    13         '.jstree ul, .jstree li { display:block; margin:0 0 0 0; padding:0 0 0 0; list-style-type:none; } ' +  
    14         '.jstree li { display:block; min-height:'+height+'px; line-height:'+height+'px; white-space:nowrap; margin-left:18px; min-width:18px; } ' +  
    15         '.jstree-rtl li { margin-left:0; margin-right:18px; } ' +  
    16         '.jstree > ul > li { margin-left:0px; } ' +  
    17         '.jstree-rtl > ul > li { margin-right:0px; } ' +  
    18         '.jstree ins { display:inline-block; text-decoration:none; width:18px; height:'+height+'px; margin:0 0 0 0; padding:0; } ' +  
    19         '.jstree a { display:inline-block; line-height:'+height2+'px; height:'+height2+'px; color:black; white-space:nowrap; text-decoration:none; padding:1px 2px; margin:0; } ' +  
    20         '.jstree a:focus { outline: none; } ' +  
    21         '.jstree a > ins { height:'+ins_height+'px; width:16px; } ' +  
    22         '.jstree a > .jstree-icon { margin-right:3px; } ' +  
    23         '.jstree-rtl a > .jstree-icon { margin-left:3px; margin-right:0; } ' +  
    24         'li.jstree-open > ul { display:block; } ' +  
    25         'li.jstree-closed > ul { display:none; } '; 
     60    css_string = '' + 
     61        '.jstree ul, .jstree li { display:block; margin:0 0 0 0; padding:0 0 0 0; list-style-type:none; } ' + 
     62        '.jstree li { display:block; min-height:'+height+'px; line-height:'+height+'px; white-space:nowrap; margin-left:18px; min-width:18px; } ' + 
     63        '.jstree-rtl li { margin-left:0; margin-right:18px; } ' + 
     64        '.jstree > ul > li { margin-left:0px; } ' + 
     65        '.jstree-rtl > ul > li { margin-right:0px; } ' + 
     66        '.jstree ins { display:inline-block; text-decoration:none; width:18px; height:'+height+'px; margin:0 0 0 0; padding:0; } ' + 
     67        '.jstree a { display:inline-block; line-height:'+height2+'px; height:'+height2+'px; color:black; white-space:nowrap; text-decoration:none; padding:1px 2px; margin:0; } ' + 
     68        '.jstree a:focus { outline: none; } ' + 
     69        '.jstree a > ins { height:'+ins_height+'px; width:16px; } ' + 
     70        '.jstree a > .jstree-icon { margin-right:3px; } ' + 
     71        '.jstree-rtl a > .jstree-icon { margin-left:3px; margin-right:0; } ' + 
     72        'li.jstree-open > ul { display:block; } ' + 
     73        'li.jstree-closed > ul { display:none; } ' + 
     74        '#vakata-dragged { background-color: white; };' + 
     75        ''; 
    2676    $.vakata.css.add_sheet({ 
    2777        str : css_string, 
     
    120170/** 
    121171 * When tree is loaded: start hoverindenting stuff 
    122  * @todo: this is fireded several times? why not only once? 
    123172 */ 
    124173function cms_tpv_tree_loaded(event, data) { 
     
    129178    // start timer and if no other a/link has been moused over since it started it's ok to show this one 
    130179    jQuery($container).on("mouseenter", "a", function(e) { 
     180 
     181        cms_tree_page_view.log("mouseenter container"); 
     182 
    131183        var global_timer = $container.data("cmstpv_global_link_timer"); 
    132184 
     
    134186            // global timer exists, so overwrite it with our new one 
    135187            // stop that timer before setting ours 
     188            cms_tree_page_view.log("clear global timer"); 
    136189            clearTimeout(global_timer); 
    137190        } else { 
    138191            // no timer exists, overwrite with ours 
    139192        } 
     193 
    140194        // create new timer, no matter if one exists already 
     195        cms_tree_page_view.log("add timer for mousover on link"); 
    141196        var timeoutID = setTimeout(function(e) { 
    142197            cms_tpv_mouseover_li(e); 
     
    148203 
    149204    /** 
    150      * When mouse down then hide the action div 
     205     * When mouse down we may want to drag and drop, 
     206     * so hide the action div and cancel the timer 
    151207     */ 
    152208    jQuery($container).on("mousedown", "a", function(e) { 
     209         
     210        cms_tree_page_view.log("mousedown a"); 
     211 
    153212        var $target = jQuery(e.target); 
    154213        var $container = $target.closest("div.cms_tpv_container"); 
    155214        var $wrapper = $container.closest("div.cms_tpv_wrapper"); 
     215 
    156216        $container.find("li.has-visible-actions").removeClass("has-visible-actions"); 
    157217        $container.find("a.hover").removeClass("hover"); 
    158218        $wrapper.find("div.cms_tpv_page_actions").removeClass("cms_tpv_page_actions_visible"); 
     219 
     220 
     221 
    159222    }); 
    160223 
     
    365428 */ 
    366429jQuery(document).on("mouseleave", "div.cms_tpv_container", function(e) { 
     430 
     431    cms_tree_page_view.log("mouseleave container"); 
    367432     
    368433    var $container = jQuery(e.target).closest("div.cms_tpv_container"); 
     
    373438    var global_timer = $container.data("cmstpv_global_link_timer"); 
    374439    if (global_timer) { 
     440        cms_tree_page_view.log("clear global timer"); 
    375441        clearTimeout(global_timer); 
    376442    } 
     
    379445    var hideTimer = setTimeout(function() { 
    380446         
     447        cms_tree_page_view.log("maybe hide popup because outside container"); 
     448 
    381449        // But don't hide if we are inside the popup 
    382         var $toElement = jQuery(e.toElement); 
    383         if ($toElement.hasClass("cms_tpv_page_actions")) { 
     450        var $relatedTarget = jQuery(e.relatedTarget); 
     451        if ($relatedTarget.hasClass("cms_tpv_page_actions")) { 
    384452            // we are over the actions div, so don't hide 
     453            cms_tree_page_view.log("cancel hide beacuse over actions div"); 
    385454        } else { 
    386455            // somewhere else, do hide 
     456            cms_tree_page_view.log("do hide"); 
    387457            $container.find("li.has-visible-actions").removeClass("has-visible-actions"); 
    388458            $container.find("a.hover").removeClass("hover"); 
     
    392462    }, 500); 
    393463 
    394     $container.data("cmstpv_global_hide_timer", hideTimer); 
     464    // $container.data("cmstpv_global_hide_timer", hideTimer); 
    395465 
    396466}); 
  • cms-tree-page-view/trunk/functions.php

    r625420 r626506  
    127127    load_plugin_textdomain('cms-tree-page-view', WP_CONTENT_DIR . "/plugins/languages", "/cms-tree-page-view/languages"); 
    128128 
    129 } 
     129    // add row to plugin page 
     130    add_filter( 'plugin_row_meta', 'cms_tpv_set_plugin_row_meta', 10, 2 ); 
     131 
     132} 
     133 
     134/** 
     135 * Add settings link to plugin page 
     136 * Hopefully this helps some people to find the settings page quicker 
     137 */ 
     138function cms_tpv_set_plugin_row_meta($links, $file) { 
     139 
     140    if ($file === "cms-tree-page-view/index.php") { 
     141        return array_merge( 
     142            $links, 
     143            array( sprintf( '<a href="options-general.php?page=%s">%s</a>', "cms-tpv-options", __('Settings') ) ) 
     144        ); 
     145    } 
     146    return $links; 
     147 
     148} 
     149 
    130150 
    131151// save settings 
     
    207227            $options = cms_tpv_get_options(); 
    208228 
    209             $post_types = get_post_types(array(), "objects"); 
     229            $post_types = get_post_types(array( 
     230                "show_ui" => TRUE 
     231            ), "objects"); 
    210232            $arr_page_options = array(); 
    211233            foreach ($post_types as $one_post_type) { 
     
    219241                } 
    220242 
    221                 if ($one_post_type->show_ui) { 
    222  
    223                     $arr_page_options[] = "post-type-dashboard-$name"; 
    224                     $arr_page_options[] = "post-type-menu-$name"; 
    225                     echo "<p>"; 
    226                     echo "<strong>".$one_post_type->label."</strong>"; 
    227                      
    228                     $checked = (in_array($name, $options["dashboard"])) ? " checked='checked' " : ""; 
    229                     echo "<br />"; 
    230                     echo "<input $checked type='checkbox' name='post-type-dashboard[]' value='$name' id='post-type-dashboard-$name' /> <label for='post-type-dashboard-$name'>" . __("On dashboard", 'cms-tree-page-view') . "</label>"; 
    231                      
    232                     $checked = (in_array($name, $options["menu"])) ? " checked='checked' " : ""; 
    233                     echo "<br />"; 
    234                     echo "<input $checked type='checkbox' name='post-type-menu[]' value='$name' id='post-type-menu-$name' /> <label for='post-type-menu-$name'>" . __("In menu", 'cms-tree-page-view') . "</label>"; 
    235                     echo "</p>"; 
    236                 } 
     243                $arr_page_options[] = "post-type-dashboard-$name"; 
     244                $arr_page_options[] = "post-type-menu-$name"; 
     245                echo "<p>"; 
     246                echo "<strong>".$one_post_type->label."</strong>"; 
     247                 
     248                $checked = (in_array($name, $options["dashboard"])) ? " checked='checked' " : ""; 
     249                echo "<br />"; 
     250                echo "<input $checked type='checkbox' name='post-type-dashboard[]' value='$name' id='post-type-dashboard-$name' /> <label for='post-type-dashboard-$name'>" . __("On dashboard", 'cms-tree-page-view') . "</label>"; 
     251                 
     252                $checked = (in_array($name, $options["menu"])) ? " checked='checked' " : ""; 
     253                echo "<br />"; 
     254                echo "<input $checked type='checkbox' name='post-type-menu[]' value='$name' id='post-type-menu-$name' /> <label for='post-type-menu-$name'>" . __("In menu", 'cms-tree-page-view') . "</label>"; 
     255                echo "</p>"; 
     256 
    237257            } 
    238258 
     
    295315function cms_tpv_print_common_tree_stuff($post_type = "") { 
    296316 
     317    global $sitepress, $cms_tpv_view; 
     318 
    297319    if (!$post_type) { 
    298320        $post_type = cms_tpv_get_selected_post_type(); 
     
    304326    $pages = cms_tpv_get_pages($get_pages_args); 
    305327 
     328    // check if wpml is active and if this post type is one of its enabled ones 
    306329    $wpml_current_lang = ""; 
    307     if (defined("ICL_SITEPRESS_VERSION") && $post_type == "page") { 
    308         global $sitepress; 
    309         $wpml_current_lang = $sitepress->get_current_language(); 
    310     } 
    311  
    312     global $cms_tpv_view; 
     330    $wmpl_active_for_post = FALSE; 
     331    if (defined("ICL_SITEPRESS_VERSION")) { 
     332 
     333        $wpml_post_types = $sitepress->get_translatable_documents(); 
     334        if (array_key_exists($post_type, $wpml_post_types)) { 
     335            $wmpl_active_for_post = TRUE; 
     336            $wpml_current_lang = $sitepress->get_current_language(); 
     337        } 
     338     
     339    } 
     340 
    313341    // output js for the root/top level 
    314342    // function cms_tpv_print_childs($pageID, $view = "all", $arrOpenChilds = null, $post_type) { 
     
    336364        <?php 
    337365 
    338         // check if WPML is activated 
    339         // if: show a language-menu 
    340         if (defined("ICL_SITEPRESS_VERSION") && $post_type == "page") { 
     366        // check if WPML is activated and show a language-menu 
     367        if ($wmpl_active_for_post) { 
     368 
    341369            $wpml_langs = icl_get_languages(); 
    342370            $wpml_active_lang = null; 
     
    357385                echo $lang_out; 
    358386            } 
    359         } 
    360         /* 
    361         Array 
    362         ( 
    363             [en] => Array 
    364                 ( 
    365                     [id] => 1 
    366                     [active] => 1 
    367                     [native_name] => English 
    368                     [language_code] => en 
    369                     [translated_name] => English 
    370                     [url] => http://localhost/wordpress3 
    371                     [country_flag_url] => http://localhost/wordpress3/wp-content/plugins/sitepress-multilingual-cms/res/flags/en.png 
    372                 ) 
    373         */ 
    374      
     387 
     388        } 
     389 
    375390        if (empty($pages)) { 
    376391            echo '<div class="updated fade below-h2"><p>' . __("No posts found.", 'cms-tree-page-view') . '</p></div>'; 
     
    735750                    "title": "<?php echo $title ?>", 
    736751                    "attr": { 
    737                         "href": "<?php echo $editLink ?>", 
    738                         "xid": "cms-tpv-<?php echo $onePage->ID ?>" 
    739                     }, 
    740                     "xicon": "<?php echo CMS_TPV_URL . "images/page_white_text.png" ?>" 
     752                        "href": "<?php echo $editLink ?>" 
     753                        <?php /* , "xid": "cms-tpv-<?php echo $onePage->ID ?>" */ ?> 
     754                    }<?php /*, 
     755                    "xicon": "<?php echo CMS_TPV_URL . "images/page_white_text.png" ?>"*/?> 
    741756                }, 
    742757                "attr": { 
    743                     "xhref": "<?php echo $editLink ?>", 
     758                    <?php /* "xhref": "<?php echo $editLink ?>", */ ?> 
    744759                    "id": "cms-tpv-<?php echo $onePage->ID ?>", 
    745                     "xtitle": "<?php _e("Click to edit. Drag to move.", 'cms-tree-page-view') ?>", 
     760                    <?php /* "xtitle": "<?php _e("Click to edit. Drag to move.", 'cms-tree-page-view') ?>", */ ?> 
    746761                    "class": "<?php echo $user_can_edit_page_css ?>" 
    747762                }, 
     
    765780                <?php 
    766781                // if id is in $arrOpenChilds then also output children on this one 
     782                // TODO: if only "a few" (< 100?) pages then load all, but keep closed, so we don't have to do the ajax thingie 
    767783                if ($hasChildren && isset($arrOpenChilds) && in_array($onePage->ID, $arrOpenChilds)) { 
    768784                    ?>, "children": <?php 
     
    11241140    update_option('cms_tpv_show_annoying_little_box', 1); 
    11251141     
     1142    // first install or pre custom posts version: 
     1143    // make sure pages are enabled by default 
     1144    // run on admin_init so most themes and plugins have time to setup their things. late prio too. 
     1145    add_action("admin_init", "cms_tpv_setup_defaults", 999); 
     1146 
     1147    // set to current version 
     1148    update_option('cms_tpv_version', CMS_TPV_VERSION); 
     1149} 
     1150 
     1151/** 
     1152 * setup some defaults 
     1153 */ 
     1154function cms_tpv_setup_defaults() { 
     1155 
    11261156    // check and update version 
    11271157    $version = get_option('cms_tpv_version', 0); 
     1158 
     1159    //$version = 0; 
     1160 
    11281161    if ($version <= 0) { 
    1129         // first install or pre custom posts version: 
    1130         // make sure pages are enabled by default 
     1162 
    11311163        $options = array(); 
     1164 
     1165        // Add pages to both dashboard and menu 
    11321166        $options["dashboard"] = array("page"); 
    11331167        $options["menu"] = array("page"); 
     1168 
     1169        // since 0.10.1 enable menu for all hierarchical custom post types 
     1170        $post_types = get_post_types(array( 
     1171            "show_ui"       => TRUE, 
     1172            "hierarchical"  => TRUE 
     1173        ), "objects"); 
     1174 
     1175        foreach ($post_types as $one_post_type) { 
     1176            $options["menu"][] = $one_post_type->name; 
     1177        } 
     1178 
     1179        $options["menu"] = array_unique($options["menu"]); 
     1180 
    11341181        update_option('cms_tpv_options', $options); 
    11351182    } 
    1136      
    1137     // set to current version 
    1138     update_option('cms_tpv_version', CMS_TPV_VERSION); 
     1183 
    11391184} 
    11401185 
  • cms-tree-page-view/trunk/index.php

    r625420 r626506  
    44Plugin URI: http://eskapism.se/code-playground/cms-tree-page-view/ 
    55Description: Adds a CMS-like tree view of all your pages, like the view often found in a page-focused CMS. Use the tree view to edit, view, add pages and search pages (very useful if you have many pages). And with drag and drop you can rearrange the order of your pages. Page management won't get any easier than this! 
    6 Version: 0.10 
     6Version: 0.10.1 
    77Author: Pär Thernström 
    88Author URI: http://eskapism.se/ 
     
    2727 
    2828#require("functions.php"); 
     29 
     30define( "CMS_TPV_VERSION", "0.10.1"); 
     31define( "CMS_TPV_NAME", "CMS Tree Page View"); 
     32 
    2933require(dirname(__FILE__)."/functions.php"); 
    30  
    31 define( "CMS_TPV_VERSION", "0.10"); 
    32 define( "CMS_TPV_NAME", "CMS Tree Page View"); 
    3334 
    3435// Find the plugin directory URL 
     
    4748// There! Now we should have it. 
    4849define( "CMS_TPV_URL", $plugin_dir_url); 
     50// define( "CMS_TPV_PLUGIN_FOLDERNAME_AND_FILENAME", basename(dirname(__FILE__)) . "/" . basename(__FILE__) ); 
    4951 
    5052// on admin init: add styles and scripts 
  • cms-tree-page-view/trunk/readme.txt

    r625420 r626506  
    55Requires at least: 3.0 
    66Tested up to: 3.5 
    7 Stable tag: 0.10 
     7Stable tag: 0.10.1 
    88 
    99Adds a tree of all your pages or custom posts. Use drag & drop to reorder your pages, and edit, view, add, and search your pages. 
     
    8989== Changelog == 
    9090 
     91= 0.10.1 = 
     92- Fixed popup closing to fast on Firefox. 
     93- Enable menu item setting by default for hierarchical post types during first install. It was confusing when it was enabled for pages but not for other post types. Consistency! 
     94- Added link to settings page to plugin listing. 
     95- Fixed: WPML-stuff now also works on custom post types 
     96 
    9197= 0.10 = 
    9298- Fixed position of action div. Now it's always to the right of the page name. 
  • cms-tree-page-view/trunk/scripts/cms_tree_page_view.js

    r625420 r626506  
     1 
     2/* 
     3 
     4Some docs so I remember how things work: 
     5 
     6Timers: 
     7 
     8    cmstpv_global_link_timer 
     9    set when mouse over link. used to show the actions div. 
     10 
     11*/ 
     12 
     13 
     14/** 
     15 * Should have a module for all instead... 
     16 */ 
     17var cms_tree_page_view = (function () { 
     18     
     19    var my = {}, 
     20        privateVariable = 1; 
     21      
     22    function privateMethod() { 
     23        // ... 
     24    } 
     25      
     26    my.moduleProperty = 1; 
     27    my.moduleMethod = function () { 
     28        // ... 
     29    }; 
     30 
     31    my.init = function() { 
     32        my.log("init cms tree page view"); 
     33    }; 
     34 
     35    /** 
     36     * Log, but only if console.log is available 
     37     */ 
     38    my.log = function(what) { 
     39        if (typeof(window.console) === "object" && typeof(window.console.log) === "function" ) { 
     40            console.log(what); 
     41        } 
     42    }; 
     43      
     44    return my; 
     45}()); 
     46 
     47cms_tree_page_view.init(); 
     48 
    149 
    250// @todo: add prefix to treeOptions, div_actions 
     
    1058    // try to override css 
    1159    var height = "20", height2 = "18", ins_height = "20"; 
    12     css_string = '' +  
    13         '.jstree ul, .jstree li { display:block; margin:0 0 0 0; padding:0 0 0 0; list-style-type:none; } ' +  
    14         '.jstree li { display:block; min-height:'+height+'px; line-height:'+height+'px; white-space:nowrap; margin-left:18px; min-width:18px; } ' +  
    15         '.jstree-rtl li { margin-left:0; margin-right:18px; } ' +  
    16         '.jstree > ul > li { margin-left:0px; } ' +  
    17         '.jstree-rtl > ul > li { margin-right:0px; } ' +  
    18         '.jstree ins { display:inline-block; text-decoration:none; width:18px; height:'+height+'px; margin:0 0 0 0; padding:0; } ' +  
    19         '.jstree a { display:inline-block; line-height:'+height2+'px; height:'+height2+'px; color:black; white-space:nowrap; text-decoration:none; padding:1px 2px; margin:0; } ' +  
    20         '.jstree a:focus { outline: none; } ' +  
    21         '.jstree a > ins { height:'+ins_height+'px; width:16px; } ' +  
    22         '.jstree a > .jstree-icon { margin-right:3px; } ' +  
    23         '.jstree-rtl a > .jstree-icon { margin-left:3px; margin-right:0; } ' +  
    24         'li.jstree-open > ul { display:block; } ' +  
    25         'li.jstree-closed > ul { display:none; } '; 
     60    css_string = '' + 
     61        '.jstree ul, .jstree li { display:block; margin:0 0 0 0; padding:0 0 0 0; list-style-type:none; } ' + 
     62        '.jstree li { display:block; min-height:'+height+'px; line-height:'+height+'px; white-space:nowrap; margin-left:18px; min-width:18px; } ' + 
     63        '.jstree-rtl li { margin-left:0; margin-right:18px; } ' + 
     64        '.jstree > ul > li { margin-left:0px; } ' + 
     65        '.jstree-rtl > ul > li { margin-right:0px; } ' + 
     66        '.jstree ins { display:inline-block; text-decoration:none; width:18px; height:'+height+'px; margin:0 0 0 0; padding:0; } ' + 
     67        '.jstree a { display:inline-block; line-height:'+height2+'px; height:'+height2+'px; color:black; white-space:nowrap; text-decoration:none; padding:1px 2px; margin:0; } ' + 
     68        '.jstree a:focus { outline: none; } ' + 
     69        '.jstree a > ins { height:'+ins_height+'px; width:16px; } ' + 
     70        '.jstree a > .jstree-icon { margin-right:3px; } ' + 
     71        '.jstree-rtl a > .jstree-icon { margin-left:3px; margin-right:0; } ' + 
     72        'li.jstree-open > ul { display:block; } ' + 
     73        'li.jstree-closed > ul { display:none; } ' + 
     74        '#vakata-dragged { background-color: white; };' + 
     75        ''; 
    2676    $.vakata.css.add_sheet({ 
    2777        str : css_string, 
     
    120170/** 
    121171 * When tree is loaded: start hoverindenting stuff 
    122  * @todo: this is fireded several times? why not only once? 
    123172 */ 
    124173function cms_tpv_tree_loaded(event, data) { 
     
    129178    // start timer and if no other a/link has been moused over since it started it's ok to show this one 
    130179    jQuery($container).on("mouseenter", "a", function(e) { 
     180 
     181        cms_tree_page_view.log("mouseenter container"); 
     182 
    131183        var global_timer = $container.data("cmstpv_global_link_timer"); 
    132184 
     
    134186            // global timer exists, so overwrite it with our new one 
    135187            // stop that timer before setting ours 
     188            cms_tree_page_view.log("clear global timer"); 
    136189            clearTimeout(global_timer); 
    137190        } else { 
    138191            // no timer exists, overwrite with ours 
    139192        } 
     193 
    140194        // create new timer, no matter if one exists already 
     195        cms_tree_page_view.log("add timer for mousover on link"); 
    141196        var timeoutID = setTimeout(function(e) { 
    142197            cms_tpv_mouseover_li(e); 
     
    148203 
    149204    /** 
    150      * When mouse down then hide the action div 
     205     * When mouse down we may want to drag and drop, 
     206     * so hide the action div and cancel the timer 
    151207     */ 
    152208    jQuery($container).on("mousedown", "a", function(e) { 
     209         
     210        cms_tree_page_view.log("mousedown a"); 
     211 
    153212        var $target = jQuery(e.target); 
    154213        var $container = $target.closest("div.cms_tpv_container"); 
    155214        var $wrapper = $container.closest("div.cms_tpv_wrapper"); 
     215 
    156216        $container.find("li.has-visible-actions").removeClass("has-visible-actions"); 
    157217        $container.find("a.hover").removeClass("hover"); 
    158218        $wrapper.find("div.cms_tpv_page_actions").removeClass("cms_tpv_page_actions_visible"); 
     219 
     220 
     221 
    159222    }); 
    160223 
     
    365428 */ 
    366429jQuery(document).on("mouseleave", "div.cms_tpv_container", function(e) { 
     430 
     431    cms_tree_page_view.log("mouseleave container"); 
    367432     
    368433    var $container = jQuery(e.target).closest("div.cms_tpv_container"); 
     
    373438    var global_timer = $container.data("cmstpv_global_link_timer"); 
    374439    if (global_timer) { 
     440        cms_tree_page_view.log("clear global timer"); 
    375441        clearTimeout(global_timer); 
    376442    } 
     
    379445    var hideTimer = setTimeout(function() { 
    380446         
     447        cms_tree_page_view.log("maybe hide popup because outside container"); 
     448 
    381449        // But don't hide if we are inside the popup 
    382         var $toElement = jQuery(e.toElement); 
    383         if ($toElement.hasClass("cms_tpv_page_actions")) { 
     450        var $relatedTarget = jQuery(e.relatedTarget); 
     451        if ($relatedTarget.hasClass("cms_tpv_page_actions")) { 
    384452            // we are over the actions div, so don't hide 
     453            cms_tree_page_view.log("cancel hide beacuse over actions div"); 
    385454        } else { 
    386455            // somewhere else, do hide 
     456            cms_tree_page_view.log("do hide"); 
    387457            $container.find("li.has-visible-actions").removeClass("has-visible-actions"); 
    388458            $container.find("a.hover").removeClass("hover"); 
     
    392462    }, 500); 
    393463 
    394     $container.data("cmstpv_global_hide_timer", hideTimer); 
     464    // $container.data("cmstpv_global_hide_timer", hideTimer); 
    395465 
    396466}); 
Note: See TracChangeset for help on using the changeset viewer.