File "class-acf-data.php"

Full path: /home/kosmetik/public_html/wp-content/plugins/advanced-custom-fields/includes/class-acf-data.php
File size: 3.25 B
MIME-type: text/x-php
Charset: utf-8

Download   Open   Edit   Advanced Editor   Back

<?php

if (!defined('ABSPATH')) {
    exit;
}
if (!class_exists('ACF_Data')) {
    class ACF_Data
    {
        var $cid = '';
        var $data = array();
        var $aliases = array();
        var $multisite = false;
        function __construct($data = false)
        {
            $this->cid = acf_uniqid();
            if ($data) {
                $this->set($data);
            }
            $this->initialize();
        }
        function initialize()
        {
        }
        function prop($name = '', $value = null)
        {
            $this->{$name} = $value;
            return $this;
        }
        function _key($name = '')
        {
            return isset($this->aliases[$name]) ? $this->aliases[$name] : $name;
        }
        function has($name = '')
        {
            $key = $this->_key($name);
            return isset($this->data[$key]);
        }
        function is($key = '')
        {
            return isset($this->data[$key]);
        }
        function get($name = false)
        {
            if ($name === false) {
                return $this->data;
            } else {
                $key = $this->_key($name);
                return isset($this->data[$key]) ? $this->data[$key] : null;
            }
        }
        function get_data()
        {
            return $this->data;
        }
        function set($name = '', $value = null)
        {
            if (is_array($name)) {
                $this->data = array_merge($this->data, $name);
            } else {
                $this->data[$name] = $value;
            }
            return $this;
        }
        function append($value = null)
        {
            $this->data[] = $value;
            return $this;
        }
        function remove($name = '')
        {
            unset($this->data[$name]);
            return $this;
        }
        function reset()
        {
            $this->data = array();
            $this->aliases = array();
        }
        function count()
        {
            return count($this->data);
        }
        function query($args, $operator = 'AND')
        {
            return wp_list_filter($this->data, $args, $operator);
        }
        function alias($name = '')
        {
            $args = func_get_args();
            array_shift($args);
            foreach ($args as $alias) {
                $this->aliases[$alias] = $name;
            }
            return $this;
        }
        function switch_site($site_id, $prev_site_id)
        {
            if (!$this->multisite) {
                return;
            }
            if ($site_id === $prev_site_id) {
                return;
            }
            if (!isset($this->site_data)) {
                $this->site_data = array();
                $this->site_aliases = array();
            }
            $this->site_data[$prev_site_id] = $this->data;
            $this->site_aliases[$prev_site_id] = $this->aliases;
            $this->data = array();
            $this->aliases = array();
            if (isset($this->site_data[$site_id])) {
                $this->data = $this->site_data[$site_id];
                $this->aliases = $this->site_aliases[$site_id];
                unset($this->site_data[$site_id]);
                unset($this->site_aliases[$site_id]);
            }
        }
    }
}