/** * Активация шестеренки */ 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; }