| Server IP : 47.82.179.145 / Your IP : 216.73.217.129 Web Server : nginx/1.26.3 System : Linux iZt4n9czhka2zvqfajdlr2Z 6.8.0-63-generic #66-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 13 20:25:30 UTC 2025 x86_64 User : www ( 1001) PHP Version : 8.3.30 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /www/wwwroot/scuipturepactory.com/wp-content/themes/colibri-wp/inc/src/Core/ |
Upload File : |
<?php
namespace ColibriWP\Theme\Core;
class Tree {
const SEPARATOR = ".";
private $data;
public function __construct( $data = array() ) {
$this->data = $data;
}
public function walkFirstLevel( $callback ) {
$this->walkElementsAt( "", $callback );
}
public function walkElementsAt( $path, $callback ) {
$data = $this->getData();
if ( ! empty( $path ) ) {
$data = $this->findAt( $path, array() );
}
if ( is_array( $data ) ) {
foreach ( $data as $key => $item ) {
call_user_func( $callback, $key, $item );
}
}
}
/**
* @return array
*/
public function getData() {
return $this->data;
}
/**
* @param array $data
*
* @return Tree
*/
public function setData( $data ) {
$this->data = $data;
return $this;
}
public function findAt( $path, $default = null ) {
$path_parts = explode( Tree::SEPARATOR, $path );
$result = $this->data;
if ( $path === '' ) {
return $result;
}
while ( $path_parts ) {
$part = array_shift( $path_parts );
if ( $this->entityHasKey( $result, $part ) ) {
if ( is_array( $result ) ) {
$result = $result[ $part ];
} else {
$result = $result->$part;
}
} else {
$result = $default;
break;
}
}
return $result;
}
/**
* @param $entity
* @param $key
*
* @return bool
*/
private function entityHasKey( $entity, $key ) {
if ( is_array( $entity ) && array_key_exists( $key, $entity ) ) {
return true;
}
if ( is_object( $entity ) && property_exists( $entity, $key ) ) {
return true;
}
return false;
}
}