Skip to content

Commit

Permalink
php7 compatibility
Browse files Browse the repository at this point in the history
  • Loading branch information
nicodim99 committed Jul 31, 2017
1 parent bfc0d68 commit 9d39666
Show file tree
Hide file tree
Showing 9 changed files with 111 additions and 102 deletions.
20 changes: 13 additions & 7 deletions cms/include/action_catalog.php
Original file line number Diff line number Diff line change
Expand Up @@ -87,16 +87,22 @@
if ($catalog->isRoot()) {
fssql_query('TRUNCATE TABLE vars');
if (isset($_POST['vars']))
foreach ($_POST['vars'] as $var)
fssql_query('INSERT INTO vars SET '.($var['id']?'id='.(int)$var['id'].', ':'').'name="'.mysql_escape_string($var['name']).'", value="'.mysql_escape_string($var['value']).'", describ="'.mysql_escape_string($var['describ']).'"');
foreach ($_POST['vars'] as $var) {
$application->getConn()->insert('vars', $var);
}
} else {
fssql_query('DELETE FROM vars_servers WHERE server_id='.$catalog->id);
$application->getConn()->delete('vars_servers', array('server_id' => $catalog->id));
if (isset($_POST['vars']))
foreach ($_POST['vars'] as $var) {
$r = fssql_query('SELECT value FROM vars WHERE id='.(int)$var['id']);
if (!mysql_num_rows($r)) continue;
if ($var['value'] != mysql_result($r,0))
fssql_query('INSERT INTO vars_servers SET var_id='.(int)$var['id'].', server_id='.$catalog->id.', value="'.mysql_escape_string($var['value']).'"');
$data = $application->getConn()->fetchAll('SELECT value FROM vars WHERE id=?',array((int)$var['id']));
if (!count($data)) continue;
if ($var['value'] != $data[0]['value']) {
$data = $application->getConn()->insert('vars_servers', array(
'var_id' => (int)$var['id'],
'server_id' => $catalog->id,
'value' => $var['value'],
));
}
}
}

Expand Down
29 changes: 12 additions & 17 deletions cms/include/action_check.php
Original file line number Diff line number Diff line change
Expand Up @@ -63,33 +63,28 @@

// Левый ключ ВСЕГДА меньше правого
$query = 'SELECT COUNT(*) FROM dir_structure WHERE lft >= rght';
$r = mysql_query($query);
if ($r && mysql_result($r,0) > 0) $errorText .= $l_rule_broken.$l_rule1.'<br />';
$r = $application->getConn()->fetchArray( 'SELECT COUNT(*) FROM dir_structure WHERE lft >= rght');
if ($r[0] > 0) $errorText .= $l_rule_broken.$l_rule1.'<br />';

// Наименьший левый ключ ВСЕГДА равен 1
$query = 'SELECT MIN(lft) FROM dir_structure';
$r = mysql_query($query);
if ($r && mysql_result($r,0) != 1) $errorText .= $l_rule_broken.$l_rule2.'<br />';
$r = $application->getConn()->fetchArray( 'SELECT MIN(lft) FROM dir_structure');
if ($r[0] != 1) $errorText .= $l_rule_broken.$l_rule2.'<br />';

// Наибольший правый ключ ВСЕГДА равен двойному числу узлов
$query = 'SELECT MAX(rght) - 2*COUNT(*) FROM dir_structure';
$r = mysql_query($query);
if ($r && mysql_result($r,0) != 0) $errorText .= $l_rule_broken.$l_rule3.'<br />';
$r = $application->getConn()->fetchArray('SELECT MAX(rght) - 2*COUNT(*) FROM dir_structure');
if ($r[0] != 0) $errorText .= $l_rule_broken.$l_rule3.'<br />';

// Разница между правым и левым ключом ВСЕГДА нечетное число
$query = 'SELECT SUM(IF(MOD(rght-lft,2)=1,0,1)) FROM dir_structure';
$r = mysql_query($query);
if ($r && mysql_result($r,0) > 0) $errorText .= $l_rule_broken.$l_rule4.'<br />';
$r = $application->getConn()->fetchArray('SELECT SUM(IF(MOD(rght-lft,2)=1,0,1)) FROM dir_structure');
if ($r[0] > 0) $errorText .= $l_rule_broken.$l_rule4.'<br />';

// Если уровень узла нечетное число то тогда левый ключ ВСЕГДА нечетное число, то же самое и для четных чисел
$query = 'SELECT SUM(IF(MOD(lft,2)+MOD(level,2)=1,0,1)) FROM dir_structure';
$r = mysql_query($query);
if ($r && mysql_result($r,0) > 0) $errorText .= $l_rule_broken.$l_rule5.'<br />';
$r = $application->getConn()->fetchArray('SELECT SUM(IF(MOD(lft,2)+MOD(level,2)=1,0,1)) FROM dir_structure');
if ($r[0] > 0) $errorText .= $l_rule_broken.$l_rule5.'<br />';

// Ключи ВСЕГДА уникальны, вне зависимости от того правый он или левый
$query = 'SELECT count(*) FROM dir_structure a, dir_structure b WHERE a.lft=b.rght or (a.lft=b.lft and a.id<>b.id) or (a.rght=b.rght and a.id<>b.id)';
$r = mysql_query($query);
if ($r && mysql_result($r,0) > 0) $errorText .= $l_rule_broken.$l_rule6.'<br />';
$r = $application->getConn()->fetchArray('SELECT count(*) FROM dir_structure a, dir_structure b WHERE a.lft=b.rght or (a.lft=b.lft and a.id<>b.id) or (a.rght=b.rght and a.id<>b.id)');
if ($r[0] > 0) $errorText .= $l_rule_broken.$l_rule6.'<br />';

if ($errorText) {
$res['text'] .= '<b class="error">'.$t->_('Обнаружены ошибки в структуре разделов').'</b><div class="note">'.$errorText.'</div>';
Expand Down
13 changes: 6 additions & 7 deletions cms/include/action_fix.php
Original file line number Diff line number Diff line change
Expand Up @@ -87,12 +87,11 @@
if ($_REQUEST['cat_structure']) {

// Backup
fssql_query('DROP TABLE IF EXISTS '.STRUCTURE_BACKUP);
$r = fssql_query('SHOW CREATE TABLE dir_structure');
$f = mysql_fetch_row($r);
$application->getConn()->executeQuery('DROP TABLE IF EXISTS '.STRUCTURE_BACKUP);
$f = $application->getConn()->fetchArray('SHOW CREATE TABLE dir_structure');
$query = str_replace('dir_structure', STRUCTURE_BACKUP, $f[1]);
fssql_query($query);
fssql_query('INSERT INTO '.STRUCTURE_BACKUP.' SELECT * FROM dir_structure');
$application->getConn()->executeQuery($query);
$application->getConn()->executeQuery('INSERT INTO '.STRUCTURE_BACKUP.' SELECT * FROM dir_structure');

$structure = array(
1 => array(
Expand All @@ -104,8 +103,8 @@
'level' => 0,
)
);
$r = fssql_query('SELECT * FROM dir_structure ORDER BY lft');
while($f = mysql_fetch_assoc($r)) {
$r = $application->getConn()->query('SELECT * FROM dir_structure ORDER BY lft');
while($f = $r->fetch()) {
$f['id']++;
if ($f['data_id']) $struct[] = $f;
}
Expand Down
46 changes: 31 additions & 15 deletions cms/include/action_groups.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@
if ($action == 'delete') {
$id = (int)$_POST['id'];
if ($id > 0) {
fssql_query('DELETE FROM users_groups_allow_cat WHERE group_id='.$id);
fssql_query('DELETE FROM users_groups_deny_filesystem WHERE group_id='.$id);
fssql_query('DELETE FROM users_groups_membership WHERE group_id='.$id);
fssql_query('DELETE FROM users_groups WHERE id='.$id);
$application->getConn()->executeQuery('DELETE FROM users_groups_allow_cat WHERE group_id='.$id);
$application->getConn()->executeQuery('DELETE FROM users_groups_deny_filesystem WHERE group_id='.$id);
$application->getConn()->executeQuery('DELETE FROM users_groups_membership WHERE group_id='.$id);
$application->getConn()->executeQuery('DELETE FROM users_groups WHERE id='.$id);
}
$res['success'] = true;
}
Expand All @@ -39,27 +39,43 @@
$id = (int)$_POST['id'];

if ($id >= 0) {
$r = fssql_query('SELECT id FROM users_groups WHERE name="'.mysql_escape_string($_POST['name']).'" and id<>'.$id);
if (mysql_num_rows($r)) throw new Exception_Form($translator->_('Группа с таким именем уже существует.'), 'name');

$d = $application->getConn()->fetchAll('SELECT id FROM users_groups WHERE name=? and id<>?', array($_POST['name'], $id));
if (count($d)) throw new Exception_Form($translator->_('Группа с таким именем уже существует.'), 'name');

if ($id > 0) {
fssql_query('UPDATE users_groups SET name="'.mysql_escape_string($_POST['name']).'", describ="'.mysql_escape_string($_POST['describ']).'" WHERE id='.$id);
$application->getConn()->update('users_groups',array(
'name' => $_POST['name'],
'describ' => $_POST['describ'],
),array(
'id' => $id
));
} else {
fssql_query('INSERT INTO users_groups SET name="'.mysql_escape_string($_POST['name']).'", describ="'.mysql_escape_string($_POST['describ']).'"');
$id = mysql_insert_id();
$application->getConn()->insert('users_groups',array(
'name' => $_POST['name'],
'describ' => $_POST['describ'],
));
$id = $application->getConn()->lastInsertId();
}
}

if (isset($_POST['remove']) && is_array($_POST['remove']))
foreach($_POST['remove'] as $uid) if ($uid)
fssql_query('DELETE FROM users_groups_membership WHERE user_id='.(int)$uid.' and group_id='.$id);
foreach($_POST['remove'] as $uid) if ($uid) {
$application->getConn()->delete('users_groups_membership',array(
'user_id' => (int)$uid,
'group_id' => $id,
));
}

if (isset($_POST['add']) && is_array($_POST['add']))
foreach($_POST['add'] as $uid) if ($uid && ($uid != 1 || $id != GROUP_ADMIN))
fssql_query('INSERT INTO users_groups_membership SET user_id='.(int)$uid.', group_id='.$id);
foreach($_POST['add'] as $uid) if ($uid && ($uid != 1 || $id != GROUP_ADMIN)) {
$application->getConn()->insert('users_groups_membership',array(
'user_id' => (int)$uid,
'group_id' => $id,
));
}

$res['success'] = true;
}

echo json_encode($res);
?>
echo json_encode($res);
57 changes: 25 additions & 32 deletions cms/include/action_materials.php
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,10 @@
$right[2] = $user->allowCat(PERM_CAT_MAT_PUB, $id); // Публикация материалов

$right[3] = '';
$r = fssql_query('SELECT preview, typ FROM dir_data WHERE id='.(int)$id);
if ($r && mysql_num_rows($r))
list($right[3], $right[4]) = mysql_fetch_array($r);

$f = $application->getConn()->fetchArray('SELECT preview, typ FROM dir_data WHERE id=?',array((int)$id));
if ($f)
list($right[3], $right[4]) = $f;

if ($right[3]) $right[3] = trim($right[3],'/').'/';
$right[3] = $catalog->url.$right[3];
Expand All @@ -91,9 +92,8 @@

if ($action == 'mark_del' && is_array($sel)) {

$r = fssql_query("SELECT alias FROM types WHERE id=".$_POST['mat_type']);
$table = mysql_result($r,0);
fssql_query("update $table set type=type|".MATH_DELETED." where id IN (".implode(',',$sel).")");
$table = $application->getConn()->fetchColumn('SELECT alias FROM types WHERE id=?',array($_POST['mat_type']),0);
$application->getConn()->executeQuery("update $table set type=type|".MATH_DELETED." where id IN (".implode(',',$sel).")");
$res['success'] = true;

}
Expand All @@ -119,20 +119,19 @@
$where = '';
if ($action == 'up') {
$catalog->fixMaterialTags();
$r = fssql_query("select id from ".$objectDefinition->table." where id in (".implode(',',$sel).") order by tag");
$r = $application->getConn()->query("select id from ".$objectDefinition->table." where id in (".implode(',',$sel).") order by tag");
$sel = array();
while($f = mysql_fetch_row($r)) $sel[] = $f[0];
while($f = $r->fetch()) $sel[] = $f['id'];
}
if ($action == 'down') {
$catalog->fixMaterialTags();
$r = fssql_query("select id from ".$objectDefinition->table." where id in (".implode(',',$sel).") order by tag desc");
$r = $application->getConn()->query("select id from ".$objectDefinition->table." where id in (".implode(',',$sel).") order by tag desc");
$sel = array();
while($f = mysql_fetch_row($r)) $sel[] = $f[0];
while($f = $r->fetch()) $sel[] = $f['id'];
}

$r = fssql_query("select handler from types where alias = '".$objectDefinition->table."'");
if ($r && mysql_num_rows($r)) {
$handler = mysql_result($r,0);
$handler = $application->getConn()->fetchColumn("select handler from types where alias = ?",array($objectDefinition->table));
if ($handler) {
if (substr($handler, -4) != '.php') $handler .= '.php';
if ($handler && file_exists(PLUGIN_MATH_DIR.'/'.$handler))
include(PLUGIN_MATH_DIR.'/'.$handler);
Expand All @@ -156,23 +155,20 @@
$where="id=$val"; else $where .= " or id=$val";

if ($action == 'up') {
$r = fssql_query("select tag from ".$objectDefinition->table." where id=$val");
$f = mysql_fetch_row($r);
$tag = $f[0];
$r = fssql_query("select A.tag,A.id from ".$objectDefinition->table." A where A.tag<$tag and($cats) order by A.tag desc limit 0,1");
if ($f = mysql_fetch_row($r)) {
fssql_query("update ".$objectDefinition->table." set tag=$f[0] where id=$val");
fssql_query("update ".$objectDefinition->table." set tag=$tag where id=$f[1]");
$tag = $application->getConn()->fetchColumn("select tag from ".$objectDefinition->table." where id=?",array($val),0);

$f = $application->getConn()->fetchArray("select A.tag,A.id from ".$objectDefinition->table." A where A.tag<$tag and($cats) order by A.tag desc limit 0,1");
if ($f) {
$application->getConn()->executeQuery("update ".$objectDefinition->table." set tag=$f[0] where id=$val");
$application->getConn()->executeQuery("update ".$objectDefinition->table." set tag=$tag where id=$f[1]");
}
}
if ($action == 'down') {
$r = fssql_query("select tag,idcat from ".$objectDefinition->table." where id=$val");
$f = mysql_fetch_row($r);
$tag = $f[0];
$r = fssql_query("select A.tag,A.id from ".$objectDefinition->table." A where A.tag>$tag and($cats) order by A.tag limit 0,1");
if ($f = mysql_fetch_row($r)) {
fssql_query("update ".$objectDefinition->table." set tag=$f[0] where id=$val");
fssql_query("update ".$objectDefinition->table." set tag=$tag where id=$f[1]");
$tag = $application->getConn()->fetchColumn("select tag,idcat from ".$objectDefinition->table." where id=?",array($val),0);
$f = $application->getConn()->fetchArray("select A.tag,A.id from ".$objectDefinition->table." A where A.tag>$tag and($cats) order by A.tag limit 0,1");
if ($f) {
$application->getConn()->executeQuery("update ".$objectDefinition->table." set tag=$f[0] where id=$val");
$application->getConn()->executeQuery("update ".$objectDefinition->table." set tag=$tag where id=$f[1]");
}
}

Expand All @@ -196,13 +192,11 @@
}
if ($action == 'move') {

$r = fssql_query("SELECT MAX(tag) FROM ".$objectDefinition->table." WHERE idcat=".$_POST['cat']);
$tt = mysql_result($r,0) + 1;
$tt = 1 + $application->getConn()->fetchColumn("SELECT MAX(tag) FROM ".$objectDefinition->table." WHERE idcat=?",array($_POST['cat']),0);
$stat = "update ".$objectDefinition->table." set idcat=".$_POST['cat'].", tag=$tt";


}
if ($stat) fssql_query("$stat where ($where)");
if ($stat) $application->getConn()->executeQuery("$stat where ($where)");

if ($action == 'move' || $action == 'unpub' || $action == 'pub') {

Expand All @@ -224,4 +218,3 @@


echo json_encode($res);
?>
2 changes: 1 addition & 1 deletion cms/include/classes/Cetera/Exception/Form.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,6 @@ class Form extends CMS
public function __construct($code, $field, $param = false)
{
$this->field = $field;
parent::__construct($code, $param);
parent::__construct($code, $param, true);
}
}

0 comments on commit 9d39666

Please sign in to comment.