示例#1
0
文件: aTools.php 项目: verenate/gri
 public static function getGlobalButtons()
 {
     if (self::$globalButtons !== false) {
         return self::$globalButtons;
     }
     $buttonsOrder = sfConfig::get('app_a_global_button_order', false);
     self::$globalButtons = array();
     // We could pass parameters here but it's a simple static thing in this case
     // so the recipients just call back to addGlobalButtons
     sfContext::getInstance()->getEventDispatcher()->notify(new sfEvent(null, 'a.getGlobalButtons', array()));
     $buttonsByName = array();
     foreach (self::$globalButtons as $button) {
         $buttonsByName[$button->getName()] = $button;
     }
     if ($buttonsOrder === false) {
         ksort($buttonsByName);
         $orderedButtons = array_values($buttonsByName);
     } else {
         $orderedButtons = array();
         foreach ($buttonsOrder as $name) {
             if (isset($buttonsByName[$name])) {
                 $orderedButtons[] = $buttonsByName[$name];
             }
         }
     }
     self::$globalButtons = $orderedButtons;
     return $orderedButtons;
 }
示例#2
0
 /**
  * Returns global buttons as an associative array by button name.
  * Ignores app_a_global_button_order. For use by those who prefer to
  * override the _globalTools partial. Note that you will NOT get the
  * same buttons for every user! An admin has more buttons than a
  * mere editor and so on. Use isset()
  * @return mixed
  */
 public static function getGlobalButtonsByName()
 {
     if (aTools::$globalButtons === false) {
         aTools::$globalButtons = array();
         // We could pass parameters here but it's a simple static thing in this case
         // so the recipients just call back to addGlobalButtons
         sfContext::getInstance()->getEventDispatcher()->notify(new sfEvent(null, 'a.getGlobalButtons', array()));
     }
     $labelOverrides = sfConfig::get('app_a_global_button_labels', null);
     if (is_array($labelOverrides)) {
         foreach ($labelOverrides as $key => $label) {
             if (isset(aTools::$globalButtons[$key])) {
                 if (is_array($label)) {
                     // i18n
                     aTools::$globalButtons[$key]->setLabel($label[aTools::getUserCulture()]);
                 } else {
                     aTools::$globalButtons[$key]->setLabel($label);
                 }
             }
         }
     }
     return aTools::$globalButtons;
 }