Правильно ли я дописал все?:
\base\inc\system\comments.php
<?
function CommentsAddPost( $ObjectId, $CommentsTable, $Object
sTable, $CounterField, $AlloyField, $BackUrl, $BackUrlUfu, $
PageParam = 'page', $PageParamUfu = null, $BackUrlUfuSuffix
= '' ){<br />
if (isset($_POST['parent_id'])){<br />
$parent_id = explode('_', $_POST['parent_id'], 2);<br />
if($parent_id[1] == 0){<br />
$sp = false;<br />
}else{<br />
$sp = true;<br />
}<br />
} else {<br />
$parent_id = '';<br />
$sp = false;<br />
}<br />
<br />
if(!isset($PageParamUfu)){<br />
$PageParamUfu = $PageParam;<br />
}<br />
$back_url = GetSiteUrl().Ufu(<br />
$BackUrl.($sp ? "&$PageParam=".$_GET[$PageParam] : ''),<br />
$BackUrlUfu.($sp ? $PageParamUfu.'{'.$PageParam.
'}/' : '').$BackUrlUfuSuffix<br />
);<br />
// -----------------------------------------------------<br />
System::database()->Select($ObjectsTable, "`id`='$ObjectId'");<br />
if (System::database()->NumRows() != 0){<br />
$obj = System::database()->FetchRow();<br />
$alloy_comments = $obj[$AlloyField] == '1';<br />
$posts = new Posts($CommentsTable, $alloy_comments);
<br />
if($posts->SavePost($ObjectId, false)){<br />
$post_id = System::database()->GetLastId();<br />
$counter = $obj[$CounterField] + 1;<br />
System::database()->Update($ObjectsTable, "`$CounterField`='$counter'", "`id`='$ObjectId'");<br />
<br />
//$parent_id = explode('_', $_POST['parent_id'], 2);<br />
if($parent_id != ''){<br />
$parent_id = SafeDB($parent_id[1], 11, int);<br />
} else {<br />
$parent_id = 0;<br />
}<br />
<br />
$post_anchor = ($parent_id != 0 ? "#post_$parent_id" : '#post_'.$post_id);<br />
GO($back_url.$post_anchor);<br />
}else{<br />
System::site()->AddTextBox('Ошибка', $posts->PrintErrors());<br />
}<br />
}else{<br />
System::site()->AddTextBox('Ошибка','<div class="errors_message">Произошла ошибка: запись(фото/статья/файл/...) которую вы комментируете не найдена. Возможно она была
удалена.</div><br><br><a class="btn btn-small" href="'.GetSiteUrl().Ufu("index.php?name=articles", "{name}/").'">« Назад</a>');<br />
}<br />
}
?>
Думаю можно сделать короче...
\modules\articles\index.php
<?
case 'addpost':<br />
if(!$get_art == ''){<br />
$id = intval(SafeEnv($get_art, 11, int));<br
/>
$cat = SafeDB($get_cat, 11, int);<br />
CommentsAddPost(<br />
$id,<br />
'articles_comments',<br />
'articles',<br />
'comments_counter',<br />
'allow_comments',<br />
"index.php?name=articles&op=read&art=$id&cat=$cat",<br />
'articles/{cat}/{art}/'<br />
);<br />
} else {<br />
GO(GetSiteUrl().Ufu('index.php?name=articles', '
{name}/'));<br />
}<br />
break;
?>
п.с.
<?
if (isset($_GET['art'])) {$get_art = $_GET['art'];} else {$get_art = '';}
?>
я вот не пойму зачем objectId ?
comments.php
<?
function CommentsDeletePost( $ObjectId, $CommentsTable, $Obj
ectsTable, $CounterField, $DeleteUrl, $Anchor = '#comments'
){<br />
$posts = new Posts($CommentsTable);<br />
$posts->DeletePageUrl = $DeleteUrl;<br />
$deleted_posts_count = $posts->DeletePost();<br />
if($deleted_posts_count > 0){<br />
System::database()->Select($ObjectsTable, "`id`='$ObjectId'");<br />
$obj = System::database()->FetchRow();<br />
$counter = $obj[$CounterField] - $deleted_posts_count;<br />
System::database()->Update($ObjectsTable, "`$CounterField`='$counter'", "`id`='$ObjectId'");<br />
GoRefererUrl($_REQUEST['back'], $Anchor);<br />
}<br />
}
?>
Что за каунтер ? если objectid заведомо не верны то что ? нужна ли тут проверка
-- Изменено "Fort": 03.09.2015 22:31 --