/**
  * Deletes an existing LanguageSource model.
  * If deletion is successful, the browser will be redirected to the 'list' page.
  * @return json
  */
 public function run()
 {
     Yii::$app->response->format = Response::FORMAT_JSON;
     $ids = Yii::$app->request->post('ids');
     LanguageSource::deleteAll(['id' => (array) $ids]);
     return [];
 }
Пример #2
0
 /**
  * Removing unused language elements from database.
  * @return integer The number of removed language elements.
  */
 public function run()
 {
     $this->_scanner = new Scanner();
     $this->_scanner->run();
     $this->_scanner->stdout('Deleted language elements - BEGIN', Console::FG_RED);
     $languageSourceIds = $this->_scanner->getRemovableLanguageSourceIds();
     $this->_initLanguageElements($languageSourceIds);
     LanguageSource::deleteAll(['id' => $languageSourceIds]);
     $this->_scanner->stdout('Deleted language elements - END', Console::FG_RED);
     return count($languageSourceIds);
 }
Пример #3
0
 /**
  * Removing unused language elements from database.
  * @return integer The number of removed language elements.
  */
 private function _optimizeDatabase()
 {
     $scanner = new Scanner();
     $this->_languageItems = $scanner->getLanguageItems();
     $this->_createLanguageSource();
     // Removing active elements from array.
     // Only removable inactive elements left in array.
     foreach ($this->_languageItems as $category => $messages) {
         foreach ($messages as $message => $id) {
             if (isset($this->_languageSources[$category][$message])) {
                 unset($this->_languageSources[$category][$message]);
             }
         }
     }
     $ids = [];
     foreach ($this->_languageSources as $messages) {
         foreach ($messages as $id) {
             $ids[$id] = true;
             // Duplication filtering
         }
     }
     LanguageSource::deleteAll(['IN', 'id', array_keys($ids)]);
     return count($ids);
 }