Learn more  » Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

jsarnowski / jsarnowski/jet-engine   php

Repository URL to install this package:

Version: 2.7.7 

/ components / glossaries / forms.php

<?php
namespace Jet_Engine\Glossaries;

/**
 * Meta fields compatibility class
 */

// If this file is called directly, abort.
if ( ! defined( 'WPINC' ) ) {
	die;
}

class Forms {

	public function __construct() {
		add_filter( 'jet-engine/forms/editor/field-options-sources', array( $this, 'register_source' ) );
		add_action( 'jet-engine/forms/editor/field-options-controls', array( $this, 'register_controls' ) );
		add_filter( 'jet-engine/forms/field-options', array( $this, 'apply_glossary_options' ), 10, 2 );
	}

	public function apply_glossary_options( $options, $args ) {

		if ( ! empty( $args['field_options_from'] ) && 'glossary' === $args['field_options_from'] && ! empty( $args['glossary_id'] ) ) {

			$glossary = jet_engine()->glossaries->data->get_item_for_edit( absint( $args['glossary_id'] ) );

			if ( ! empty( $glossary ) && ! empty( $glossary['fields'] ) ) {
				$options = $glossary['fields'];
			}
		}

		return $options;
	}

	public function register_source( $sources = array() ) {
		$sources['glossary'] = __( 'Glossary', 'jet-engine' );
		return $sources;
	}

	public function register_controls() {
		?>
		<div class="jet-form-editor__row"
			v-if="inArray( currentItem.settings.type, [ 'select', 'checkboxes', 'radio' ] ) && 'glossary' === currentItem.settings.field_options_from"
		>
			<div class="jet-form-editor__row-label"><?php _e( 'Select Glossary:', 'jet-engine' ); ?></div>
			<div class="jet-form-editor__row-control">
				<select v-model="currentItem.settings.glossary_id">
					<option value=""><?php _e( 'Select glossary...', 'jet-engine' ); ?></option>
					<?php
						foreach ( jet_engine()->glossaries->settings->get() as $glossary ) {
							printf( '<option value="%1$s">%2$s</option>', $glossary['id'], $glossary['name'] );
						}
					?>
				</select>
			</div>
		</div>
		<?php
	}

}