Esempio n. 1
0
 /**
  * @return string
  */
 public function getPanel()
 {
     $groups = array();
     $empty = true;
     $translated = $this->translator->getTranslated();
     foreach ($this->groups as $name => $pattern) {
         $group = array();
         $translated = array_filter($translated, function ($translation) use(&$group, $pattern) {
             if (preg_match('/' . $pattern . '/', $translation)) {
                 $group[] = $translation;
                 return false;
             } else {
                 return true;
             }
         });
         if ($empty && !empty($group)) {
             $empty = false;
         }
         $groups[$name] = array('collapsed' => true, 'data' => $group);
     }
     $groups['Untranslated'] = array('collapsed' => false, 'data' => $this->translator->getUntranslated());
     $groups['Translated'] = array('collapsed' => false, 'data' => $translated);
     if (count($groups['Untranslated']['data']) === 0 && count($groups['Translated']['data']) === 0 && $empty) {
         return null;
     }
     $translator = $this->translator;
     $link = $this->application->getPresenter()->link('this');
     $xhrHeader = self::XHR_HEADER;
     $ajaxActionKey = self::AJAX_ACTION_KEY;
     $ajaxMessageKey = self::AJAX_MESSAGE_KEY;
     $ajaxTranslationKey = self::AJAX_TRANSLATION_KEY;
     $ajaxActionLoad = self::AJAX_ACTION_LOAD;
     $ajaxActionEdit = self::AJAX_ACTION_EDIT;
     $cookieDebugKey = self::COOKIE_DEBUG_KEY;
     $checkMessage = function ($message) {
         return preg_match('/^[a-zA-Z0-9._]+$/', $message) > 0;
     };
     ob_start();
     require __DIR__ . '/panel.phtml';
     return ob_get_clean();
 }