defaults_settings['id'] = 'cx-control-' . uniqid(); $this->settings = wp_parse_args( $args, $this->defaults_settings ); $this->init(); add_action( 'wp_enqueue_scripts', array( $this, 'register_depends' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'register_depends' ) ); } /** * Render methos. Each UI element must implement own method * @return [type] [description] */ abstract public function render(); /** * Optional additional initializtion for control. Can be overriden from child class if needed. * @return [type] [description] */ public function init() {} /** * Retrun scripts dependencies list for current control. * * @return array */ public function get_script_depends() { return array(); } /** * Register required dependencies * * @return void */ public function register_depends() {} /** * Retrun styles dependencies list for current control. * * @return array */ public function get_style_depends() { return array(); } /** * Set up base URL for next usage * * @param string $url array */ public function set_base_url( $url = '' ) { $this->base_url = $url; } /** * Get control value * * @since 1.0.0 * @return string control value. */ public function get_value() { return $this->settings['value']; } /** * Set control value * * @since 1.0.0 * @param [type] $value new. */ public function set_value( $value ) { $this->settings['value'] = $value; } /** * Get control name * * @since 1.0.0 * @return string control name. */ public function get_name() { return $this->settings['name']; } /** * Set control name * * @since 1.0.0 * @param [type] $name new control name. * @throws Exception Invalid control name. */ public function set_name( $name ) { $name = (string) $name; if ( '' !== $name ) { $this->settings['name'] = $name; } else { throw new Exception( "Invalid control name '" . $name . "'. Name can't be empty." ); } } /** * Returns attributes string from attributes array * * @return string */ public function get_attr_string( $attr = array() ) { $result = array(); foreach ( $attr as $key => $value ) { if ( $key === $value ) { $result[] = $key; } else { $result[] = sprintf( '%1$s="%2$s"', $key, $value ); } } return implode( ' ', $result ); } } }