OwlCyberSecurity - MANAGER
Edit File: Block.php
<?php /** * @copyright Copyright (c) 2009-2022 ThemeCatcher (https://www.themecatcher.net) */ class Quform_Block { /** * @var Quform_Form_Controller */ protected $controller; /** * @var Quform_Repository */ protected $repository; /** * @param Quform_Form_Controller $controller * @param Quform_Repository $repository */ public function __construct(Quform_Form_Controller $controller, Quform_Repository $repository) { $this->controller = $controller; $this->repository = $repository; } /** * Register the block */ public function register() { if ( ! function_exists('register_block_type')) { return; } $asset = include QUFORM_ADMIN_PATH . '/js/block/build/index.asset.php'; wp_register_script( 'quform-block', Quform::adminUrl('js/block/build/index.js'), $asset['dependencies'], $asset['version'], true ); wp_localize_script('quform-block', 'quformBlockL10n', array( 'forms' => $this->getForms() )); if (function_exists('gutenberg_get_jed_locale_data')) { $localeData = json_encode(gutenberg_get_jed_locale_data('quform')); wp_add_inline_script( 'quform-block', "wp.i18n.setLocaleData($localeData, 'quform')", 'before' ); } if (function_exists('wp_set_script_translations')) { wp_set_script_translations('quform-block', 'quform', QUFORM_PATH . '/languages'); } register_block_type('quform/form', array( 'editor_script' => 'quform-block', 'render_callback' => array($this, 'render') )); } /** * Get the forms to select from * * @return array */ protected function getForms() { $orderBy = get_user_meta(get_current_user_id(), 'quform_forms_order_by', true); $order = get_user_meta(get_current_user_id(), 'quform_forms_order', true); $forms = array(array('value' => '', 'label' => __('Please select', 'quform'))); foreach ($this->repository->all(true, $orderBy, $order) as $form) { $forms[] = array('value' => $form['id'], 'label' => $form['name']); } return $forms; } /** * Render the block * * @param array $attributes * @param string $content * @return string */ public function render($attributes, $content) { $options = wp_parse_args($attributes, array( 'id' => '', 'show_title' => true, 'show_description' => true, 'popup' => false, 'content' => '', 'values' => '' )); return $this->controller->form($options); } }