Newscoop\Subscription\Subscription::addSections PHP Method

addSections() public method

Add sections
public addSections ( array $values, Publication $publication ) : void
$values array
$publication Newscoop\Entity\Publication
return void
    public function addSections(array $values, \Newscoop\Entity\Publication $publication)
    {
        $languages = array();
        if (!empty($values['individual_languages']) && $values['individual_languages']) {
            $languages = $values['languages'];
            if (empty($languages)) {
                throw new \InvalidArgumentException("No languages set for individual languages");
            }
        }
        foreach ($publication->getIssues() as $issue) {
            if (!empty($languages) && !in_array($issue->getLanguageId(), $languages)) {
                continue;
            }
            foreach ($issue->getSections() as $section) {
                if ($this->hasSection($section, $languages)) {
                    continue;
                }
                $subSection = new Section($this, $section->getNumber());
                $subSection->setStartDate(new \DateTime($values['start_date']));
                $subSection->setDays($values['days']);
                if ($this->isTrial() || $values['type'] === self::TYPE_PAID_NOW) {
                    $subSection->setPaidDays($values['days']);
                }
                if (!empty($languages)) {
                    $subSection->setLanguage($issue->getLanguage());
                }
            }
        }
    }

Usage Example

 public function addSections(array $values, \Newscoop\Entity\Publication $publication)
 {
     $this->__load();
     return parent::addSections($values, $publication);
 }