mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-11-11 09:49:05 +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
245 lines
No EOL
6.9 KiB
PHP
245 lines
No EOL
6.9 KiB
PHP
<?php
|
|
class AdmTask extends AchTask implements ADM {
|
|
#########################
|
|
# PHP 5.3 compatible
|
|
# AdmDispatcher_trait replaces this in PHP 5.4
|
|
|
|
function insertNode($n) {
|
|
$n->setParent($this);
|
|
$n->insert();
|
|
$this->addChild($n);
|
|
}
|
|
|
|
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;
|
|
}
|
|
#########################
|
|
|
|
protected $condition;
|
|
protected $condition_value;
|
|
protected $torder;
|
|
|
|
function AdmTask($data,$parent) {
|
|
parent::__construct($data,$parent);
|
|
|
|
$this->condition = $data["at_condition"];
|
|
$this->condition_value = $data["at_condition_value"];
|
|
$this->torder = $data["at_torder"];
|
|
}
|
|
|
|
protected function makeChild($d) {
|
|
return new AdmObjective($d,$this);
|
|
}
|
|
|
|
function getLang($lang) { // load language
|
|
global $DBc;
|
|
|
|
$res = $DBc->sqlQuery("SELECT * FROM ach_task_lang WHERE atl_task='".$this->getID()."' AND atl_lang='".$lang."'");
|
|
|
|
return array(0=>$res[0]['atl_name'],1=>$res[0]['atl_template']);
|
|
}
|
|
|
|
function setLang($lang,$txt,$tpl) { // write language
|
|
global $DBc,$_USER;
|
|
|
|
$DBc->sqlQuery("INSERT INTO ach_task_lang (atl_task,atl_lang,atl_name,atl_template) VALUES ('".$this->getID()."','".$DBc->sqlEscape($lang)."','".$DBc->sqlEscape($txt)."',".mkn($tpl).") ON DUPLICATE KEY UPDATE atl_name='".$DBc->sqlEscape($txt)."',atl_template=".mkn($tpl)."");
|
|
|
|
if($_USER->getLang() == $lang) {
|
|
$this->name = $txt;
|
|
$this->template = $tpl;
|
|
}
|
|
}
|
|
|
|
function delete_me() {
|
|
global $DBc;
|
|
|
|
$DBc->sqlQuery("DELETE FROM ach_task WHERE at_id='".$this->getID()."'");
|
|
$DBc->sqlQuery("DELETE FROM ach_player_task WHERE apt_task='".$this->getID()."'");
|
|
$DBc->sqlQuery("DELETE FROM ach_task_tie_align WHERE atta_task='".$this->getID()."'");
|
|
$DBc->sqlQuery("DELETE FROM ach_task_tie_race WHERE attr_task='".$this->getID()."'");
|
|
|
|
$iter = $this->getIterator();
|
|
while($iter->hasNext()) {
|
|
$curr = $iter->getNext();
|
|
$curr->delete_me();
|
|
$this->removeChild($curr->getID());
|
|
}
|
|
}
|
|
|
|
function update() {
|
|
global $DBc;
|
|
|
|
$DBc->sqlQuery("UPDATE ach_task SET at_parent=".mkn($this->getParentID()).",at_value='".$DBc->sqlEscape($this->getValue())."',at_condition='".$DBc->sqlEscape($this->getCondition())."',at_condition_value=".mkn($this->getConditionValue()).",at_dev='".$this->getDev()."',at_torder='".$this->torder."', at_inherit='".$this->inherit_obj."' WHERE at_id='".$this->getID()."'");
|
|
|
|
$DBc->sqlQuery("INSERT INTO ach_task_lang (atl_task,atl_lang,atl_name,atl_template) VALUES ('".$this->getID()."','en','".$DBc->sqlEscape($this->getName())."',".mkn($this->getTemplate()).") ON DUPLICATE KEY UPDATE atl_name='".$DBc->sqlEscape($this->getName())."',atl_template=".mkn($this->getTemplate())."");
|
|
|
|
$DBc->sqlQuery("DELETE FROM ach_task_tie_align WHERE atta_task='".$this->getID()."'");
|
|
$DBc->sqlQuery("DELETE FROM ach_task_tie_race WHERE attr_task='".$this->getID()."'");
|
|
|
|
foreach($this->tie_race as $elem) {
|
|
$DBc->sqlQuery("INSERT INTO ach_task_tie_race (attr_task,attr_race) VALUES ('".$this->getID()."','".$DBc->sqlEscape($elem)."')");
|
|
}
|
|
|
|
foreach($this->tie_align as $elem) {
|
|
$DBc->sqlQuery("INSERT INTO ach_task_tie_align (atta_task,atta_alignment) VALUES ('".$this->getID()."','".$DBc->sqlEscape($elem)."')");
|
|
}
|
|
}
|
|
|
|
function insert() {
|
|
global $DBc;
|
|
|
|
$this->dev = 1;
|
|
|
|
$DBc->sqlQuery("INSERT INTO ach_task (at_achievement,at_parent,at_value,at_condition,at_condition_value,at_dev,at_torder,at_inherit) VALUES ('".$this->getAchievement()."',".mkn($this->getParentID()).",'".$DBc->sqlEscape($this->getValue())."','".$DBc->sqlEscape($this->getCondition())."',".mkn($this->getConditionValue()).",'1','".$this->torder."','".$this->inherit_obj."')");
|
|
$id = $DBc->insertID();
|
|
$this->setID($id);
|
|
|
|
$DBc->sqlQuery("INSERT INTO ach_task_lang (atl_task,atl_lang,atl_name,atl_template) VALUES ('".$this->getID()."','en','".$DBc->sqlEscape($this->getName())."',".mkn($this->getTemplate()).")");
|
|
|
|
foreach($this->tie_race as $elem) {
|
|
$DBc->sqlQuery("INSERT INTO ach_task_tie_race (attr_task,attr_race) VALUES ('".$this->getID()."','".$DBc->sqlEscape($elem)."')");
|
|
}
|
|
|
|
foreach($this->tie_align as $elem) {
|
|
$DBc->sqlQuery("INSERT INTO ach_task_tie_align (atta_task,atta_alignment) VALUES ('".$this->getID()."','".$DBc->sqlEscape($elem)."')");
|
|
}
|
|
}
|
|
|
|
function setAchievement($a) {
|
|
$this->achievement = $a;
|
|
}
|
|
|
|
function setName($name) {
|
|
$this->name = $name;
|
|
}
|
|
|
|
function setTemplate($t) {
|
|
$this->template = $t;
|
|
}
|
|
|
|
function setValue($v) {
|
|
$this->value = $v;
|
|
}
|
|
|
|
function setTieRace($t) {
|
|
$this->tie_race = $t;
|
|
}
|
|
|
|
function setTieAlign($t) {
|
|
$this->tie_align = $t;
|
|
}
|
|
|
|
function getCondition() {
|
|
return $this->condition;
|
|
}
|
|
|
|
function getConditionValue() {
|
|
return $this->condition_value;
|
|
}
|
|
|
|
function setCondition($c) {
|
|
$this->condition = $c;
|
|
}
|
|
|
|
function setConditionValue($v) {
|
|
$this->condition_value = $v;
|
|
}
|
|
|
|
function getTorder() {
|
|
return $this->torder;
|
|
}
|
|
|
|
function setTorder($t) {
|
|
$this->torder = $t;
|
|
}
|
|
|
|
function setHeritage($i) {
|
|
$this->inherit_obj = $i;
|
|
}
|
|
|
|
function setParentID($p,$order = true) { #reordering must happen A) after insert B) when updating
|
|
if($p == null || $p == "null") {
|
|
|
|
$this->parent_id = null;
|
|
|
|
}
|
|
else {
|
|
|
|
$this->parent_id = $p;
|
|
|
|
}
|
|
|
|
if($order == true) {
|
|
|
|
$iter = $this->parent->getIterator();
|
|
while($iter->hasNext()) {
|
|
$curr = $iter->getNext();
|
|
if($curr->getID() == $this->id) {
|
|
continue;
|
|
}
|
|
if($curr->getParentID() == $this->parent_id) {
|
|
$curr->setParentID($this->id,false);
|
|
$curr->update();
|
|
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function isTiedRace($r) {
|
|
if(sizeof($this->tie_race) == 0) {
|
|
return false;
|
|
}
|
|
return in_array($r,$this->tie_race);
|
|
}
|
|
|
|
function isTiedAlign($cult,$civ) {
|
|
if(sizeof($this->tie_align) == 0) {
|
|
return false;
|
|
}
|
|
return in_array(($cult.'|'.$civ),$this->tie_align);
|
|
}
|
|
}
|
|
?>
|