| 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/plugins.off/sureforms/inc/blocks/ |
Upload File : |
<?php
/**
* Call block registration.
*
* @package SureForms
*/
namespace SRFM\Inc\Blocks;
use SRFM\Inc\Traits\Get_Instance;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
/**
* Manage Blocks registrations.
*
* @since 0.0.1
*/
class Register {
use Get_Instance;
/**
* Constructor
*
* @since 0.0.1
*/
public function __construct() {
$blocks = [
[
'dir' => SRFM_DIR . 'inc/blocks/**/*.php',
'namespace' => 'SRFM\\Inc\\Blocks',
],
];
// Filter to add and register additional blocks. Like Signature block.
$additional_blocks = apply_filters( 'srfm_register_additional_blocks', [] );
// Merge additional blocks with the default blocks. When the additional blocks are not empty.
if ( ! empty( $additional_blocks ) && count( $additional_blocks ) > 0 ) {
$blocks = [ ...$blocks, ...$additional_blocks ];
}
foreach ( $blocks as $block ) {
// Register the block.
$this->register_block( glob( $block['dir'] ), $block['namespace'], 'Block' );
}
}
/**
* Register Blocks
*
* @param array<int, string>|false $blocks_dir Block directory.
* @param string $namespace Namespace.
* @param string $base Base.
* @return void
* @since 0.0.1
*/
public static function register_block( $blocks_dir, $namespace, $base ) {
if ( ! empty( $blocks_dir ) ) {
foreach ( $blocks_dir as $filename ) {
// Include the file.
require_once $filename;
// Replace hyphens with underscores.
$classname = str_replace( '-', '_', basename( dirname( $filename ) ) );
// Convert to title case (capitalizes the first letter of each word).
$classname = ucwords( $classname, '_' );
$full_class_name = $namespace . '\\' . $classname . '\\' . $base;
// Check if the class exists.
if ( class_exists( $full_class_name ) ) {
$block = new $full_class_name();
// Check if the register method exists.
if ( method_exists( $block, 'register' ) ) {
// Call register on the block object.
$block->register();
}
}
}
}
}
}