예제 #1
0
파일: Gear.php 프로젝트: brussens/cogear2
 /**
  * Активация шестеренки
  */
 public function enable()
 {
     $result = new Core_ArrayObject(array('success' => TRUE, 'message' => t('Шестеренка активирована!'), 'code' => 1, 'gears' => new Core_ArrayObject()));
     if ($this->status() != Gears::DISABLED) {
         $result->message = t('Шестеренка уже активирована!');
         $result->success = FALSE;
     }
     if ($this->required && FALSE === $this->required->success) {
         $gears_required = new Core_ArrayObject();
         $gears_incomp_version = new Core_ArrayObject();
         $gears_incomp = new Core_ArrayObject();
         foreach ($this->required->gears as $gear) {
             // Несовместимые шестерйнки
             if (Gears::ERROR_INCOMP === $gear->success) {
                 $gears_incomp->append($gear->name);
             }
             // Шестерёнки неправильных версий
             if (Gears::ERROR_VERSION === $gear->success) {
                 $gears_incomp_version->append($gear->name);
             }
             // Необходимые шестерёнки
             if (Gears::ERROR_REQUIRED === $gear->success) {
                 $gears_required->append($gear->name);
             }
         }
         $gears_required->count() && ($result->message = t('Следующие шестерёнки должны быть активированы: ') . '<span class="label label-important">' . $gears_required->toString("</span> <span class='label label-important'>") . "</span>");
         $gears_incomp_version->count() && ($result->message .= '<br/>' . t('Следующие шестеренки должны быть соответствующих версий: ') . '<span class="label label-important">' . $gears_incomp_version->toString("</span> <span class='label label-important'>") . "</span>");
         $gears_incomp->count() && ($result->message .= t('Следующие шестеренки должны быть отключены: ') . '<span class="label label-important">' . $gears_incomp->toString("</span> <span class='label label-important'>") . "</span>");
         $result->success = FALSE;
     }
     $result->success && $this->status(Gears::ENABLED);
     event('gear.enable', $this, $result);
     return $result;
 }