PodsForm::dependencies PHP Method

dependencies() public static method

Setup dependency / exclusion classes
Since: 2.0
public static dependencies ( array $options, string $prefix = '' ) : string
$options array array( 'depends-on' => ..., 'excludes-on' => ...)
$prefix string
return string
    public static function dependencies($options, $prefix = '')
    {
        $options = (array) $options;
        $depends_on = $excludes_on = array();
        if (isset($options['depends-on'])) {
            $depends_on = (array) $options['depends-on'];
        }
        if (isset($options['excludes-on'])) {
            $excludes_on = (array) $options['excludes-on'];
        }
        $classes = array();
        if (!empty($depends_on)) {
            $classes[] = 'pods-depends-on';
            foreach ($depends_on as $depends => $on) {
                $classes[] = 'pods-depends-on-' . $prefix . self::clean($depends, true);
                if (!is_bool($on)) {
                    $on = (array) $on;
                    foreach ($on as $o) {
                        $classes[] = 'pods-depends-on-' . $prefix . self::clean($depends, true) . '-' . self::clean($o, true);
                    }
                }
            }
        }
        if (!empty($excludes_on)) {
            $classes[] = 'pods-excludes-on';
            foreach ($excludes_on as $excludes => $on) {
                $classes[] = 'pods-excludes-on-' . $prefix . self::clean($excludes, true);
                $on = (array) $on;
                foreach ($on as $o) {
                    $classes[] = 'pods-excludes-on-' . $prefix . self::clean($excludes, true) . '-' . self::clean($o, true);
                }
            }
        }
        $classes = implode(' ', $classes);
        return $classes;
    }

Usage Example

Example #1
0
    /**
     * @param $post
     * @param $metabox
     */
    public function meta_post($post, $metabox)
    {
        wp_enqueue_style('pods-form');
        wp_enqueue_script('pods');
        $hidden_fields = array();
        ?>
    <table class="form-table pods-metabox pods-admin pods-dependency">
        <?php 
        $id = null;
        if (is_object($post) && false === strpos($_SERVER['REQUEST_URI'], '/post-new.php?')) {
            $id = $post->ID;
        }
        $pod = pods($metabox['args']['group']['pod']['name'], $id, true);
        foreach ($metabox['args']['group']['fields'] as $field) {
            if (false === PodsForm::permission($field['type'], $field['name'], $field['options'], $metabox['args']['group']['fields'], $pod, $id)) {
                if (pods_var('hidden', $field['options'], false, null, true)) {
                    $field['type'] = 'hidden';
                } else {
                    continue;
                }
            } elseif (!pods_has_permissions($field['options']) && pods_var('hidden', $field['options'], false, null, true)) {
                $field['type'] = 'hidden';
            }
            $value = '';
            if (!empty($pod)) {
                pods_no_conflict_on('post');
                $value = $pod->field(array('name' => $field['name'], 'in_form' => true));
                pods_no_conflict_off('post');
            } elseif (!empty($id)) {
                $value = get_post_meta($id, $field['name'], true);
            }
            if ('hidden' == $field['type']) {
                $hidden_fields[] = array('field' => $field, 'value' => $value);
            } else {
                $depends = PodsForm::dependencies($field, 'pods-meta-');
                ?>
            <tr class="form-field pods-field <?php 
                echo 'pods-form-ui-row-type-' . $field['type'] . ' pods-form-ui-row-name-' . Podsform::clean($field['name'], true);
                ?>
 <?php 
                echo $depends;
                ?>
">
                <th scope="row" valign="top"><?php 
                echo PodsForm::label('pods_meta_' . $field['name'], $field['label'], $field['help'], $field);
                ?>
</th>
                <td>
                    <?php 
                // Remove any extra ? help icons
                if (isset($field['help'])) {
                    unset($field['help']);
                }
                ?>
                    <?php 
                echo PodsForm::field('pods_meta_' . $field['name'], $value, $field['type'], $field, $pod, $id);
                ?>
                    <?php 
                echo PodsForm::comment('pods_meta_' . $field['name'], $field['description'], $field);
                ?>
                </td>
            </tr>
        <?php 
            }
        }
        ?>
    </table>

    <?php 
        foreach ($hidden_fields as $hidden_field) {
            $field = $hidden_field['field'];
            echo PodsForm::field('pods_meta_' . $field['name'], $hidden_field['value'], 'hidden');
        }
        ?>

    <input type="hidden" name="pods_metasave" value="1" />

    <script type="text/javascript">
        jQuery( function ( $ ) {
            $( document ).Pods( 'dependency', true );
        } );
    </script>
<?php 
    }
All Usage Examples Of PodsForm::dependencies