%PDF- %PDF-
Direktori : /home2/vacivi36/www2]/old/wp-content/plugins/simple-lightbox/includes/ |
Current File : //home2/vacivi36/www2]/old/wp-content/plugins/simple-lightbox/includes/class.component.php |
<?php /** * Component * @package Simple Lightbox * @subpackage Base * @author Archetyped */ class SLB_Component extends SLB_Base_Object { /* Properties */ /** * Pretty name * @var string */ protected $name = ''; protected $props_required = array(); private $props_required_base = array('id'); /* Get/Set */ /** * Set name * @param string $name Name * @return Current instance */ public function set_name($name) { if ( is_string($name) ) { $name = trim($name); if ( !empty($name) ) { $this->name = $name; } } return $this; } public function get_name() { return $this->name; } public function set_scripts($scripts) { $this->add_files('scripts', $scripts); } public function set_styles($styles) { $this->add_files('styles', $styles); } /* Assets */ /** * Get formatted handle for file * @param string $base_handle Base handle to format * @return string Formatted handle */ public function get_handle($base_handle) { return $this->add_prefix( array('asset', $this->get_id(), $base_handle), '-'); } /** * Enqueue files in client * @param string $type (optional) Type of file to load (singular) (Default: All client file types) */ public function enqueue_client_files($type = null) { if ( empty($type) ) { $type = array ( 'script', 'style'); } if ( !is_array($type) ) { $type = array ( $type ); } foreach ( $type as $t ) { $m = (object) array ( 'get' => $this->m('get_' . $t . 's'), 'enqueue' => 'wp_enqueue_' . $t, ); $v = $this->util->get_plugin_version(); $files = call_user_func($m->get); $param_final = ( 'script' == $t ) ? true : 'all'; foreach ( $files as $f ) { $f = (object) $f; // Format handle $handle = $this->get_handle($f->handle); // Format dependencies $deps = array(); foreach ( $f->deps as $dep ) { if ( $this->util->has_wrapper($dep) ) { $dep = $this->get_handle( $this->util->remove_wrapper($dep) ); } $deps[] = $dep; } call_user_func($m->enqueue, $handle, $f->uri, $deps, $v, $param_final); } unset($files, $f, $param_final, $handle, $deps, $dep); } } /** * Enqueue scripts */ public function enqueue_scripts() { $this->enqueue_client_files('script'); } /** * Enqueue styles */ public function enqueue_styles() { $this->enqueue_client_files('style'); } /* Helpers */ /** * Validate instance * @see `Base_Object::is_valid()` * @return bool Valid (TRUE) / Invalid (FALSE) */ public function is_valid() { $ret = parent::is_valid(); if ( $ret ) { // Check required component properties $props = array_merge($this->props_required_base, $this->props_required); foreach ( $props as $prop ) { if ( !isset($this->{$prop}) || empty($this->{$prop}) ) { $ret = false; break; } } } return $ret; } }