protected function addShiftRank(&$script) { $useScope = $this->behavior->useScope(); $peerClassname = $this->peerClassname; $script .= "\n/**\n * Adds \$delta to all Rank values that are >= \$first and <= \$last.\n * '\$delta' can also be negative.\n *\n * @param int \$delta Value to be shifted by, can be negative\n * @param int \$first First node to be shifted\n * @param int \$last Last node to be shifted"; if ($useScope) { $script .= "\n * @param mixed \$scope Scope to use for the shift. Scalar value (single scope) or array"; } $script .= "\n * @param PropelPDO \$con Connection to use.\n */\npublic static function shiftRank(\$delta, \$first = null, \$last = null, " . ($useScope ? "\$scope = null, " : "") . "PropelPDO \$con = null)\n{\n if (\$con === null) {\n \$con = Propel::getConnection({$peerClassname}::DATABASE_NAME, Propel::CONNECTION_WRITE);\n }\n\n \$whereCriteria = {$this->queryClassname}::create();\n if (null !== \$first) {\n \$whereCriteria->add({$peerClassname}::RANK_COL, \$first, Criteria::GREATER_EQUAL);\n }\n if (null !== \$last) {\n \$whereCriteria->addAnd({$peerClassname}::RANK_COL, \$last, Criteria::LESS_EQUAL);\n }"; if ($useScope) { $script .= "\n {$this->peerClassname}::sortableApplyScopeCriteria(\$whereCriteria, \$scope);"; } $script .= "\n\n \$valuesCriteria = new Criteria({$peerClassname}::DATABASE_NAME);\n \$valuesCriteria->add({$peerClassname}::RANK_COL, array('raw' => {$peerClassname}::RANK_COL . ' + ?', 'value' => \$delta), Criteria::CUSTOM_EQUAL);\n\n {$this->builder->getPeerBuilder()->getBasePeerClassname()}::doUpdate(\$whereCriteria, \$valuesCriteria, \$con);\n {$peerClassname}::clearInstancePool();\n}\n"; }