public function contains(Option $opt)
 {
     foreach ($this->options as $o) {
         if ($o->getIconSelectAttributeOptionID() == $opt->getIconSelectAttributeOptionID()) {
             return true;
         }
     }
     return false;
 }
 public function submit()
 {
     $extractor = Core::make('multilingual/extractor');
     if ($this->post('action') == 'reload') {
         if (Core::make('token')->validate()) {
             // First, we look in all the site sources for PHP code with GetText
             $baseTranslations = $extractor->extractTranslatableSiteStrings();
             //Attach new translation files
             $icontranslations = \Concrete\Package\IconSelector\Attribute\IconSelector\Option::exportTranslations();
             $baseTranslations->mergeWith($icontranslations);
             // $translations contains all of our site translations.
             $list = Section::getList();
             $defaultSourceLocale = Config::get('concrete.multilingual.default_source_locale');
             foreach ($list as $section) {
                 /* @var $section \Concrete\Core\Multilingual\Page\Section\Section */
                 if ($section->getLocale() != $defaultSourceLocale) {
                     $localeTranslations = clone $baseTranslations;
                     /* @var $localeTranslations \Gettext\Translations */
                     $localeTranslations->setLanguage($section->getLocale());
                     $localeTranslations->setPluralForms($section->getNumberOfPluralForms(), $section->getPluralsRule());
                     // now we load the translations that currently exist for each section
                     $extractor->mergeTranslationsWithSectionFile($section, $localeTranslations);
                     $extractor->mergeTranslationsWithCore($section, $localeTranslations);
                     $extractor->mergeTranslationsWithPackages($section, $localeTranslations);
                     $extractor->saveSectionTranslationsToFile($section, $localeTranslations);
                     // now that we've updated the translation file, we take all the translations and
                     // we insert them into the database so we can update our counts, and give the users
                     // a web interface
                     $extractor->saveSectionTranslationsToDatabase($section, $localeTranslations);
                 }
             }
             $this->redirect('/dashboard/system/multilingual/translate_interface', 'reloaded');
         } else {
             $this->error->add(Core::make('token')->getErrorMessage());
         }
     }
     if ($this->post('action') == 'export') {
         if (Core::make('token')->validate()) {
             $defaultSourceLocale = Config::get('concrete.multilingual.default_source_locale');
             $list = Section::getList();
             foreach ($list as $section) {
                 if ($section->getLocale() != $defaultSourceLocale) {
                     $translations = $section->getSectionInterfaceTranslations();
                     $extractor->mergeTranslationsWithSectionFile($section, $translations);
                     $extractor->saveSectionTranslationsToFile($section, $translations);
                 }
             }
             \Localization::clearCache();
             $this->redirect('/dashboard/system/multilingual/translate_interface', 'exported');
         } else {
             $this->error->add(Core::make('token')->getErrorMessage());
         }
     }
     $this->view();
 }
 public function filterByAttribute(AttributedItemList $list, $value, $comparison = '=')
 {
     if ($value instanceof Option) {
         $option = $value;
     } else {
         $option = Option::getByValue($value);
     }
     if (is_object($option)) {
         $column = 'ak_' . $this->attributeKey->getAttributeKeyHandle();
         $qb = $list->getQueryObject();
         $qb->andWhere($qb->expr()->like($column, ':iconOptionValue'));
         $qb->setParameter('iconOptionValue', "%\n" . $option->getIconSelectAttributeOptionValue() . "\n%");
     }
 }
 public function saveOrCreate($ak)
 {
     if ($this->tempID != false || $this->oid == 0) {
         return Option::add($ak, $this->optValue, $this->optIcon);
     } else {
         $db = Loader::db();
         $th = Loader::helper('text');
         $db->Execute('update atIconSelectorOptions set optValue = ? where oid = ?', array($th->sanitize($this->optValue), $this->oid));
         return Option::getByID($this->oid);
     }
 }