/** * Setup options * * @param array $options */ private function setup_options($options) { $options = empty($options) ? [] : $options; $options = array_merge($this->default_options, $options); $this->options = (object) $options; $this->options->title = ucfirst($this->options->title); $this->options->slug = papi_slugify($this->options->title); $this->options->_id = $this->get_meta_box_id($this->options->slug); $this->options->_post_type = $this->populate_post_type($this->options->_post_type); }
/** * Setup options slug. * * @param stdClass $options * * @return string */ private function setup_options_slug($options) { $slug = $options->slug; // When `slug` is false or not required a unique slug should be generated. if ($slug === false || empty($slug) && $this->slug_required === false) { return '_' . papi_html_name(md5(uniqid(rand(), true))); } // If `slug` is empty, check if `title` is not empty // and generate a slug from the `title` or if empty // use the `type`. if (empty($slug)) { if (empty($options->title)) { $slug = papi_slugify($options->type); } else { $slug = papi_slugify($options->title); } } // Create a html friendly name from the `slug`. return papi_html_name($slug); }
/** * Get a php friendly name. * * @param string $name * * @return string */ function papi_html_name($name) { if (!is_string($name)) { return ''; } if (!preg_match('/^\\_\\_papi|^\\_papi/', $name)) { $name = papify($name); if (!preg_match('/\\[.*\\]/', $name)) { $name = papi_slugify($name); } return papi_underscorify($name); } return $name; }
/** * Setup options slug. * * @param stdClass $options * * @return string */ private function setup_options_slug($options) { $slug = $options->slug; if (empty($slug)) { if (empty($options->title)) { $slug = papi_slugify($options->type); } else { $slug = papi_slugify($options->title); } } return $slug === 'papi_' ? '' : papi_html_name($slug); }
/** * Prepare properties. * * Not the best name for this function, but since * property repeater using this we can't rename it. * * @param array $layouts * * @return array */ protected function prepare_properties($layouts) { $layouts = array_map(function ($layout) { return (array) $layout; }, $layouts); foreach ($layouts as $index => $layout) { if (!$this->valid_layout($layout)) { if (is_array($layout)) { unset($layout[$index]); } else { unset($layouts[$index]); } continue; } if (!isset($layout['slug'])) { $layout['slug'] = $layout['title']; } $layouts[$index]['slug'] = papi_slugify($layout['slug']); $layouts[$index]['slug'] = $this->get_layout_value($layouts[$index]['slug']); $layouts[$index]['items'] = parent::prepare_properties($layout['items']); } return array_filter($layouts); }