/**
  * 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);
 }
Esempio n. 2
0
 /**
  * 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);
 }
Esempio n. 3
0
/**
 * 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);
 }