예제 #1
0
 /**
  * Generates a "lock" symbol for the "Protected" column, if the current content
  * is protected. See WP's template.php -> display_page_row() for  more.
  *
  * @param type $column_name The name of the column to affect ('protected')
  * @param type $term_id The id of the page to check.
  */
 public static function render_term_protection_column($test, $column_name, $term_id)
 {
     //Only do this if we've got the right column
     if ($column_name === 'protected') {
         //If page is protected, return lock icon
         if (CTXPS_Queries::check_protection($term_id, 'term')) {
             CTX_Helper::img(array('alt' => __('Protected', 'contexture-page-security'), 'title' => __('Protected', 'contexture-page-security'), 'src' => CTXPSURL . 'images/protected-inline-2x.png', 'class' => "prot-icon prot-inline"));
         } else {
             if (CTXPS_Queries::check_term_protection($term_id, $_REQUEST['taxonomy'])) {
                 CTX_Helper::img(array('alt' => __('Protected (inherited)', 'contexture-page-security'), 'title' => __('Inheriting protection', 'contexture-page-security'), 'src' => CTXPSURL . 'images/protected-inline-descendant-2x.png', 'class' => "prot-icon prot-inline-descendant"));
             }
         }
     }
 }
예제 #2
0
        /**
         * JS is injected into post.php when action=edit in order to add an asterisk
         * to protected terms. This is very, very, very bad form, but there aren't the
         * necessary hooks to do this server side (well, there is, but its obviously
         * never been used for anything since it's very buggy), so it's either this or
         * nothing. In this case, I side with usability over good coding practices.
         *
         * @param type $term_name
         */
        public static function tag_protected_terms_heirarchal()
        {
            global $current_screen;
            if ($current_screen->base === 'post' && isset($_REQUEST['post'])) {
                ?>
<script type="text/javascript">jQuery(function(){<?php 
                //Get taxonomies for this post
                $taxonomies = get_post_taxonomies($_REQUEST['post']);
                //For each taxonomy, get a list of term ids used for this post
                foreach ($taxonomies as $tax) {
                    //Initialize vars
                    $terms = get_terms($tax);
                    $termlist = array();
                    //Build an array out of the term ids...
                    foreach ($terms as $term) {
                        //...but only if it's protected
                        if (CTXPS_Queries::check_term_protection($term->term_id, $tax)) {
                            $termlist[] = $term->term_id;
                        }
                    }
                    //Join the array into a CSV
                    $termlist = join(',', $termlist);
                    //Generate javascript to add asterisk to protected terms
                    if (!empty($termlist)) {
                        $tarray = "{$tax}_protect";
                        ?>
                        var <?php 
                        echo $tarray;
                        ?>
 = [<?php 
                        echo $termlist;
                        ?>
];
                        for(x in <?php 
                        echo $tarray;
                        ?>
){
                            jQuery('#<?php 
                        echo $tax;
                        ?>
div input[value="'+<?php 
                        echo $tarray;
                        ?>
[x]+'"]').parent().append('*');
                            jQuery('#<?php 
                        echo $tax;
                        ?>
div option[value="'+<?php 
                        echo $tarray;
                        ?>
[x]+'"]').append('*');
                        }
                    <?php 
                    }
                    //So there's no accidental carryovers
                    unset($terms, $termlist);
                }
                ?>
});</script><?php 
            }
            //Nothing to do
            return false;
        }