Changeset 14560 for trunk/administration
- Timestamp:
- 10/27/10 23:33:19 (19 months ago)
- Location:
- trunk/administration
- Files:
-
- 5 added
- 2 deleted
- 2 edited
-
antispam.php (modified) (9 diffs)
-
templates/base/antispam_akismet.html (added)
-
templates/base/antispam_dnsbl_help.html (added)
-
templates/base/antispam_dnsbl_recheck.html (added)
-
templates/base/antispam_log.html (added)
-
templates/base/antispam_manage_dnsbl.html (added)
-
templates/base/css/general.css (modified) (1 diff)
-
templates/base/dnsbl_help.html (deleted)
-
templates/base/manage_dnsbl.html (deleted)
Legend:
- Unmodified
- Added
- Removed
-
trunk/administration/antispam.php
r14546 r14560 107 107 'type' => 'text', 108 108 'name' => 'recheck', 109 'caption' => _t('_sys_adm_fld_dnsbl_recheck '),109 'caption' => _t('_sys_adm_fld_dnsbl_recheck_url'), 110 110 'db' => array ( 111 111 'pass' => 'Xss', … … 146 146 } 147 147 148 149 150 class BxDolAdmFormDnsblRecheck extends BxTemplFormView { 151 152 function BxDolAdmFormDnsblRecheck ($sTitle, $sId) { 153 154 $aCustomForm = array( 155 156 'form_attrs' => array( 157 'id' => 'sys-adm-dnsbl-recheck', 158 'name' => 'sys-adm-dnsbl-recheck', 159 'onsubmit' => "return bs_sys_adm_dbsbl_recheck($('#$sId').val());", 160 'method' => 'post', 161 ), 162 163 'inputs' => array( 164 165 'test' => array( 166 'type' => 'text', 167 'attrs' => array('id' => $sId), 168 'name' => $sId, 169 'caption' => $sTitle, 170 'required' => true, 171 ), 172 173 'Submit' => array ( 174 'type' => 'submit', 175 'name' => 'dnsbl_recheck', 176 'value' => _t('_Submit'), 177 'colspan' => true, 178 ), 179 ), 180 ); 181 182 parent::BxTemplFormView ($aCustomForm); 183 } 184 } 185 148 186 $logged['admin'] = member_auth( 1, true, true ); 149 187 … … 154 192 155 193 switch ($_GET['popup']) { 194 195 case 'dnsbl_log': 196 $sPopupTitle = _t('_sys_adm_title_dnsbl_log'); 197 $sPopupContent = PageCodeLog ('dnsbl'); 198 break; 199 200 case 'dnsbluri_log': 201 $sPopupTitle = _t('_sys_adm_title_dnsbluri_log'); 202 $sPopupContent = PageCodeLog ('dnsbluri'); 203 break; 204 205 case 'akismet_log': 206 $sPopupTitle = _t('_sys_adm_title_akismet_log'); 207 $sPopupContent = PageCodeLog ('akismet'); 208 break; 209 210 case 'dnsbl_recheck': 211 $sPopupTitle = _t('_sys_adm_title_dnsbl_recheck'); 212 $aChains = array(BX_DOL_DNSBL_CHAIN_SPAMMERS, BX_DOL_DNSBL_CHAIN_WHITELIST); 213 $sPopupContent = PageCodeRecheckPopup ($aChains, _t('_sys_adm_fld_dnsbl_recheck'), 'sys-adm-dnsbl-test', 'dnsbl-recheck-ip'); 214 break; 215 216 case 'dnsbluri_recheck': 217 $sPopupTitle = _t('_sys_adm_title_dnsbluri_recheck'); 218 $aChains = array(BX_DOL_DNSBL_CHAIN_URIDNS); 219 $sPopupContent = PageCodeRecheckPopup ($aChains, _t('_sys_adm_fld_dnsbluri_recheck'), 'sys-adm-dnsbl-test', 'dnsbl-recheck-uri'); 220 break; 221 156 222 case 'dnsbl_help': 157 223 $sPopupTitle = _t('_sys_adm_btn_dnsbl_help'); 158 $sPopupContent = $GLOBALS['oAdmTemplate']->parseHtmlByName(' dnsbl_help.html', array('text' => _t('_sys_adm_btn_dnsbl_help_text')));224 $sPopupContent = $GLOBALS['oAdmTemplate']->parseHtmlByName('antispam_dnsbl_help.html', array('text' => _t('_sys_adm_btn_dnsbl_help_text'))); 159 225 break; 160 226 case 'dnsbluri_help': 161 227 $sPopupTitle = _t('_sys_adm_btn_dnsbl_help'); 162 $sPopupContent = $GLOBALS['oAdmTemplate']->parseHtmlByName(' dnsbl_help.html', array('text' => _t('_sys_adm_btn_dnsbluri_help_text')));228 $sPopupContent = $GLOBALS['oAdmTemplate']->parseHtmlByName('antispam_dnsbl_help.html', array('text' => _t('_sys_adm_btn_dnsbluri_help_text'))); 163 229 break; 164 230 case 'dnsbl_add': … … 184 250 // Process actions 185 251 switch (true) { 252 253 case (isset($_GET['action']) && $_GET['action'] == 'log' && isset($_GET['type'])): 254 header("Content-type: text/html; charset=utf-8"); 255 echo PageCodeLog ($_GET['type']); 256 exit; 257 258 case (isset($_POST['action']) && isset($_POST['id']) && isset($_POST['test'])): 259 260 $o = bx_instance('BxDolDNSBlacklists'); 261 $aChain = $GLOBALS['MySQL']->getAll("SELECT `zonedomain`, `postvresp` FROM `sys_dnsbl_rules` WHERE `id` = '".(int)$_POST['id']."' AND `active` = 1"); 262 263 $iRet = BX_DOL_DNSBL_FAILURE; 264 if ($aChain) { 265 if ($_POST['action'] == 'dnsbl-recheck-ip') { 266 $iRet = $o->dnsbl_lookup_ip($aChain, $_POST['test']); 267 } elseif ($_POST['action'] == 'dnsbl-recheck-uri') { 268 $sUrl = preg_replace('/^\w+:\/\//', '', $_POST['test']); 269 $sUrl = preg_replace('/^www\./', '', $sUrl); 270 $oBxDolDNSURIBlacklists = bx_instance('BxDolDNSURIBlacklists'); 271 $aUrls = $oBxDolDNSURIBlacklists->validateUrls(array($sUrl)); 272 if ($aUrls) 273 $iRet = $o->dnsbl_lookup_uri($aUrls[0], $aChain); 274 } 275 } 276 277 switch ($iRet) { 278 case BX_DOL_DNSBL_POSITIVE: 279 echo 'LISTED'; 280 exit; 281 case BX_DOL_DNSBL_NEGATIVE: 282 echo 'NOT LISTED'; 283 exit; 284 default: 285 case BX_DOL_DNSBL_FAILURE: 286 echo 'FAIL'; 287 exit; 288 } 186 289 187 290 case (isset($_POST['adm-dnsbl-activate'])): … … 217 320 $aPages = array ( 218 321 'dnsbl' => array ( 322 'option' => 'sys_dnsbl_enable', 219 323 'title' => _t('_sys_adm_page_cpt_dnsbl'), 220 324 'url' => BX_DOL_URL_ADMIN . 'antispam.php?mode=dnsbl', … … 223 327 ), 224 328 'dnsbluri' => array ( 329 'option' => 'sys_uridnsbl_enable', 225 330 'title' => _t('_sys_adm_page_cpt_uridnsbl'), 226 331 'url' => BX_DOL_URL_ADMIN . 'antispam.php?mode=dnsbluri', … … 229 334 ), 230 335 'akismet' => array ( 336 'option' => 'sys_akismet_enable', 231 337 'title' => _t('_sys_adm_page_cpt_akismet'), 232 338 'url' => BX_DOL_URL_ADMIN . 'antispam.php?mode=akismet', 233 339 'func' => 'PageCodeAkismet', 340 'func_params' => array('akismet'), 234 341 ), 235 342 ); … … 271 378 function PageCodeDNSBL($aChains, $sMode) { 272 379 380 global $aPages; 381 273 382 $sControls = BxTemplSearchResult::showAdminActionsPanel('adm-dnsbl-form', array( 274 383 'adm-dnsbl-delete' => _t('_sys_adm_btn_dnsbl_delete'), … … 284 393 } 285 394 286 $s = $GLOBALS['oAdmTemplate']->parseHtmlByName('manage_dnsbl.html', array( 287 'bx_repeat:items' => is_array($aRules) && !empty($aRules) ? $aRules : MsgBox(_t('_Empty')), 288 'controls' => $sControls, 289 'admin_url' => BX_DOL_URL_ADMIN, 290 'global_message' => $GLOBALS['sGlMsg'], 291 'mode' => $sMode, 292 )); 395 if (is_array($aRules) && !empty($aRules)) { 396 $s = $GLOBALS['oAdmTemplate']->parseHtmlByName('antispam_manage_dnsbl.html', array( 397 'bx_repeat:items' => $aRules, 398 'controls' => $sControls, 399 'admin_url' => BX_DOL_URL_ADMIN, 400 'global_message' => $GLOBALS['sGlMsg'], 401 'mode' => $sMode, 402 'status' => 'on' == getParam($aPages[$sMode]['option']) ? _t('_sys_adm_enabled') : _t('_sys_adm_disabled'), 403 'status_class' => 'sys-adm-' . ('on' == getParam($aPages[$sMode]['option']) ? 'enabled' : 'disabled'), 404 )); 405 } else { 406 $s = MsgBox(_t('_Empty')); 407 } 293 408 294 409 return DesignBoxContent ($GLOBALS['sPageTitle'], $s, 1, $GLOBALS['sActions']); 295 410 } 296 411 297 function PageCodeAkismet() { 298 $s = 'TODO:'; 412 function PageCodeAkismet($sMode) { 413 414 global $aPages; 415 416 $sKeyStatusClass = ''; 417 $sKeyStatus = _t('_sys_adm_akismet_key_empty'); 418 if (getParam('sys_akismet_api_key')) { 419 420 $oBxDolAkismet = bx_instance('BxDolAkismet'); 421 if ($oBxDolAkismet->oAkismet->isKeyValid()) { 422 $sKeyStatusClass = 'sys-adm-enabled'; 423 $sKeyStatus = _t('_sys_adm_akismet_key_valid'); 424 } else { 425 $sKeyStatusClass = 'sys-adm-disabled'; 426 $sKeyStatus = _t('_sys_adm_akismet_key_invalid'); 427 } 428 } 429 430 $s = $GLOBALS['oAdmTemplate']->parseHtmlByName('antispam_akismet.html', array( 431 'admin_url' => BX_DOL_URL_ADMIN, 432 'key_status' => $sKeyStatus, 433 'key_status_class' => $sKeyStatusClass, 434 'status' => 'on' == getParam($aPages[$sMode]['option']) ? _t('_sys_adm_enabled') : _t('_sys_adm_disabled'), 435 'status_class' => 'sys-adm-' . ('on' == getParam($aPages[$sMode]['option']) ? 'enabled' : 'disabled'), 436 )); 437 299 438 return DesignBoxContent ($GLOBALS['sPageTitle'], $s, 1, $GLOBALS['sActions']); 300 439 } 301 440 302 441 442 function PageCodeRecheckPopup ($aChains, $sFieldTitle, $sId, $sAction) { 443 444 $sChains = "'" . implode("','", $aChains) . "'"; 445 $aRules = $GLOBALS['MySQL']->getAll("SELECT * FROM `sys_dnsbl_rules` WHERE `chain` IN($sChains) AND `active` = 1 ORDER BY `chain`, `added` "); 446 $oForm = new BxDolAdmFormDnsblRecheck($sFieldTitle, $sId); 447 return $GLOBALS['oAdmTemplate']->parseHtmlByName('antispam_dnsbl_recheck.html', array( 448 'txt_listed' => bx_js_string(_t('_sys_adm_dnsbl_listed')), 449 'txt_not_listed' => bx_js_string(_t('_sys_adm_dnsbl_not_listed')), 450 'txt_failed' => bx_js_string(_t('_sys_adm_dnsbl_failed')), 451 'form' => $oForm->getCode(), 452 'action' => $sAction, 453 'admin_url' => BX_DOL_URL_ADMIN, 454 'bx_repeat:items' => $aRules, 455 )); 456 } 457 458 function PageCodeLog ($sMode) { 459 460 switch ($sMode) { 461 case 'dnsbl': 462 case 'dnsbluri': 463 case 'akismet': 464 break; 465 default: 466 $sMode = 'dnsbl'; 467 } 468 469 $iPage = isset($_GET['page']) && (int)$_GET['page'] > 0 ? (int)$_GET['page'] : 1; 470 $iPerPage = 12; 471 $iStart = ($iPage-1) * $iPerPage; 472 473 $aLog = $GLOBALS['MySQL']->getAll("SELECT SQL_CALC_FOUND_ROWS * FROM `sys_antispam_block_log` WHERE `type` = '$sMode' ORDER BY `added` DESC LIMIT $iStart, $iPerPage"); 474 $iCount = $GLOBALS['MySQL']->getOne("SELECT FOUND_ROWS()"); 475 foreach ($aLog as $k => $r) { 476 $aLog[$k]['ip'] = long2ip ($r['ip']); 477 $aLog[$k]['member_url'] = $r['member_id'] ? getProfileLink($r['member_id']) : 'javascript:void(0);'; 478 $aLog[$k]['member_nickname'] = $r['member_id'] ? getNickName($r['member_id']) : _t('_Guest'); 479 $aLog[$k]['extra'] = bx_html_attribute ($r['extra']); 480 $aLog[$k]['ago'] = _format_when (time() - $r['added']); 481 } 482 483 $sPaginate = ''; 484 if ($iCount > $iPerPage) { 485 $sUrlStart = BX_DOL_URL_ADMIN . 'antispam.php?action=log&type='.$sMode; 486 $oPaginate = new BxDolPaginate(array( 487 'page_url' => 'javascript:void(0);', 488 'count' => $iCount, 489 'per_page' => $iPerPage, 490 'page' => $iPage, 491 'on_change_page' => "getHtmlData('sys-adm-antispam-log', '{$sUrlStart}&page={page}');", 492 )); 493 494 $sPaginate = $oPaginate->getSimplePaginate(false, -1, -1, false); 495 } 496 497 if (is_array($aLog) && !empty($aLog)) { 498 return $GLOBALS['oAdmTemplate']->parseHtmlByName('antispam_log.html', array( 499 'bx_repeat:items' => $aLog, 500 'paginate' => $sPaginate, 501 )); 502 } else { 503 return MsgBox(_t('_Empty')); 504 } 505 } 506 303 507 ?> -
trunk/administration/templates/base/css/general.css
r14544 r14560 485 485 color:#999; 486 486 } 487 488 .sys-adm-enabled { 489 color:#fff; 490 background-color:#0b0; 491 } 492 493 .sys-adm-disabled { 494 color:#fff; 495 background-color:#d00; 496 } 497
Note: See TracChangeset
for help on using the changeset viewer.