mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-09-22 04:30:35 +00:00
9bc219ee14
About Shared Library (shared) and Module Library (module) type of cmake target INSTALL command has different behaviour for ARCHIVE LIBRARY RUNTIME depending on the platform
173 lines
No EOL
4.7 KiB
PHP
173 lines
No EOL
4.7 KiB
PHP
<?php
|
|
class AdmAchievement extends AchAchievement implements ADM {
|
|
#########################
|
|
# PHP 5.3 compatible
|
|
# AdmDispatcher_trait replaces this in PHP 5.4
|
|
|
|
function removeNode($id) {
|
|
$res = $this->getChildDataByID($id);
|
|
if($res != null) {
|
|
$res->delete_me();
|
|
$this->removeChild($id);
|
|
}
|
|
}
|
|
|
|
function updateNode($id) { // PROBABLY USELESS!
|
|
$res = $this->getChildDataByID($id);
|
|
if($res != null) {
|
|
$res->update();
|
|
}
|
|
}
|
|
|
|
function getPathID($path = "") {
|
|
if($path != "") {
|
|
$path = ";".$path;
|
|
}
|
|
$path = $this->getID().$path;
|
|
if($this->parent != null) {
|
|
return $this->parent->getPathID($path);
|
|
}
|
|
|
|
return $path;
|
|
}
|
|
|
|
function getElementByPath($pid) {
|
|
$tmp = explode(";",$pid);
|
|
if($tmp[0] == $this->getID()) {
|
|
if(sizeof($tmp) > 1) {
|
|
$c = $this->getChildDataByID($tmp[1]);
|
|
if($c != null) {
|
|
unset($tmp[0]);
|
|
return $c->getElementByPath(implode(";",$tmp));
|
|
}
|
|
return null;
|
|
}
|
|
else {
|
|
return $this;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
#########################
|
|
|
|
function AdmAchievement($data,$parent) {
|
|
parent::__construct($data,$parent);
|
|
}
|
|
|
|
protected function makeChild($d) {
|
|
return new AdmTask($d,$this);
|
|
}
|
|
|
|
function getLang($lang) {
|
|
global $DBc;
|
|
|
|
$res = $DBc->sqlQuery("SELECT * FROM ach_achievement_lang WHERE aal_achievement='".$this->getID()."' AND aal_lang='".$lang."'");
|
|
|
|
return array(0=>$res[0]['aal_name'],1=>$res[0]['aal_template']);
|
|
}
|
|
|
|
function setLang($lang,$txt,$tpl) {
|
|
global $DBc,$_USER;
|
|
|
|
$DBc->sqlQuery("INSERT INTO ach_achievement_lang (aal_achievement,aal_lang,aal_name,aal_template) VALUES ('".$this->getID()."','".$DBc->sqlEscape($lang)."','".$DBc->sqlEscape($txt)."',".mkn($tpl).") ON DUPLICATE KEY UPDATE aal_name='".$DBc->sqlEscape($txt)."',aal_template=".mkn($tpl)."");
|
|
|
|
if($_USER->getLang() == $lang) {
|
|
$this->name = $txt;
|
|
$this->template = $tpl;
|
|
}
|
|
}
|
|
|
|
#@overrides AdmDispatcher::insertNode()
|
|
function insertNode($n) {
|
|
$n->insert();
|
|
$this->addOpen($n);
|
|
}
|
|
|
|
function delete_me() {
|
|
global $DBc;
|
|
|
|
$DBc->sqlQuery("DELETE FROM ach_achievement WHERE aa_id='".$this->getID()."'");
|
|
$DBc->sqlQuery("DELETE FROM ach_objective WHERE ao_metalink='".$this->getID()."'");
|
|
$DBc->sqlQuery("DELETE FROM ach_achievement_lang WHERE NOT EXISTS (SELECT * FROM ach_achievement WHERE aa_id=aal_achievement)");
|
|
|
|
$iter = $this->getIterator();
|
|
while($iter->hasNext()) {
|
|
$curr = $iter->getNext();
|
|
$curr->delete_me();
|
|
$this->removeChild($curr->getID());
|
|
}
|
|
}
|
|
|
|
function update() {
|
|
global $DBc;
|
|
|
|
$DBc->sqlQuery("UPDATE ach_achievement SET aa_category='".$this->getCategory()."',aa_parent=".mkn($this->getParentID()).",aa_image='".$DBc->sqlEscape($this->getImage())."',aa_dev='".$this->getDev()."',aa_sticky='".$DBc->sqlEscape($this->getSticky())."' WHERE aa_id='".$this->getID()."'");
|
|
|
|
#MISSING: update lang entry
|
|
$DBc->sqlQuery("INSERT INTO ach_achievement_lang (aal_achievement,aal_lang,aal_name,aal_template) VALUES ('".$this->getID()."','en','".$DBc->sqlEscape($this->getName())."',".mkn($this->getTemplate()).") ON DUPLICATE KEY UPDATE aal_name='".$DBc->sqlEscape($this->getName())."',aal_template=".mkn($this->getTemplate())."");
|
|
}
|
|
|
|
function insert() {
|
|
global $DBc;
|
|
|
|
$this->dev = 1;
|
|
|
|
$DBc->sqlQuery("INSERT INTO ach_achievement (aa_category,aa_parent,aa_image,aa_dev,aa_sticky) VALUES ('".$this->getCategory()."',".mkn($this->getParentID()).",'".$DBc->sqlEscape($this->getImage())."','1','".$DBc->sqlEscape($this->getSticky())."')");
|
|
$id = $DBc->insertID();
|
|
$this->setID($id);
|
|
|
|
$DBc->sqlQuery("INSERT INTO ach_achievement_lang (aal_achievement,aal_lang,aal_name,aal_template) VALUES ('".$this->getID()."','en','".$DBc->sqlEscape($this->getName())."',".mkn($this->getTemplate()).")");
|
|
}
|
|
|
|
|
|
function setCategory($c) {
|
|
$this->category = $c;
|
|
}
|
|
|
|
function setImage($i) {
|
|
$this->image = $i;
|
|
}
|
|
|
|
function setName($n) {
|
|
$this->name = $n;
|
|
}
|
|
|
|
function setTemplate($t) {
|
|
$this->template = $t;
|
|
}
|
|
|
|
function orderTasks() {
|
|
|
|
$i = 0;
|
|
$start = $this->findParentID(null);
|
|
|
|
while($start != null) {
|
|
$start->setTorder($i);
|
|
$start->update();
|
|
$i++;
|
|
#echo $i;
|
|
$start = $this->findParentID($start->getID());
|
|
}
|
|
}
|
|
|
|
private function findParentID($id) {
|
|
$iter = $this->getIterator();
|
|
while($iter->hasNext()) {
|
|
$curr = $iter->getNext();
|
|
if($curr->getParentID() == $id) {
|
|
return $curr;
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
function setParentID($p) {
|
|
$this->parent_id = $p;
|
|
}
|
|
|
|
function setSticky($s) {
|
|
$this->sticky = $s;
|
|
}
|
|
}
|
|
?>
|