diff --git a/code/web/app/app_achievements/_doc/Class_scheme.dia b/code/web/app/app_achievements/_doc/Class_scheme.dia index fdcd0f32f..723783818 100644 Binary files a/code/web/app/app_achievements/_doc/Class_scheme.dia and b/code/web/app/app_achievements/_doc/Class_scheme.dia differ diff --git a/code/web/app/app_achievements/_doc/Class_scheme.png b/code/web/app/app_achievements/_doc/Class_scheme.png index 99886f635..f282dad0e 100644 Binary files a/code/web/app/app_achievements/_doc/Class_scheme.png and b/code/web/app/app_achievements/_doc/Class_scheme.png differ diff --git a/code/web/app/app_achievements/_doc/ER_scheme.dia b/code/web/app/app_achievements/_doc/ER_scheme.dia index f104fbfa8..bfac940f4 100644 Binary files a/code/web/app/app_achievements/_doc/ER_scheme.dia and b/code/web/app/app_achievements/_doc/ER_scheme.dia differ diff --git a/code/web/app/app_achievements/_doc/devshot_003.jpg b/code/web/app/app_achievements/_doc/devshot_003.jpg new file mode 100644 index 000000000..18d969ed8 Binary files /dev/null and b/code/web/app/app_achievements/_doc/devshot_003.jpg differ diff --git a/code/web/app/app_achievements/_doc/devshot_004.jpg b/code/web/app/app_achievements/_doc/devshot_004.jpg new file mode 100644 index 000000000..22557eedb Binary files /dev/null and b/code/web/app/app_achievements/_doc/devshot_004.jpg differ diff --git a/code/web/app/app_achievements/class/AVLTree_class.php b/code/web/app/app_achievements/class/AVLTree_class.php new file mode 100644 index 000000000..d77283632 --- /dev/null +++ b/code/web/app/app_achievements/class/AVLTree_class.php @@ -0,0 +1,329 @@ +root = null; + $this->debug = $log; + } + + function preorder() { + $this->AVLpreorder($this->root); + } + + private function AVLpreorder($p) { + if($p != null) { + echo $p->getID().", "; + $this->AVLpreorder($p->getLeft()); + $this->AVLpreorder($p->getRight()); + } + } + + function inorder() { + #echo "
inorder: "; + $this->AVLinorder($this->root); + } + + private function AVLinorder($p) { + if($p != null) { + $this->AVLinorder($p->getLeft()); + echo $p->getID().", "; + $this->AVLinorder($p->getRight()); + } + } + + function insert($node) { + if($this->root == null) { + $this->root = new AVLTreeNode($node); + } + else { + $this->root = $this->AVLinsert($this->root,new AVLTreeNode($node)); + } + } + + function remove($id) { + $n = $this->AVLfind($id,$this->root); + + if($n != null) { + $this->AVLremove($this->root,$n); + return $n->getNode(); + } + return null; + } + + function find($id) { + #echo "
search!"; + $res = $this->AVLfind($id,$this->root); + if($res != null) { + return $res->getNode(); + } + return null; + } + + private function AVLfind($id,$n) { + #echo "
".$id; + if($n != null) { + #echo "
searching for ".$id." compare to ".$n->getID(); + if($n->getID() != $id) { + if($n->getID() > $id) { + $n = $this->AVLfind($id,$n->getLeft()); + } + else { + $n = $this->AVLfind($id,$n->getRight()); + } + } + } + + return $n; + } + + private function AVLremove($r,$n) { + if($n->getLeft() == null || $n->getRight() == null) { + $s = $n; + } + else { + $s = $this->Successor($n); + $n->setNode($r->getNode()); + } + + if($r->getLeft() != null) { + $p = $s->getLeft(); + } + else { + $p = $s->getRight(); + } + + if($p != null) { + $p->setParent($s->getParent()); + } + + if($r->getParent() == null) { + $r = $p; + } + else { + $tmp = $s->getParent(); + if($s == $tmp->getLeft()) { + $tmp->setLeft($p); + } + else { + $tmp->setRight($p); + } + } + + return $r; + } + + private function AVLinsert($r,$n) { + if($r == null) { + $r = $n; + } + else { + if($n->getID() < $r->getID()) { + $r->setLeft($this->AVLinsert($r->getLeft(),$n)); + + $r = $this->balance($r); + } + elseif($n->getID() > $r->getID()) { + $r->setRight($this->AVLinsert($r->getRight(),$n)); + + $r = $this->balance($r); + } + + $r->setHeight(max($r->getHeightLeft(),$r->getHeightRight())+1); + } + + return $r; + } + + private function balance($r) { + if($r->bal() == -2) { + $lc = $r->getLeft(); + if($lc->getHeightLeft() >= $lc->getHeightRight()) { + $r = $this->RotateToRight($r); + } + else { + $r = $this->DoubleRotateLeftRight($r); + } + } + + if($r->bal() == 2) { + $rc = $r->getRight(); + if($rc->getHeightRight() >= $rc->getHeightLeft()) { + $r = $this->RotateToLeft($r); + } + else { + $r = $this->DoubleRotateRightLeft($r); + } + } + + return $r; + } + + private function Successor($r) { + #echo "succ: ".$r->getID(); + if($r->getRight() != null) { + return $this->Minimum($r->getRight()); + } + else { + $n = $r->getParent(); + + while($n != null && $r == $n->getRight()) { + $r = $n; + $n = $n->getParent(); + } + return $n; + } + } + + private function Minimum($r) { + if($r == null) { + return null; + } + + if($r->getLeft() == null) { + return $r; + } + + $p = $r->getLeft(); + while($p->getLeft() != null) { + $p = $p->getLeft(); + } + + return $p; + } + + private function RotateToRight($r) { + if($this->debug) { + echo "rotaRight
"; + } + $v = $r->getLeft(); + $r->setLeft($v->getRight()); + $v->setRight($r); + + $r->setHeight(max($r->getHeightLeft(),$r->getHeightRight())+1); + $v->setHeight(max($v->getHeightLeft(),$r->getHeight())+1); + + return $v; + } + + private function DoubleRotateLeftRight($r) { + $r->setLeft($this->RotateToLeft($r->getLeft())); + return $this->RotateToRight($r); + } + + private function RotateToLeft($r) { + if($this->debug) { + echo "rotaLeft
"; + } + $v = $r->getRight(); + $r->setRight($v->getLeft()); + $v->setLeft($r); + + $r->setHeight(max($r->getHeightLeft(),$r->getHeightRight())+1); + $v->setHeight(max($v->getHeightRight(),$r->getHeight())+1); + + return $v; + } + + private function DoubleRotateRightLeft($r) { + $r->setRight($this->RotateToRight($r->getRight())); + return $this->RotateToLeft($r); + } + } + + class AVLTreeNode { + private $height; + private $left; + private $right; + private $node; + private $parent; + + function AVLTreeNode($node) { + $this->height = 0; + $this->left = null; + $this->right = null; + $this->node = $node; + $this->parent = null; + } + + function getParent() { + return $this->parent; + } + + function setParent($p) { + $this->parent = $p; + } + + function getNode() { + return $this->node; + } + + function getLeft() { + return $this->left; + } + + function getRight() { + return $this->right; + } + + function getHeightLeft() { + if($this->left == null) { + return -1; + } + return $this->left->getHeight(); + } + + function getHeightRight() { + if($this->right == null) { + return -1; + } + return $this->right->getHeight(); + } + + function bal() { + $r = -1; + $l = -1; + + if($this->right != null) { + $r = $this->right->getHeight(); + } + + if($this->left != null) { + $l = $this->left->getHeight(); + } + + return ($r-$l); + } + + function getID() { + return $this->node->getID(); + } + + function getHeight() { + return $this->height; + } + + function setHeight($h) { + $this->height = $h; + } + + function setRight($r) { + $this->right = $r; + if($r != null) { + $r->setParent($this); + } + } + + function setLeft($l) { + $this->left = $l; + if($l != null) { + $l->setParent($this); + } + } + + function setNode($n) { + $this->node = $n; + } + } +?> \ No newline at end of file diff --git a/code/web/app/app_achievements/class/AchAchievement_class.php b/code/web/app/app_achievements/class/AchAchievement_class.php index 45c44ee80..7a1164e9e 100644 --- a/code/web/app/app_achievements/class/AchAchievement_class.php +++ b/code/web/app/app_achievements/class/AchAchievement_class.php @@ -1,6 +1,6 @@ getDone(); while($iter->hasNext()) { - $curr = $this->findNodeIdx($iter->getNext()); + $curr = $this->getChildByIdx($iter->getNext()); $val += $curr->getValue(); } return $val; } function getValueOpen() { - $iter = $this->getDone(); + $iter = $this->getOpen(); if($iter->hasNext()) { - $curr = $this->findNodeIdx($iter->getNext()); + $curr = $this->getChildByIdx($iter->getNext()); return $curr->getValue(); } return 0; } - function getTemplate($insert = array()) { + function fillTemplate($insert = array()) { if($this->template == null) { return implode(";",$insert); } @@ -103,9 +102,14 @@ return $tmp; } } - - function inDev() { - return ($this->dev == 1); + + function getTemplate() { + return $this->template; } + + function getCategory() { + return $this->category; + } + } ?> \ No newline at end of file diff --git a/code/web/app/app_achievements/class/AchList_abstract.php b/code/web/app/app_achievements/class/AchList_abstract.php index 41c2040e9..819d4892a 100644 --- a/code/web/app/app_achievements/class/AchList_abstract.php +++ b/code/web/app/app_achievements/class/AchList_abstract.php @@ -27,13 +27,95 @@ $this->child_done[] = $this->addChild($n); } - function removeChild() { - $idx = $this->getIdx($id); - if($idx != null) { - unset($this->child_open[$idx]); - unset($this->child_done[$idx]); - parent::removeIdx($idx); + final function setChildDone($idx) { + $this->addChildDone($idx); + $this->removeChildOpen($idx); + } + + final function addChildDone($idx) { + echo "try adding done child: ".$idx; + if(!in_array($idx,$this->child_done)) { + $this->child_done[] = $idx; + echo " ... done
"; } + echo var_export($this->child_done,true); + } + + final function removeChildDone($idx) { + echo "try removing done child: ".$idx; + #$res = array_search($idx,$this->child_done); + #if($res != false) { + # unset($this->child_done[$res]); + # echo " ... done
"; + #} + foreach($this->child_done as $key=>$elem) { + if($elem == $idx) { + unset($this->child_done[$key]); + echo " ... done
"; + break; + } + } + echo var_export($this->child_done,true); + } + + final function setChildOpen($idx) { + $this->addChildOpen($idx); + $this->removeChildDone($idx); + } + + final function addChildOpen($idx) { + echo "try adding open child: ".$idx; + if(!in_array($idx,$this->child_open)) { + $this->child_open[] = $idx; + echo " ... done
"; + } + echo var_export($this->child_open,true); + } + + final function removeChildOpen($idx) { + echo "try removing open child: ".$idx; + + #$res = array_search($idx,$this->child_open); + #if($res != false) { + # unset($this->child_open[$res]); + # echo " ... done
"; + #} + foreach($this->child_open as $key=>$elem) { + if($elem == $idx) { + unset($this->child_open[$key]); + echo " ... done
"; + break; + } + } + echo var_export($this->child_open,true); + } + + /*final function unsetOpen($idx) { + foreach($this->child_open as $key=>$elem) { + if($elem == $idx) { + unset($this->child_open[$key]); + break; + } + } + } + + final function unsetDone($idx) { + foreach($this->child_done as $key=>$elem) { + if($elem == $idx) { + unset($this->child_done[$key]); + break; + } + } + }*/ + + #OVERRIDE Parentum::removeChild() + function removeChild($id) { + $n = parent::removeChild($id); + if($n != false && $n != null) { + unset($this->child_open[$n->getIdx()]); + unset($this->child_done[$n->getIdx()]); + } + return $n; } } ?> \ No newline at end of file diff --git a/code/web/app/app_achievements/class/AchMenu_class.php b/code/web/app/app_achievements/class/AchMenu_class.php index cb54ce216..dba0d18a8 100644 --- a/code/web/app/app_achievements/class/AchMenu_class.php +++ b/code/web/app/app_achievements/class/AchMenu_class.php @@ -13,21 +13,21 @@ $this->open = $open; // the summary page is autogenerated and has no database entry. We add it manually here. - $tmp = array(); + /*$tmp = array(); $tmp['ac_id'] = 0; $tmp['ac_parent'] = null; $tmp['acl_name'] = get_translation('ach_summary',$_USER->getLang()); $tmp['ac_image'] = "test.png"; $tmp['ac_order'] = -1; $tmp['open'] = $open; - $this->nodes[] = new AchMenuNode($tmp,$this); + $this->addChild(new AchMenuNode($tmp,$this));*/ $res = $DBc->sqlQuery("SELECT * FROM ach_category LEFT JOIN (ach_category_lang) ON (acl_lang='".$_USER->getLang()."' AND acl_category=ac_id) WHERE ac_parent IS NULL ORDER by ac_order ASC, acl_name ASC"); $sz = sizeof($res); for($i=0;$i<$sz;$i++) { $res[$i]['open'] = $open; - $this->nodes[] = $this->makeChild($res[$i]); + $this->addChild($this->makeChild($res[$i])); } } diff --git a/code/web/app/app_achievements/class/AchObjective_class.php b/code/web/app/app_achievements/class/AchObjective_class.php index 4101fe727..90eebb865 100644 --- a/code/web/app/app_achievements/class/AchObjective_class.php +++ b/code/web/app/app_achievements/class/AchObjective_class.php @@ -60,6 +60,10 @@ return $this->name; } + function getDisplayName() { + return $this->parent->fillTemplate(explode(";",$this->name)); + } + function getDisplay() { return $this->display; } diff --git a/code/web/app/app_achievements/class/AchPerk_class.php b/code/web/app/app_achievements/class/AchPerk_class.php index a8c0713d2..ccd16b51a 100644 --- a/code/web/app/app_achievements/class/AchPerk_class.php +++ b/code/web/app/app_achievements/class/AchPerk_class.php @@ -1,12 +1,13 @@ name = $data['apl_name']; $this->done = $data['app_date']; $this->dev = $data['ap_dev']; + $this->template = $data['apl_template']; + $this->parent_id = $data['ap_parent']; $res = $DBc->sqlQuery("SELECT * FROM ach_objective LEFT JOIN (ach_objective_lang) ON (aol_lang='".$_USER->getLang()."' AND aol_objective=ao_id) LEFT JOIN (ach_player_objective) ON (apo_objective=ao_id AND apo_player='".$_USER->getID()."') LEFT JOIN (ach_achievement) ON (aa_id=ao_metalink) WHERE ao_perk='".$this->id."'"); $sz = sizeof($res); @@ -38,8 +41,12 @@ return $this->value; } + function getDisplayName() { + return $this->parent->fillTemplate(explode(";",$this->name)); + } + function getName() { - return $this->parent->getTemplate(explode(";",$this->name)); + return $this->name; } function objDrawable() { @@ -62,8 +69,34 @@ return $this->done; } - function inDev() { - return ($this->dev == 1); + function fillTemplate($insert = array()) { + if($this->template == null) { + return implode(";",$insert); + } + else { + $tmp = $this->template; + $match = array(); + preg_match_all('#\[([0-9]+)\]#', $this->template, $match); + foreach($match[0] as $key=>$elem) { + $tmp = str_replace("[".$match[1][$key]."]",$insert[$key],$tmp); + } + return $tmp; + } + } + + function getTemplate() { + return $this->template; + } + + function getParentID() { + return $this->parent_id; + } + + function setParentID($p) { + if($this->parent_id != null) { + + } + $this->parent_id = $p; } } ?> \ No newline at end of file diff --git a/code/web/app/app_achievements/class/AchSummary_class.php b/code/web/app/app_achievements/class/AchSummary_class.php index fbd1642a6..cc6ac89f6 100644 --- a/code/web/app/app_achievements/class/AchSummary_class.php +++ b/code/web/app/app_achievements/class/AchSummary_class.php @@ -17,6 +17,8 @@ for($i=0;$i<$sz;$i++) { $this->addDone($this->makeChild($res[$i])); } + + #echo var_export($this->child_done,true); } protected function makeChild($a) { @@ -31,11 +33,15 @@ $iter = $this->menu->getIterator(); while($iter->hasNext()) { + #echo "1"; $curr = $iter->getNext(); + if($curr->getID() == 0 || $curr->inDev()) { continue; // skip summary page } + #echo $curr->getID().","; + #echo var_export($curr,true); $res = $this->sumStats($curr); $this->stats[] = array($curr->getName(),$res[0],$res[1]); } @@ -47,6 +53,10 @@ private function sumStats(&$node) { global $DBc,$_USER; + #return array(0,0); + + #echo ">".gettype($node)."<"; + $done = 0; $total = 0; @@ -62,7 +72,7 @@ while($iter->hasNext()) { $curr = $iter->getNext(); - $res = $this->sumStats($elem); + $res = $this->sumStats($curr); $done += $res[0]; $total += $res[1]; } diff --git a/code/web/app/app_achievements/class/InDev_trait.php b/code/web/app/app_achievements/class/InDev_trait.php new file mode 100644 index 000000000..843389dba --- /dev/null +++ b/code/web/app/app_achievements/class/InDev_trait.php @@ -0,0 +1,13 @@ +dev == 1); + } + + function getDev() { + return $this->dev; + } + } +?> \ No newline at end of file diff --git a/code/web/app/app_achievements/class/Node_trait.php b/code/web/app/app_achievements/class/Node_trait.php index 527f6caa7..ead5edea3 100644 --- a/code/web/app/app_achievements/class/Node_trait.php +++ b/code/web/app/app_achievements/class/Node_trait.php @@ -1,5 +1,6 @@ id; } + final function getIdx() { + return $this->idx; + } + final function getParent() { return $this->parent; } - final protected function setID($id) { + final function setIdx($i) { + $this->idx = $i; + } + + final function setID($id) { $this->id = $id; } - final protected function setParent($p) { + final function setParent($p) { $this->parent = $p; } } diff --git a/code/web/app/app_achievements/class/Parentum_abstract.php b/code/web/app/app_achievements/class/Parentum_abstract.php index 0d725b9c4..c651ff813 100644 --- a/code/web/app/app_achievements/class/Parentum_abstract.php +++ b/code/web/app/app_achievements/class/Parentum_abstract.php @@ -4,10 +4,21 @@ This class allows external access to the child-node list. Use the NodeIterator to iterate through the list since the numeric array keys might have gaps due to node removals! + + Once init() has been called, an AVLTree is used to support the + functions removeChild() and findChild(). init() must be called + before adding any nodes! ---------------------------*/ protected $nodes = array(); + protected $avl = null; - abstract protected function makeChild($args); // overwriteable child generator; allows to define child type (eg.: admin classes that inherit base class) + protected function init() { + #echo "init()"; + $this->nodes = array(); + $this->avl = new AVLTree(); + } + + abstract protected function makeChild($args); // overwriteable child generator; allows to define child type (eg.: admin classes that inherit from base class) final function getSize() { return sizeof($this->nodes); @@ -23,46 +34,59 @@ final function addChild($n) { $tmp = sizeof($this->nodes); + $n->setIdx($tmp); $this->nodes[] = $n; + if($this->avl != null) { + $this->avl->insert($n); + } return $tmp; } + #function drawTree() { + # $this->avl->inorder(); + #} + function removeChild($id) { - $this->removeIdx($this->getIdx($id)); - } - - function removeNode($n) { - $this->removeIdx($this->findNode($n)); - } - - final protected function removeIdx($idx) { - if($idx != null) { - unset($this->nodes[$idx]); + if($this->isEmpty()) { + return null; } - } - final protected function findNode($n) { - foreach($this->nodes as $key=>$elem) { - if($this->nodes[$key] === $n) { - return $key; + if($this->avl == null) { + return false; + } + $n = $this->avl->remove($id); + + #echo var_export($n,true); + if($n != null) { + if($n->getIdx() != null) { + unset($this->nodes[$n->getIdx()]); } + + return $n; } return null; } - final protected function findNodeIdx($idx) { + final function getChildByID($id) { + if($this->isEmpty()) { + return null; + } + + if($this->avl == null) { + return false; + } + + #$this->avl->inorder(); + + return $this->avl->find($id); + } + + final function getChildByIdx($idx) { + if($this->isEmpty()) { + return null; + } return $this->nodes[$idx]; } - - final protected function getIdx($id) { - foreach($this->nodes as $key=>$elem) { - if($elem->getID() == $id) { - return $key; - } - } - - return null; - } } ?> \ No newline at end of file diff --git a/code/web/app/app_achievements/class/RyzomUser_class.php b/code/web/app/app_achievements/class/RyzomUser_class.php index 2b0d6b972..9383d5aaf 100644 --- a/code/web/app/app_achievements/class/RyzomUser_class.php +++ b/code/web/app/app_achievements/class/RyzomUser_class.php @@ -7,7 +7,7 @@ } function getID() { - return 1; + return $this->data["id"]; } function getLang() { diff --git a/code/web/app/app_achievements/include/ach_render_ig.php b/code/web/app/app_achievements/include/ach_render_ig.php index 4b67407c1..d3b5c0b05 100644 --- a/code/web/app/app_achievements/include/ach_render_ig.php +++ b/code/web/app/app_achievements/include/ach_render_ig.php @@ -182,7 +182,7 @@ $iter = $cat->getDone(); while($iter->hasNext()) { - $curr = $cat->findNodeIdx($iter->getNext()); + $curr = $cat->getChildByIdx($iter->getNext()); #$sz = sizeof($tmp); #for($i=0;$i<$sz;$i++) { #echo "A"; @@ -194,14 +194,14 @@ $iter = $cat->getOpen(); while($iter->hasNext()) { - $curr = $cat->findNodeIdx($iter->getNext()); + $curr = $cat->getChildByIdx($iter->getNext()); #$sz = sizeof($tmp); #for($i=0;$i<$sz;$i++) { #echo "B"; if($curr->inDev()) { continue; } - $html .= ach_render_achievement_open($curr)); + $html .= ach_render_achievement_open($curr); } return $html; @@ -259,7 +259,7 @@ $html = ""; $perk_list = $ach->getOpen(); - $perk = $ach->findNodeIdx($perk_list->getNext()); + $perk = $ach->getChildByIdx($perk_list->getNext()); if($perk->inDev()) { return $html; @@ -269,7 +269,7 @@ $html .= "".$perk->getName()." "; } if($perk->objDrawable()) { - $html .= "".ach_render_obj_list($perk->getChildren()).""; + $html .= "".ach_render_obj_list($perk->getIterator()).""; } return $html; @@ -281,7 +281,7 @@ $perk_list = $ach->getDone(); while($perk_list->hasNext()) { - $perk = $this->findNodeIdx($perk_list->getNext()); + $perk = $ach->getChildByIdx($perk_list->getNext()); #foreach($perk_list as $elem) { #$perk = $ach->getChild($elem); @@ -294,7 +294,7 @@ return $html; } - function ach_render_obj_list(&$obj) { + function ach_render_obj_list($obj) { $html = ""; $i = 0; diff --git a/code/web/app/app_achievements/include/ach_render_web.php b/code/web/app/app_achievements/include/ach_render_web.php index a12713180..7101b2d64 100644 --- a/code/web/app/app_achievements/include/ach_render_web.php +++ b/code/web/app/app_achievements/include/ach_render_web.php @@ -195,7 +195,7 @@ $iter = $cat->getDone(); while($iter->hasNext()) { - $curr = $cat->findNodeIdx($iter->getNext()); + $curr = $cat->getChildByIdx($iter->getNext()); #$sz = sizeof($tmp); #for($i=0;$i<$sz;$i++) { #echo "A"; @@ -207,14 +207,14 @@ $iter = $cat->getOpen(); while($iter->hasNext()) { - $curr = $cat->findNodeIdx($iter->getNext()); + $curr = $cat->getChildByIdx($iter->getNext()); #$sz = sizeof($tmp); #for($i=0;$i<$sz;$i++) { #echo "B"; if($curr->inDev()) { continue; } - $html .= ach_render_achievement_open($curr)); + $html .= ach_render_achievement_open($curr); } return $html; @@ -295,7 +295,7 @@ $html = ""; $perk_list = $ach->getOpen(); - $perk = $ach->findNodeIdx($perk_list->getNext()); + $perk = $ach->getChildByIdx($perk_list->getNext()); #$perk = $ach->getChild($perk_list[0]); @@ -319,7 +319,7 @@ $perk_list = $ach->getDone(); while($perk_list->hasNext()) { - $perk = $this->findNodeIdx($perk_list->getNext()); + $perk = $ach->getChildByIdx($perk_list->getNext()); #foreach($perk_list as $elem) { #$perk = $ach->getChild($elem); if($perk->inDev()) { @@ -331,7 +331,7 @@ return $html; } - function ach_render_obj_list(&$obj) { + function ach_render_obj_list($obj) { $html = "
"; $i = 0; diff --git a/code/web/app/app_achievements/index.php b/code/web/app/app_achievements/index.php index 7dd206c89..af1e03b9c 100644 --- a/code/web/app/app_achievements/index.php +++ b/code/web/app/app_achievements/index.php @@ -21,6 +21,7 @@ $user['race'] = "r_matis"; $user['civilization'] = "c_neutral"; $user['cult'] = "c_neutral"; $user['ig'] = ($_REQUEST['ig']==1); +#$user['ig'] = true; require_once("class/RyzomUser_class.php"); $_USER = new RyzomUser($user); @@ -33,6 +34,7 @@ else { } require_once("include/ach_render_common.php"); +require_once("class/AVLTree_class.php"); require_once("class/Parentum_abstract.php"); require_once("class/AchList_abstract.php"); require_once("class/Tieable_inter.php"); @@ -50,8 +52,8 @@ require_once("class/AchObjective_class.php"); // Update user acces on Db -//$db = ryDB::getInstance(APP_NAME); -$DBc = ryDB::getInstance("ahufler"); +$DBc = ryDB::getInstance(APP_NAME); +#$DBc = ryDB::getInstance("ahufler"); if(!$_USER->isIG && $_CONF['enable_webig'] == false) {