public static function addNewRolesNames($roleNames, $deleteOther = false) { // unset meta- roles if ($i = array_search('login', $roleNames)) { unset($roleNames[$i]); } if (!is_array($roleNames) || empty($roleNames)) { return; } $filter = new ARSelectFilter(); $deleteFilter = new ARDeleteFilter(); $condition = new EqualsCond(new ARFieldHandle(__CLASS__, "name"), $roleNames[0]); $deleteCondition = new NotEqualsCond(new ARFieldHandle(__CLASS__, "name"), $roleNames[0]); foreach ($roleNames as $roleName) { $condition->addOR(new EqualsCond(new ARFieldHandle(__CLASS__, "name"), $roleName)); $deleteCondition->addAnd(new NotEqualsCond(new ARFieldHandle(__CLASS__, "name"), $roleName)); } $filter->setCondition($condition); $deleteFilter->setCondition($deleteCondition); if ($deleteOther) { self::deleteRecordSet(__CLASS__, $deleteFilter); } // Find new roles $invertedRoleNames = array_flip($roleNames); foreach (self::getRecordSet($filter) as $role) { if (isset($invertedRoleNames[$role->name->get()])) { unset($invertedRoleNames[$role->name->get()]); } } // Add new roles to database foreach ($invertedRoleNames as $role => $value) { if (!empty($role)) { $newRole = Role::getNewInstance($role); $newRole->save(); } } }
public static function isCouponCodes() { $c = new NotEqualsCond(new ARFieldHandle(__CLASS__, 'couponCode'), ''); $c->addAND(new EqualsCond(new ARFieldHandle(__CLASS__, 'isEnabled'), 1)); return ActiveRecordModel::getRecordCount(__CLASS__, new ARSelectFilter($c)); }