Исправление функции добавления участников в приватную тему, функция вообще не была дописана, видимо вы юзера торопили белого, всё хотели новый релиз, никогда не торопите кодеров! Пришлось дописывать самому.
В файле: /engine/bullet_energy/action/site/editor.phpНайдите:
private function _privateParamTopic()
{
...
}
Замените на:
private function _privateParamTopic()
{
if(empty(parent::$globalParam['id']) or !parent::$is_logged) {
return parent::$helper->getError() ;
}
parent::$db->query("SELECT * FROM " . DBNAME . "." . PREFIX . "_be_topic WHERE id = " . parent::$globalParam['id']) ;
$row = parent::$db->get_row() ;
if(!parent::$helper->ckeckModulesConfig('be_ts_add_private') and parent::$helper->checkModerator($row['id_parent']) or !$row) {
return parent::$helper->getError() ;
}
if( empty($_REQUEST['is_param']) ) {
// Старая функция вывода таблицы редактирования
$row['topic_private_user'] = unserialize($row['topic_private_user']) ;
//sort($row['topic_private_user']['full_array']) ;
foreach ($row['topic_private_user']['full_array'] as $key => $value) {
if($row['autor_id'] != $value['id']) {
$value['marker'] = '<a class="deleteUser" onclick="userDeleteTopicPrivate(' . parent::$globalParam['id'] . ',' . $key . '); return false;" href="#">[X]</a>' ;
}
$row['listUser'][] = '<li id="listElement-' . $key . '">' . parent::$link->card_user(array($value['name'], $value['id'])) . $value['name'] . '</a>' . $value['marker'] . '</li>' ;
}
$row['listUser'] = '<ul>' . implode(', ', $row['listUser']) . '</ul>' ;
return parent::$helper->getJson(array('param' => 1, 'titl'=>parent::$bullet_energy_lang['topic_144'],'data' => '<div class="paramBox"><label for="is_private"><input type="checkbox" checked="checked" name="is_private" value="1" id="is_private">' . parent::$bullet_energy_lang['ptopic_0'] . '</label></div><div class="paramBox"><p>' . parent::$bullet_energy_lang['ptopic_1'] . '</p><input style="width:467px!important" type="text" id="new_private_user" name="new_private_user" value=""></div><div class="userPrivateBlock"><p>' . parent::$bullet_energy_lang['ptopic_3'] . '</p>' . $row['listUser'] . '</div><i style="color:red;font-size:11px">' . parent::$bullet_energy_lang['ptopic_2'] . '[/i]<input type="hidden" name="id_topic" value="' . $row['id'] . '">')) ;
}
//
elseif ($_REQUEST['is_param'] == 'save') {
if((int)$_REQUEST['status'] != $row['topic_type']) {
parent::$db->query("UPDATE " . DBNAME . "." . PREFIX . "_be_topic SET topic_type = 0, topic_private_user = '' WHERE id = " . parent::$globalParam['id']) ;
return parent::$helper->getJson(array('param' => 1)) ;
}
$row['topic_private_user'] = unserialize($row['topic_private_user']) ;
//sort($row['topic_private_user']['full_array']) ;
$_REQUEST['user_new'] = parent::$helper->convert_unicode($_REQUEST['user_new'], parent::$config['DLE']['charset']) ;
$_REQUEST['user_new'] = explode(',', trim(strip_tags($_REQUEST['user_new']) ) ) ;
foreach ($_REQUEST['user_new'] as $key => $value) {
$value = trim($value) ;
if(!$value) {
continue ;
}
$value = parent::$db->safesql($value) ;
$is = parent::$db->super_query("SELECT user_id, name FROM " . DBNAME . "." . PREFIX . "_users WHERE name = '{$value}'") ;
// var_dump($row);
if(!$is['user_id'] or in_array($is['user_id'], $row['topic_private_user']['array']) ) {
continue ;
}
$row['marker'] = true ;
$is['user_id'] = (int)$is['user_id'] ;
$row['topic_private_user']['array'][] = $is['user_id'] ;
$row['topic_private_user']['full_array'][] = array('id' => $is['user_id'], 'name' => $is['name']) ;
unset($is) ;
}
if($row['marker']) {
//sort($row['topic_private_user']['full_array']) ;
foreach ($row['topic_private_user']['full_array'] as $key => $value) {
if($row['autor_id'] != $value['id']) {
$value['marker'] = '<a class="deleteUser" onclick="userDeleteTopicPrivate(' . parent::$globalParam['id'] . ',' . $key . '); return false;" href="#">[X]</a>' ;
}
$row['listUser'][] = '<li id="listElement-' . $key . '">' . parent::$link->card_user(array($value['name'], $value['id'])) . $value['name'] . '</a>' . $value['marker'] . '</li>' ;
}
$row['listUser'] = '<ul>' . implode(', ', $row['listUser']) . '</ul>' ;
$row['topic_private_user'] = parent::$db->safesql(serialize($row['topic_private_user'])) ;
parent::$db->query("UPDATE " . DBNAME . "." . PREFIX . "_be_topic SET topic_private_user = '{$row['topic_private_user']}' WHERE id = " . parent::$globalParam['id']) ;
return parent::$helper->getJson(array('param' => 1, 'data' => $row['listUser'])) ;
} else {
return parent::$helper->getError(parent::$bullet_energy_lang['ptopic_4']) ;
}
} elseif ($_REQUEST['is_param'] == 'remove') {
$_REQUEST['user'] = (int)$_REQUEST['user'] ;
$row['topic_private_user'] = unserialize($row['topic_private_user']) ;
if(isset($row['topic_private_user']['full_array'][$_REQUEST['user']]['id']) and in_array($row['topic_private_user']['full_array'][$_REQUEST['user']]['id'], $row['topic_private_user']['array'])) {
$row['topic_private_user']['array'] = array_flip($row['topic_private_user']['array']) ;
unset($row['topic_private_user']['array'][$row['topic_private_user']['full_array'][$_REQUEST['user']]['id']]) ;
$row['topic_private_user']['array'] = array_flip($row['topic_private_user']['array']) ;
unset($row['topic_private_user']['full_array'][$_REQUEST['user']]) ;
//sort($row['topic_private_user']['full_array']) ;
foreach ($row['topic_private_user']['full_array'] as $key => $value) {
if($row['autor_id'] != $value['id']) {
$value['marker'] = '<a class="deleteUser" onclick="userDeleteTopicPrivate(' . parent::$globalParam['id'] . ',' . $key . '); return false;" href="#">[X]</a>' ;
}
$row['listUser'][] = '<li id="listElement-' . $key . '">' . parent::$link->card_user(array($value['name'], $value['id'])) . $value['name'] . '</a>' . $value['marker'] . '</li>' ;
}
$row['listUser'] = '<ul>' . implode(', ', $row['listUser']) . '</ul>' ;
//
//
$row['topic_private_user'] = parent::$db->safesql(serialize($row['topic_private_user'])) ;
parent::$db->query("UPDATE " . DBNAME . "." . PREFIX . "_be_topic SET topic_private_user = '{$row['topic_private_user']}' WHERE id = " . parent::$globalParam['id']) ;
return parent::$helper->getJson(array('param' => 1, 'data' => $row['listUser'])) ;
} else {
return parent::$helper->getError() ;
}
}
}
В файле: /templates/ваш шаблон/bullet_energy/js/base_site_bullet_energy.jsНайти функцию:
function userDeleteTopicPrivate(a, b) {
...
}
Заменить на:
function userDeleteTopicPrivate(a, b) {
Ajax_Loading("");
if (forum_cpu) {
var c = dle_root + forum_path + "/set/param_private_topic"
}
else {
var c = dle_root + "index.php?do=" + forum_path + "&action=set¶m=param_private_topic"
}
$.post(c, {
id: a,
user: b,
is_param: "remove"
}, function(a) {
if (a.param == 1) {
$(".userPrivateBlock ul").replaceWith(a.data);
}
Ajax_close("")
}, "json")
}
Тут у нас всё. Теперь новых участников можно добавлять и удалять нормально полноценно через ajax.
Сообщение отредактировал 18 сентября 2014 - 19:40