Airship\Cabin\Bridge\Blueprint\Blog::createSeries PHP Method

createSeries() public method

Inserts a new series, and the subsequent items, in the database
public createSeries ( array $post ) : boolean
$post array
return boolean
    public function createSeries(array $post) : bool
    {
        $this->db->beginTransaction();
        $series = $this->db->insertGet('hull_blog_series', ['name' => $post['name'], 'author' => $post['author'], 'slug' => $this->makeGenericSlug($post['name'], 'hull_blog_series'), 'preamble' => $post['preamble'] ?? '', 'format' => $post['format'] ?? 'Rich Text', 'config' => $post['config'] ? \json_encode($post['config']) : '[]'], 'seriesid');
        $insert = ['parent' => $series];
        $listOrder = 0;
        foreach (\explode(',', $post['items']) as $item) {
            if (\strpos($item, '_') === false) {
                continue;
            }
            list($type, $itemId) = \explode('_', $item);
            if ($type === 'series') {
                $_insert = $insert;
                $_insert['series'] = (int) $itemId;
            } elseif ($type === 'blogpost') {
                $_insert = $insert;
                $_insert['post'] = (int) $itemId;
            } else {
                continue;
            }
            $_insert['listorder'] = ++$listOrder;
            $this->db->insert('hull_blog_series_items', $_insert);
        }
        return $this->db->commit();
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * Create a new series
  *
  * @param array $post
  * @param array $authorsAllowed
  * @return bool
  */
 protected function processNewSeries(array $post = [], array $authorsAllowed = []) : bool
 {
     if (!\Airship\all_keys_exist(['author', 'items'], $post)) {
         return false;
     }
     if (!\in_array($post['author'], $authorsAllowed)) {
         return false;
     }
     return $this->blog->createSeries($post);
 }