Index: trunk/admin/category/permcacheupdate.php =================================================================== diff -u -r677 -r3162 --- trunk/admin/category/permcacheupdate.php (.../permcacheupdate.php) (revision 677) +++ trunk/admin/category/permcacheupdate.php (.../permcacheupdate.php) (revision 3162) @@ -208,6 +208,7 @@ if ($data === false) { //If Stack is empty $data['current_id'] = 0; $data['title'] = Array(); + $data['named_path'] = Array(); $this->Stack->Push($data); } @@ -234,6 +235,7 @@ { $next_data = Array(); $next_data['title'] = $data['title']; + $next_data['named_path'] = $data['named_path']; $next_data['current_id'] = $data['children'][$data['current_child']]; //next iteration should process child $next_data['perms'] = $data['perms']; //we should copy our permissions to child - inheritance $next_data['perms']->SetCatId($next_data['current_id']); @@ -251,18 +253,27 @@ } function UpdateCachedPath(&$data) { - $sql='UPDATE '.GetTablePrefix().'Category SET CachedNavbar="'.addslashes(join('>',$data['title'])) .'" WHERE CategoryId = '.$data['current_id']; + $sql = 'UPDATE '.GetTablePrefix().'Category SET CachedNavbar="'.addslashes(join('>',$data['title'])) .'" WHERE CategoryId = '.$data['current_id']; $this->conn->Execute($sql); + + $path = implode('/', $data['named_path'] ); + $sql = 'UPDATE '.GetTablePrefix().'Category SET NamedParentPath = "'.addslashes($path).'" WHERE CategoryId = '.$data['current_id']; + $this->conn->Execute($sql); } + function QueryTitle(&$data) { - $sql = sprintf('SELECT Name FROM '.GetTablePrefix().'Category WHERE CategoryId = %s', + $sql = sprintf('SELECT Name, Filename FROM '.GetTablePrefix().'Category WHERE CategoryId = %s', $data['current_id']); $rs = $this->conn->Execute($sql); if ($rs && !$rs->EOF) + { $data['title'][] = $rs->fields['Name']; + $data['named_path'][] = $rs->fields['Filename']; + } } + function QueryChildren(&$data) { $sql = sprintf('SELECT CategoryId FROM '.GetTablePrefix().'Category WHERE ParentId = %s',