123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356 |
- <?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 ] );
- }
- }
- }
- endif;
|