Airship\Cabin\Bridge\Landing\Account::preferences PHP Method

preferences() public method

Allows users to select which Motif to use
public preferences ( )
    public function preferences()
    {
        if (!$this->isLoggedIn()) {
            \Airship\redirect($this->airship_cabin_prefix);
        }
        $prefs = $this->acct->getUserPreferences($this->getActiveUserId());
        $cabins = [];
        $motifs = [];
        foreach ($this->getCabinNamespaces() as $cabin) {
            $cabins[] = $cabin;
            $filename = ROOT . '/tmp/cache/' . $cabin . '.motifs.json';
            if (\file_exists($filename)) {
                $motifs[$cabin] = \Airship\loadJSON($filename);
            } else {
                $motifs[$cabin] = [];
            }
        }
        $post = $this->post(PreferencesFilter::fromConfig($cabins, $motifs));
        if (!empty($post)) {
            if ($this->savePreferences($post['prefs'], $cabins, $motifs)) {
                \Airship\redirect($this->airship_cabin_prefix . '/my/preferences');
            }
        }
        $this->lens('preferences', ['prefs' => $prefs, 'motifs' => $motifs]);
    }