diff --git a/upload/install/data/install_data.sql b/upload/install/data/install_data.sql
index 89121d1fc167ba785c0882eb7c799ab5cf7e317d..b8c148cb23b49a32600a88fb92fd436be806288d 100644
--- a/upload/install/data/install_data.sql
+++ b/upload/install/data/install_data.sql
@@ -211,6 +211,9 @@ INSERT INTO pre_common_setting VALUES ('authoronleft','1');
INSERT INTO pre_common_setting VALUES ('uidlogin','0');
INSERT INTO pre_common_setting VALUES ('autoidselect','0');
INSERT INTO pre_common_setting VALUES ('avatarmethod','0');
+INSERT INTO pre_common_setting VALUES ('nsprofiles','1');
+INSERT INTO pre_common_setting VALUES ('modasban','1');
+INSERT INTO pre_common_setting VALUES ('srchcensor','1');
INSERT INTO pre_common_setting VALUES ('backupdir','f027b6');
INSERT INTO pre_common_setting VALUES ('bannedmessages','1');
INSERT INTO pre_common_setting VALUES ('bbclosed','');
diff --git a/upload/search.php b/upload/search.php
index 5188ec8eb0a1add386d2d6c1f2986c9a32fe9b86..8f6d4ef804667a7d9ca9444208a9c609269fe079 100644
--- a/upload/search.php
+++ b/upload/search.php
@@ -50,6 +50,10 @@ if($mod == 'curforum') {
$_GET['srhfid'] = 0;
}
+if(!empty($_GET['srchtxt']) && getglobal('setting/srchcensor')) {
+ $_GET['srchtxt'] = censor($_GET['srchtxt']);
+}
+
require DISCUZ_ROOT.'./source/module/search/search_'.$mod.'.php';
?>
\ No newline at end of file
diff --git a/upload/source/admincp/admincp_setting.php b/upload/source/admincp/admincp_setting.php
index 760f8f34c28fa7aad47fa6a211b5f702e125fca1..d87b7e6cc00a61530b955e62739b5b977d72c8c1 100644
--- a/upload/source/admincp/admincp_setting.php
+++ b/upload/source/admincp/admincp_setting.php
@@ -1403,6 +1403,8 @@ EOF;
showsetting('setting_permissions_post_append', 'settingnew[postappend]', $setting['postappend'], 'radio');
showsetting('setting_permissions_maxpolloptions', 'settingnew[maxpolloptions]', $setting['maxpolloptions'], 'text');
showsetting('setting_permissions_editby', 'settingnew[editedby]', $setting['editedby'], 'radio');
+ showsetting('setting_permissions_nsprofiles', 'settingnew[nsprofiles]', $setting['nsprofiles'], 'radio');
+ showsetting('setting_permissions_modasban', 'settingnew[modasban]', $setting['modasban'], 'radio');
showtitle('nav_setting_rate');
showsetting('setting_permissions_karmaratelimit', 'settingnew[karmaratelimit]', $setting['karmaratelimit'], 'text');
@@ -2227,6 +2229,10 @@ EOT;
showtablerow('', '', $search_collection);
showtablefooter();
+ showtableheader('setting_search_srchsetting');
+ showsetting('setting_search_srchcensor', 'settingnew[srchcensor]', $setting['srchcensor'], 'radio');
+ showtablefooter();
+
showtableheader('setting_search_srchhotkeywords');
showsetting('setting_search_srchhotkeywords', 'settingnew[srchhotkeywords]', $setting['srchhotkeywords'], 'textarea');
diff --git a/upload/source/class/helper/helper_form.php b/upload/source/class/helper/helper_form.php
index 4b03de8df7400373cc0cc16c0b99e2871b471a83..98d444502c71fcc6154325a6d0358e335da96eaf 100644
--- a/upload/source/class/helper/helper_form.php
+++ b/upload/source/class/helper/helper_form.php
@@ -36,11 +36,13 @@ class helper_form {
}
}
- public static function censor($message, $modword = NULL, $return = FALSE) {
+ public static function censor($message, $modword = NULL, $return = FALSE, $modasban = TRUE) {
global $_G;
$censor = discuz_censor::instance();
$censor->check($message, $modword);
- if($censor->modbanned() && empty($_G['group']['ignorecensor'])) {
+ // 新增对仅支持禁止关键词的模块在遇到审核关键词时禁止发布相关内容
+ // $modasban 用于指示是否支持审核, 支持审核的模块需要设置为 FALSE
+ if(($censor->modbanned() && empty($_G['group']['ignorecensor'])) || (($modasban && !empty($_G['setting']['modasban'])) && $censor->modmoderated() && empty($_G['group']['ignorecensor']))) {
$wordbanned = implode(', ', $censor->words_found);
if($return) {
return array('message' => lang('message', 'word_banned', array('wordbanned' => $wordbanned)));
diff --git a/upload/source/function/function_blog.php b/upload/source/function/function_blog.php
index 8cda8fe5be1700dcc9b57a6bc144d1d727925439..63ed36738ee26a31ba9bb3c631eeabe5b17359f8 100644
--- a/upload/source/function/function_blog.php
+++ b/upload/source/function/function_blog.php
@@ -33,7 +33,7 @@ function blog_post($POST, $olds=array()) {
}
$POST['subject'] = getstr(trim($POST['subject']), 80);
- $POST['subject'] = censor($POST['subject']);
+ $POST['subject'] = censor($POST['subject'], NULL, FALSE, FALSE);
if(strlen($POST['subject'])<1) $POST['subject'] = dgmdate($_G['timestamp'], 'Y-m-d');
$POST['friend'] = intval($POST['friend']);
@@ -67,10 +67,10 @@ function blog_post($POST, $olds=array()) {
$POST['message'] = checkhtml($POST['message']);
if($_G['mobile']) {
$POST['message'] = getstr($POST['message'], 0, 0, 0, 1);
- $POST['message'] = censor($POST['message']);
+ $POST['message'] = censor($POST['message'], NULL, FALSE, FALSE);
} else {
$POST['message'] = getstr($POST['message'], 0, 0, 0, 0, 1);
- $POST['message'] = censor($POST['message']);
+ $POST['message'] = censor($POST['message'], NULL, FALSE, FALSE);
$POST['message'] = preg_replace("/\
\<\/div\>/i", '', $POST['message']);
$POST['message'] = preg_replace_callback("/
/is", 'blog_post_callback_blog_check_url_1', $POST['message']);
}
diff --git a/upload/source/function/function_comment.php b/upload/source/function/function_comment.php
index 9e9fb0cafb9542e901717524c315d100d6e6b45f..0a4d9a25d7790541c6b1f3341b109628fa2fbf4a 100644
--- a/upload/source/function/function_comment.php
+++ b/upload/source/function/function_comment.php
@@ -187,7 +187,7 @@ function add_comment($message, $id, $idtype, $cid = 0) {
break;
}
- $message = censor($message);
+ $message = censor($message, NULL, FALSE, FALSE);
if(censormod($message)) {
$comment_status = 1;
} else {
diff --git a/upload/source/function/function_core.php b/upload/source/function/function_core.php
index 0f40ebdcc97ff3555d2987c6b4fdb6fbe5e93e4d..55957037220fad5266bce6aace036344229c4f95 100644
--- a/upload/source/function/function_core.php
+++ b/upload/source/function/function_core.php
@@ -1446,8 +1446,8 @@ function simplepage($num, $perpage, $curpage, $mpurl) {
return helper_page::simplepage($num, $perpage, $curpage, $mpurl);
}
-function censor($message, $modword = NULL, $return = FALSE) {
- return helper_form::censor($message, $modword, $return);
+function censor($message, $modword = NULL, $return = FALSE, $modasban = TRUE) {
+ return helper_form::censor($message, $modword, $return, $modasban);
}
function censormod($message) {
diff --git a/upload/source/function/function_portalcp.php b/upload/source/function/function_portalcp.php
index be816046ca0a8abc5abd6cc8a85d73e755d834c6..ec28b88e2b96ef6bf7b3a66c4e3671d4fbc58497 100644
--- a/upload/source/function/function_portalcp.php
+++ b/upload/source/function/function_portalcp.php
@@ -1027,7 +1027,7 @@ function addportalarticlecomment($id, $message, $idtype = 'aid') {
return 'comment_comment_notallowed';
}
- $message = censor($message);
+ $message = censor($message, NULL, FALSE, FALSE);
if(censormod($message)) {
$comment_status = 1;
} else {
diff --git a/upload/source/function/function_space.php b/upload/source/function/function_space.php
index aaf43505563090f55bdee08f96d5f9458475c966..fa077b9b52555e8aea41934a753733e92469f8c6 100644
--- a/upload/source/function/function_space.php
+++ b/upload/source/function/function_space.php
@@ -39,6 +39,10 @@ function getblockhtml($blockname,$parameters = array()) {
$privacy = $space['privacy']['profile'] ? $space['privacy']['profile'] : array();
foreach($_G['cache']['profilesetting'] as $fieldid=>$field) {
+ // 个人空间内不展现个人信息
+ if($_G['setting']['nsprofiles']) {
+ break;
+ }
if(!$field['available'] || in_array($fieldid, array('birthprovince', 'birthdist', 'birthcommunity', 'resideprovince', 'residedist', 'residecommunity'))) {
continue;
}
diff --git a/upload/source/function/function_spacecp.php b/upload/source/function/function_spacecp.php
index 0a2122b258260ec5458260784ef631af8c9051ef..569b71b60704db4b7fb62d15182ca8aeda00ede9 100644
--- a/upload/source/function/function_spacecp.php
+++ b/upload/source/function/function_spacecp.php
@@ -224,7 +224,7 @@ function pic_save($FILE, $albumid, $title, $iswatermark = true, $catid = 0) {
}
$title = getstr($title, 200);
- $title = censor($title);
+ $title = censor($title, NULL, FALSE, FALSE);
if(censormod($title) || $_G['group']['allowuploadmod']) {
$pic_status = 1;
} else {
@@ -339,7 +339,7 @@ function stream_save($strdata, $albumid = 0, $fileext = 'jpg', $name='', $title=
$filename = $name ? $name : substr(strrchr($filepath, '/'), 1);
$title = getstr($title, 200);
- $title = censor($title);
+ $title = censor($title, NULL, FALSE, FALSE);
if(censormod($title) || $_G['group']['allowuploadmod']) {
$pic_status = 1;
} else {
diff --git a/upload/source/include/portalcp/portalcp_article.php b/upload/source/include/portalcp/portalcp_article.php
index 33fba63de02f6395d24f55485865ff69fc36623f..7013b602b5d22d60498d5cab8d89bbd6cbdac3e3 100644
--- a/upload/source/include/portalcp/portalcp_article.php
+++ b/upload/source/include/portalcp/portalcp_article.php
@@ -50,10 +50,10 @@ if(submitcheck("articlesubmit", 0, $seccodecheck, $secqaacheck)) {
if(strlen($_POST['title']) < 1) {
showmessage('title_not_too_little');
}
- $_POST['title'] = censor($_POST['title']);
+ $_POST['title'] = censor($_POST['title'], NULL, FALSE, FALSE);
$_POST['pagetitle'] = getstr(trim($_POST['pagetitle']), 60);
- $_POST['pagetitle'] = censor($_POST['pagetitle']);
+ $_POST['pagetitle'] = censor($_POST['pagetitle'], NULL, FALSE, FALSE);
$htmlname = basename(trim($_POST['htmlname']));
$highlight_style = $_GET['highlight_style'];
@@ -61,7 +61,7 @@ if(submitcheck("articlesubmit", 0, $seccodecheck, $secqaacheck)) {
$style = implode('|',$highlight_style);
if(empty($_POST['summary'])) $_POST['summary'] = preg_replace("/(\s|\##########NextPage(\[title=.*?\])?##########\<\/strong\>)+/", ' ', $_POST['content']);
$summary = portalcp_get_summary($_POST['summary']);
- $summary = censor($summary);
+ $summary = censor($summary, NULL, FALSE, FALSE);
$_GET['author'] = dhtmlspecialchars($_GET['author']);
$_GET['url'] = str_replace('&', '&', dhtmlspecialchars($_GET['url']));
@@ -171,7 +171,7 @@ if(submitcheck("articlesubmit", 0, $seccodecheck, $secqaacheck)) {
}
$content = getstr($_POST['content'], 0, 0, 0, 0, 1);
- $content = censor($content);
+ $content = censor($content, NULL, FALSE, FALSE);
if(censormod($content) || $_G['group']['allowpostarticlemod']) {
$article_status = 1;
} else {
diff --git a/upload/source/include/portalcp/portalcp_comment.php b/upload/source/include/portalcp/portalcp_comment.php
index c3c3b55b470fe7781dfbce13a8ec5aec28c677c7..c91f8988bc818de974ceec7fb5be3cbe5180f412 100644
--- a/upload/source/include/portalcp/portalcp_comment.php
+++ b/upload/source/include/portalcp/portalcp_comment.php
@@ -56,7 +56,7 @@ if($_GET['op'] == 'requote') {
if(submitcheck('editsubmit')) {
$message = getstr($_POST['message'], 0, 0, 0, 2);
if(strlen($message) < 2) showmessage('content_is_too_short');
- $message = censor($message);
+ $message = censor($message, NULL, FALSE, FALSE);
if(censormod($message)) {
$comment_status = 1;
} else {
diff --git a/upload/source/include/space/space_profile.php b/upload/source/include/space/space_profile.php
index 5ed29fda477f0d2ce32913efb0c678c9a1ce3c8c..3b7cc82409f6bcde622cb9ef8d5796ac4044fcbe 100644
--- a/upload/source/include/space/space_profile.php
+++ b/upload/source/include/space/space_profile.php
@@ -107,6 +107,10 @@ if($_G['setting']['verify']['enabled']) {
space_merge($space, 'verify');
}
foreach($_G['cache']['profilesetting'] as $fieldid => $field) {
+ // 个人空间内不展现个人信息
+ if($_G['setting']['nsprofiles']) {
+ break;
+ }
if(!$field['available'] || in_array($fieldid, array('birthprovince', 'birthdist', 'birthcommunity', 'resideprovince', 'residedist', 'residecommunity'))) {
continue;
}
diff --git a/upload/source/include/spacecp/spacecp_album.php b/upload/source/include/spacecp/spacecp_album.php
index 09d62468fd4cd2ca09132d30b59d36ccac2856e7..acaebf67c7e938e6bc5d0e81dd357953a049695f 100644
--- a/upload/source/include/spacecp/spacecp_album.php
+++ b/upload/source/include/spacecp/spacecp_album.php
@@ -180,7 +180,7 @@ if($_GET['op'] == 'edit') {
continue;
}
$title = getstr($value, 150);
- $title = censor($title);
+ $title = censor($title, NULL, FALSE, FALSE);
if(censormod($title) || $_G['group']['allowuploadmod']) {
$pic_status = 1;
updatemoderate("picid", $picid);
diff --git a/upload/source/include/spacecp/spacecp_comment.php b/upload/source/include/spacecp/spacecp_comment.php
index 304eb9cb7634912f55b00b26d79831b2ce00ed82..66cab3ca11d788044e022c37d0994d96f0ba0f79 100644
--- a/upload/source/include/spacecp/spacecp_comment.php
+++ b/upload/source/include/spacecp/spacecp_comment.php
@@ -70,7 +70,7 @@ if($_GET['op'] == 'edit') {
$message = getstr($_POST['message'], 0, 0, 0, 2);
if(strlen($message) < 2) showmessage('content_is_too_short');
- $message = censor($message);
+ $message = censor($message, NULL, FALSE, FALSE);
if(censormod($message)) {
$comment_status = 1;
} else {
diff --git a/upload/source/include/spacecp/spacecp_doing.php b/upload/source/include/spacecp/spacecp_doing.php
index efa40b7322989b852cf54f3290c00fb6bd92a31a..4060691c286f0d96a5f4d3e21fd1f514196c5706 100644
--- a/upload/source/include/spacecp/spacecp_doing.php
+++ b/upload/source/include/spacecp/spacecp_doing.php
@@ -33,7 +33,7 @@ if(helper_access::check_module('doing')) {
showmessage('should_write_that');
}
- $message = censor($message, NULL, TRUE);
+ $message = censor($message, NULL, TRUE, TRUE);
if(is_array($message) && $message['message']) {
showmessage('do_success', dreferer(), array('message'=>$message['message']));
}
diff --git a/upload/source/include/spacecp/spacecp_index.php b/upload/source/include/spacecp/spacecp_index.php
index d1a5fdd19b9d0fc63f0b9176e9953dd823a99511..85207d1a6df7e7f54b80ea4a8a65fee7816aca04 100644
--- a/upload/source/include/spacecp/spacecp_index.php
+++ b/upload/source/include/spacecp/spacecp_index.php
@@ -226,11 +226,10 @@ if (submitcheck('musicsubmit')) {
$mp3name = $_POST['mp3name'];
$cdbj = $_POST['cdbj'];
$mp3list = empty($blockdata['parameters']['music']['mp3list']) ? array() : $blockdata['parameters']['music']['mp3list'];
- censor(implode('', $_POST['mp3name']));
foreach ($mp3url as $key => $value) {
if (!empty($value)) {
if(empty($mp3name[$key])) $mp3name[$key] = substr($value,strrpos($value,'/')+1,strlen($value));
- $mp3list[] = array('mp3url'=>$value, 'mp3name'=>$mp3name[$key], 'cdbj'=>$cdbj[$key]);
+ $mp3list[] = array('mp3url'=>$value, 'mp3name'=>censor($mp3name[$key]), 'cdbj'=>$cdbj[$key]);
}
}
$blockdata['parameters']['music']['mp3list'] = $mp3list;
@@ -240,11 +239,10 @@ if (submitcheck('musicsubmit')) {
$mp3name = $_POST['mp3name'];
$cdbj = $_POST['cdbj'];
$mp3list = array();
- censor(implode('', $_POST['mp3name']));
foreach ($mp3url as $key => $value) {
if (!empty($value)) {
if(empty($mp3name[$key])) $mp3name[$key] = substr($value,strrpos($value,'/')+1,strlen($value));
- $mp3list[] = array('mp3url'=>$value, 'mp3name'=>$mp3name[$key], 'cdbj'=>$cdbj[$key]);
+ $mp3list[] = array('mp3url'=>$value, 'mp3name'=>censor($mp3name[$key]), 'cdbj'=>$cdbj[$key]);
}
}
diff --git a/upload/source/include/spacecp/spacecp_share.php b/upload/source/include/spacecp/spacecp_share.php
index 3ed50c86e1bd7d23b1af595e97ef304725148062..709f0af494482db1eaa7478489db6ebc2b212242 100644
--- a/upload/source/include/spacecp/spacecp_share.php
+++ b/upload/source/include/spacecp/spacecp_share.php
@@ -444,7 +444,7 @@ if($_GET['op'] == 'delete') {
}
$arr['body_general'] = getstr($_POST['general'], 150, 0, 0, 1);
- $arr['body_general'] = censor($arr['body_general']);
+ $arr['body_general'] = censor($arr['body_general'], NULL, FALSE, FALSE);
if(censormod($arr['body_general']) || $_G['group']['allowsharemod']) {
$arr['status'] = 1;
} else {
diff --git a/upload/source/language/lang_admincp.php b/upload/source/language/lang_admincp.php
index 8c3a5bd180ad14a210bc322fe8ff5d7d8c99369e..04d0369853b1cc2243ee9d9fd3dbd575113a0a53 100644
--- a/upload/source/language/lang_admincp.php
+++ b/upload/source/language/lang_admincp.php
@@ -1915,6 +1915,10 @@ $lang = array
'setting_permissions_editby_comment' => '在 60 秒后编辑帖子添加“本帖由 xxx 于 xxxx-xx-xx 编辑”字样。管理员编辑不受此限制',
'setting_permissions_post_append' => '启用帖子补充功能',
'setting_permissions_post_append_comment' => '启用后,当用户无法编辑自己的帖子时,可以补充内容',
+ 'setting_permissions_nsprofiles' => '个人空间内不展现个人信息',
+ 'setting_permissions_nsprofiles_comment' => '启用后个人空间内将不展现个人信息',
+ 'setting_permissions_modasban' => '不忽略审核关键词',
+ 'setting_permissions_modasban_comment' => '启用后在不支持审核关键词的模块内发现此类关键词将拒绝提交,关闭则允许提交',
'setting_credits' => '积分设置',
'setting_credits_base' => '基本设置',
@@ -2473,6 +2477,10 @@ $lang = array
'setting_search_status_comment' => '勾选您要开启的搜索栏目',
'setting_search_onoff' => '开启',
'search_item_name' => '搜索项目',
+
+ 'setting_search_srchsetting' => '搜索选项设置',
+ 'setting_search_srchcensor' => '搜索受词语过滤控制',
+
'setting_search_srchhotkeywords' => '热门关键词',
'setting_search_srchhotkeywords_comment' => '每行一个',
'setting_search_srchhotkeywords_disabled' => '您已开启纵横搜索服务,搜索相关设置请到 云平台->纵横搜索 设置',
diff --git a/upload/source/module/forum/forum_group.php b/upload/source/module/forum/forum_group.php
index 3329fef1fff3f60ecbf3f0bc5a2a2c7f1ed6d3d0..6217d10d76ec15354c614c79f88d90f1c8f755cf 100644
--- a/upload/source/module/forum/forum_group.php
+++ b/upload/source/module/forum/forum_group.php
@@ -308,7 +308,7 @@ if($action == 'index') {
} else {
$parentid = intval($_GET['parentid']);
$fup = intval($_GET['fup']);
- $name = censor(dhtmlspecialchars(cutstr(trim($_GET['name']), 20, '')));
+ $name = censor(dhtmlspecialchars(cutstr(trim($_GET['name']), 20, '')), NULL, FALSE, FALSE);
$censormod = censormod($name);
if(empty($name)) {
showmessage('group_name_empty');
@@ -328,7 +328,7 @@ if($action == 'index') {
showmessage('group_name_exist');
}
require_once libfile('function/discuzcode');
- $descriptionnew = discuzcode(dhtmlspecialchars(censor(trim($_GET['descriptionnew']))), 0, 0, 0, 0, 1, 1, 0, 0, 1);
+ $descriptionnew = discuzcode(dhtmlspecialchars(censor(trim($_GET['descriptionnew']), NULL, FALSE, FALSE)), 0, 0, 0, 0, 1, 1, 0, 0, 1);
$censormod = censormod($descriptionnew);
if($censormod) {
showmessage('group_description_failed');
@@ -411,7 +411,7 @@ if($action == 'index') {
$parentid = intval($_GET['parentid']);
if(isset($_GET['name'])) {
- $_GET['name'] = censor(dhtmlspecialchars(cutstr(trim($_GET['name']), 20, '')));
+ $_GET['name'] = censor(dhtmlspecialchars(cutstr(trim($_GET['name']), 20, '')), NULL, FALSE, FALSE);
if(empty($_GET['name'])) {
showmessage('group_name_empty');
}
@@ -466,7 +466,7 @@ if($action == 'index') {
@unlink($_G['forum']['banner']);
}
require_once libfile('function/discuzcode');
- $_GET['descriptionnew'] = discuzcode(censor(trim($_GET['descriptionnew'])), 0, 0, 0, 0, 1, 1, 0, 0, 1);
+ $_GET['descriptionnew'] = discuzcode(censor(trim($_GET['descriptionnew']), NULL, FALSE, FALSE), 0, 0, 0, 0, 1, 1, 0, 0, 1);
$censormod = censormod($_GET['descriptionnew']);
if($censormod) {
showmessage('group_description_failed');
diff --git a/upload/source/module/forum/forum_post.php b/upload/source/module/forum/forum_post.php
index eed446ca3cec5d32a6d2ad7345a3e99186f5d429..ab70af613f5fe9e1e59cf69f54d916bf3f10345b 100644
--- a/upload/source/module/forum/forum_post.php
+++ b/upload/source/module/forum/forum_post.php
@@ -203,9 +203,9 @@ $notifycheck = empty($emailnotify) ? '' : 'checked="checked"';
$stickcheck = empty($sticktopic) ? '' : 'checked="checked"';
$digestcheck = empty($addtodigest) ? '' : 'checked="checked"';
-$subject = isset($_GET['subject']) ? dhtmlspecialchars(censor(trim($_GET['subject']))) : '';
+$subject = isset($_GET['subject']) ? dhtmlspecialchars(censor(trim($_GET['subject']), NULL, FALSE, FALSE)) : '';
$subject = !empty($subject) ? str_replace("\t", ' ', $subject) : $subject;
-$message = isset($_GET['message']) ? censor($_GET['message']) : '';
+$message = isset($_GET['message']) ? censor($_GET['message'], NULL, FALSE, FALSE) : '';
$polloptions = isset($polloptions) ? censor(trim($polloptions)) : '';
$readperm = isset($_GET['readperm']) ? intval($_GET['readperm']) : 0;
$price = isset($_GET['price']) ? intval($_GET['price']) : 0;