/** * Tests that updateSubTreePath() does not mess up a previously defined * alias for a node. */ public function testUpdateSubTreePathLeavesAliasesAlone() { $random = mt_rand(); $folder = new ezpObject("folder", 2); $folder->name = __FUNCTION__ . " Folder " . $random; $folder->publish(); $child = new ezpObject("article", $folder->mainNode->node_id); $child->title = __FUNCTION__ . " Child " . $random; $child->publish(); $folderURL = eZURLAliasML::fetchByAction('eznode', $child->mainNode->node_id); // Create an alias element using storePath() $path = "ThisIsATestAlias_{$random}"; $action = "eznode:" . $child->mainNode->node_id; $alias = eZURLALiasML::storePath($path, $action, false, $folderURL[0]->attribute('id')); $child->mainNode->updateSubTreePath(); // Refetch the alias ezurlalias_ml element $db = eZDB::instance(); $actionValues = array($child->mainNode->node_id); $extraConditions = array('id' => $alias['element']->attribute('id')); $aliases = $db->arrayQuery(self::buildSql($actionValues, false, $extraConditions)); self::assertEquals(1, (int) $aliases[0]['is_alias']); self::assertEquals(1, (int) $aliases[0]['is_original']); }
private static function generateCond($table, $prevTable, $i, $langMask, $element) { $db = eZDB::instance(); if ($i == 0) { $cond = "{$table}.parent = 0 AND ({$langMask}) AND {$table}.text_md5 = " . eZURLALiasML::md5($db, $element); } else { $cond = "{$table}.parent = {$prevTable}.link AND ({$langMask}) AND {$table}.text_md5 = " . eZURLALiasML::md5($db, $element); } return $cond; }