protected function initInternal() { parent::initInternal(); $this->ui->loadFromXML($this->ui_xml); $instance_id = $this->app->getInstanceId(); // setup tag entry control $this->ui->getWidget('search_tags')->setApplication($this->app); $this->ui->getWidget('search_tags')->setAllTags(); // setup status list $search_status_flydown = $this->ui->getWidget('search_status'); $search_status_flydown->addOptionsByArray(array('published' => PinholePhoto::getStatusTitle(PinholePhoto::STATUS_PUBLISHED), 'hidden' => PinholePhoto::getStatusTitle(PinholePhoto::STATUS_UNPUBLISHED), 'private' => Pinhole::_('Private'), 'public' => Pinhole::_('Public'), 'for_sale' => Pinhole::_('For-Sale'), 'not_for_sale' => Pinhole::_('Not For-Sale'))); }
protected function initInternal() { parent::initInternal(); $this->ui->loadFromXML($this->ui_xml); $instance_id = $this->app->getInstanceId(); // setup tag entry controls $this->ui->getWidget('tags')->setApplication($this->app); $this->ui->getWidget('tags')->setAllTags(); $this->ui->getWidget('search_tags')->setApplication($this->app); $this->ui->getWidget('search_tags')->setAllTags(); // setup status list $status_flydown = $this->ui->getWidget('status_flydown'); $status_flydown->addOptionsByArray(PinholePhoto::getStatuses()); $search_status_flydown = $this->ui->getWidget('search_status'); $search_status_flydown->addOptionsByArray(array('published' => PinholePhoto::getStatusTitle(PinholePhoto::STATUS_PUBLISHED), 'hidden' => PinholePhoto::getStatusTitle(PinholePhoto::STATUS_UNPUBLISHED), 'private' => Pinhole::_('Private'), 'public' => Pinhole::_('Public'), 'for_sale' => Pinhole::_('For-Sale'), 'not_for_sale' => Pinhole::_('Not For-Sale'))); $this->ui->getWidget('passphrase_field')->visible = $this->app->config->pinhole->passphrase === null; $this->ui->getWidget('for_sale')->visible = $this->ui->getWidget('not_for_sale')->visible = $this->ui->getWidget('for_sale_divider')->visible = $this->app->config->clustershot->username !== null; }
/** * Processes actions on photos * * @param SwatTableView $view the view to process. * @param SwatActions $actions the list of actions. */ public function process($view, $actions, $ui) { switch ($actions->selected->id) { case 'delete': $this->page->app->replacePage('Photo/Delete'); $this->page->app->getPage()->setItems($view->getSelection(), $view->isExtendedCheckAllSelected()); break; case 'time': $this->page->app->replacePage('Photo/Time'); $this->page->app->getPage()->setItems($view->getSelection(), $view->isExtendedCheckAllSelected()); break; case 'private': if ($ui->getWidget('passphrase')->value !== null) { $this->page->app->config->pinhole->passphrase = md5($ui->getWidget('passphrase')->value); $this->page->app->config->save(array('pinhole.passphrase')); } if ($this->page->app->config->pinhole->passphrase !== null) { $photos = $this->getPhotos($view); $num = count($photos); foreach ($photos as $photo) { $photo->private = true; $photo->save(); } if (isset($this->page->app->memcache)) { $this->page->app->memcache->flushNs('photos'); } $message = new SwatMessage(sprintf(Pinhole::ngettext('One photo has been set as private.', '%s photos have been set as private.', $num), SwatString::numberFormat($num))); $this->page->app->messages->add($message); } break; case 'public': $photos = $this->getPhotos($view); $num = count($photos); foreach ($photos as $photo) { $photo->private = true; $photo->save(); } if (isset($this->page->app->memcache)) { $this->page->app->memcache->flushNs('photos'); } $message = new SwatMessage(sprintf(Pinhole::ngettext('One photo has been set as public.', '%s photos have been set as public.', $num), SwatString::numberFormat($num))); $this->page->app->messages->add($message); break; case 'for_sale': case 'not_for_sale': $photos = $this->getPhotos($view); $num = count($photos); foreach ($photos as $photo) { $photo->for_sale = $actions->selected->id == 'for_sale'; $photo->save(); } if (isset($this->page->app->memcache)) { $this->page->app->memcache->flushNs('photos'); } if ($actions->selected->id == 'for_sale') { $message = new SwatMessage(sprintf(Pinhole::ngettext('One photo has been set as for-sale.', '%s photos have been set as for-sale.', $num), SwatString::numberFormat($num))); } else { $message = new SwatMessage(sprintf(Pinhole::ngettext('One photo has been set as not for-sale.', '%s photos have been set as not for-sale.', $num), SwatString::numberFormat($num))); } $this->page->app->messages->add($message); break; case 'publish': case 'status_action': $photos = $this->getPhotos($view); $num = count($photos); if ($ui->hasWidget('status_flydown')) { $status = $ui->getWidget('status_flydown')->value; } else { $status = PinholePhoto::STATUS_PUBLISHED; } foreach ($photos as $photo) { $photo->setStatus($status); $photo->save(); } if (isset($this->page->app->memcache)) { $this->page->app->memcache->flushNs('photos'); } $message = new SwatMessage(sprintf(Pinhole::ngettext('One photo has been updated to “%2$s”.', '%1$s photos have been updated to “%2$s”.', $num), SwatString::numberFormat($num), PinholePhoto::getStatusTitle($status))); $this->page->app->messages->add($message); break; case 'tags_action': $tag_array = $ui->getWidget('tags')->getSelectedTagArray(); if (count($tag_array) > 0) { $photos = $this->getPhotos($view); $num = count($photos); foreach ($photos as $photo) { $photo->addTagsByName($tag_array); } if (isset($this->page->app->memcache)) { $this->page->app->memcache->flushNs('photos'); } if (count($tag_array) > 1) { $message = new SwatMessage(sprintf(Pinhole::ngettext('%s tags have been added to one photo.', '%s tags have been added to %s photos.', $num), SwatString::numberFormat(count($tag_array)), SwatString::numberFormat($num))); } else { $message = new SwatMessage(sprintf(Pinhole::ngettext('A tag has been added to one photo.', 'A tag has been added to %s photos.', $num), SwatString::numberFormat($num))); } $this->page->app->messages->add($message); } // reset tag list $ui->getWidget('tags')->setSelectedTagArray(array()); break; } }
protected function initStatuses() { $status = $this->ui->getWidget('status'); if ($this->photo->status == PinholePhoto::STATUS_PENDING) { $status->addOption(PinholePhoto::STATUS_PENDING, sprintf(Pinhole::_('Leave as %s'), PinholePhoto::getStatusTitle(PinholePhoto::STATUS_PENDING))); } $status->addOption(PinholePhoto::STATUS_PUBLISHED, PinholePhoto::getStatusTitle(PinholePhoto::STATUS_PUBLISHED)); $status->addOption(PinholePhoto::STATUS_UNPUBLISHED, PinholePhoto::getStatusTitle(PinholePhoto::STATUS_UNPUBLISHED)); }