Cascading deletion fix
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,3 +2,4 @@
|
||||
/.project
|
||||
/log.html
|
||||
/globalsettings.php
|
||||
inc/log.html
|
||||
|
||||
24
inc/Db.php
24
inc/Db.php
@@ -209,7 +209,7 @@ class Db extends PhpObject
|
||||
if($this->isId($sColumnName) && $sColumnName!=self::getId($sTableName))
|
||||
{
|
||||
$asForeignKeyQueries[] = "ALTER TABLE ".$sTableName." ADD INDEX(`".$sColumnName."`)";
|
||||
$asForeignKeyQueries[] = "ALTER TABLE ".$sTableName." ADD FOREIGN KEY (`".$sColumnName."`) REFERENCES ".self::getTable($sColumnName)."(`".$sColumnName."`)";
|
||||
$asForeignKeyQueries[] = "ALTER TABLE ".$sTableName." ADD FOREIGN KEY (`".$sColumnName."`) REFERENCES ".$this->getTable($sColumnName)."(`".$sColumnName."`)";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -496,24 +496,14 @@ class Db extends PhpObject
|
||||
$bSuccess = true;
|
||||
|
||||
//linked tables
|
||||
switch($sTableName)
|
||||
{
|
||||
case (array_key_exists('cascading_delete', $this->asOptions) && array_key_exists($sTableName, $this->asOptions['cascading_delete'])) :
|
||||
$asTables = array_merge(is_array($sTableName)?array_values($sTableName):array($sTableName), array_values($this->asOptions['cascading_delete'][$sTableName]));
|
||||
break;
|
||||
case is_string($sTableName) :
|
||||
$asTables = array($sTableName);
|
||||
break;
|
||||
case is_array($sTableName):
|
||||
$asTables = $sTableName;
|
||||
break;
|
||||
default:
|
||||
$asTables = array();
|
||||
if(array_key_exists('cascading_delete', $this->asOptions) && array_key_exists($sTableName, $this->asOptions['cascading_delete'])) {
|
||||
foreach($this->asOptions['cascading_delete'][$sTableName] as $sTable) {
|
||||
$bSuccess = $bSuccess && $this->deleteRow($sTable, $iTableId);
|
||||
}
|
||||
foreach($asTables as $sTable)
|
||||
{
|
||||
$bSuccess = $bSuccess && $this->setQuery("DELETE FROM ".$sTable." WHERE ".$this->getId($sTableName)." = ".$iTableId);
|
||||
}
|
||||
|
||||
$bSuccess = $bSuccess && $this->setQuery("DELETE FROM ".$sTableName." WHERE ".$this->getId($sTableName)." = ".$iTableId);
|
||||
|
||||
return $bSuccess;
|
||||
}
|
||||
|
||||
|
||||
@@ -485,8 +485,8 @@ class ToolBox
|
||||
|
||||
switch ($sLang) {
|
||||
case 'en':
|
||||
$asWeekDays = array('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'satursday', 'sunday');
|
||||
$asMonths = array('january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december');
|
||||
$asWeekDays = array('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Satursday', 'Sunday');
|
||||
$asMonths = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
|
||||
break;
|
||||
case 'fr':
|
||||
$asWeekDays = array('lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi', 'dimanche');
|
||||
@@ -510,7 +510,7 @@ class ToolBox
|
||||
elseif($sCurTimeStamp-$iTimeStamp<60*60*2) $sDesc = 'an hour ago';
|
||||
elseif($sCurTimeStamp-$iTimeStamp<60*60*24 && $sDay==$sCurDay) $sDesc = 'at '.date('gA', $iTimeStamp);
|
||||
elseif($sCurTimeStamp-$iTimeStamp<60*60*24) $sDesc = 'yesterday';
|
||||
elseif($sCurTimeStamp-$iTimeStamp<60*60*24*7 && $sWeek==$sCurWeek) $sDesc = $asWeekDays[$sWeekDay-1];
|
||||
elseif($sCurTimeStamp-$iTimeStamp<60*60*24*7 && $sWeek==$sCurWeek) $sDesc = 'on '.$asWeekDays[$sWeekDay-1];
|
||||
elseif($sCurTimeStamp-$iTimeStamp<60*60*24*7) $sDesc = 'last '.$asWeekDays[$sWeekDay-1];
|
||||
elseif($sCurTimeStamp-$iTimeStamp<60*60*24*9) $sDesc = 'a week ago';
|
||||
elseif($sCurTimeStamp-$iTimeStamp<60*60*24*12) $sDesc = '10 days ago';
|
||||
|
||||
4
script/jquery.js
vendored
4
script/jquery.js
vendored
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user