示例#1
0
    public function print_field($field, $data, $object)
    {
        $user = FW4_User::get_user();
        if (!isset($data->id)) {
            $has_siblings = false;
            foreach ($field->xpath('following-sibling::*') as $sibling) {
                if ($sibling->getName() == 'header') {
                    break;
                }
                if (isset($sibling['require']) && $user->id !== 0) {
                    $require_fields = explode('.', $sibling['require']);
                    $require_field = $user;
                    foreach ($require_fields as $current_field) {
                        if (isset($require_field[$current_field]) && $require_field[$current_field]) {
                            $require_field = $require_field[$current_field];
                        } else {
                            $require_field = false;
                            break;
                        }
                    }
                    if (!$require_field) {
                        continue;
                    }
                }
                if ($sibling->getName() != 'object' && $sibling->getName() != 'recursive' && $sibling->getName() != 'slug' && $sibling->getName() != 'family') {
                    $has_siblings = true;
                }
            }
            if (!$has_siblings) {
                return false;
            }
        } else {
            $has_siblings = false;
            foreach ($field->xpath('following-sibling::*') as $sibling) {
                if ($sibling->getName() == 'header') {
                    break;
                }
                if (isset($sibling['require']) && $user->id !== 0) {
                    $require_fields = explode('.', $sibling['require']);
                    $require_field = $user;
                    foreach ($require_fields as $current_field) {
                        if (isset($require_field[$current_field]) && $require_field[$current_field]) {
                            $require_field = $require_field[$current_field];
                        } else {
                            $require_field = false;
                            break;
                        }
                    }
                    if (!$require_field) {
                        continue;
                    }
                }
                if (isset($object['is_version']) && $sibling->getName() == 'object') {
                    continue;
                }
                if ($sibling->getName() == 'recursive' && (isset($sibling['levels']) && FW4_Admin::$recursive_levels >= $sibling['levels'] || isset($object['editing_disabled']))) {
                    continue;
                }
                if ($sibling->getName() == 'family' && isset($object['editing_disabled'])) {
                    continue;
                }
                if ($sibling->getName() != 'slug' && $sibling->getName() != 'creator' && $sibling->getName() != 'export') {
                    $has_siblings = true;
                }
            }
            if (!$has_siblings) {
                return false;
            }
        }
        FW4_Admin::$has_headers = true;
        ?>
    	<h2><?php 
        echo strval($field);
        ?>
</h2><?php 
    }