You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
2.5 KiB

<?php
if (!defined('WORDFENCE_VERSION')) { exit; }
?>
<ul id="wf-option-wafRules" class="wf-option wf-flex-vertical wf-flex-align-left">
<li class="wf-option-title"><strong><?php _e('Rules', 'wordfence'); ?></strong> <a href="<?php echo wfSupportController::esc_supportURL(wfSupportController::ITEM_FIREWALL_WAF_RULES); ?>" target="_blank" rel="noopener noreferrer" class="wf-inline-help"><i class="wf-fa wf-fa-question-circle-o" aria-hidden="true"></i></a></li>
<li class="wf-option-subtitle"><?php echo ($firewall->isSubDirectoryInstallation() ? __('You are currently running the WAF from another WordPress installation. These rules can be disabled or enabled once you configure the firewall to run correctly on this site.', 'wordfence') : ''); ?></li>
<li id="waf-rules-wrapper" class="wf-add-top"></li>
<?php if (!WFWAF_SUBDIRECTORY_INSTALL): ?>
<li id="waf-rules-manual-update">
<ul class="wf-option wf-option-footer wf-padding-no-bottom">
<li><a class="wf-btn wf-btn-default waf-rules-refresh" href="#"><?php _e('Manually Refresh Rules', 'wordfence'); ?></a>&nbsp;&nbsp;</li>
<li class="wf-padding-add-top-xs-small"><em id="waf-rules-next-update"></em></li>
</ul>
<script type="application/javascript">
(function($) {
$('.waf-rules-refresh').on('click', function(e) {
e.preventDefault();
e.stopPropagation();
WFAD.wafUpdateRules();
});
})(jQuery);
<?php
try {
$lastUpdated = wfWAF::getInstance()->getStorageEngine()->getConfig('rulesLastUpdated', null, 'transient');
$nextUpdate = PHP_INT_MAX;
$cron = (array) wfWAF::getInstance()->getStorageEngine()->getConfig('cron', null, 'livewaf');
if (is_array($cron)) {
/** @var wfWAFCronEvent $event */
foreach ($cron as $index => $event) {
if ($event instanceof wfWAFCronFetchRulesEvent) {
$event->setWaf(wfWAF::getInstance());
if (!$event->isInPast()) {
$nextUpdate = min($nextUpdate, $event->getFireTime());
}
}
}
}
}
catch (wfWAFStorageFileException $e) {
error_log($e->getMessage());
}
catch (wfWAFStorageEngineMySQLiException $e) {
error_log($e->getMessage());
}
if (!empty($lastUpdated)): ?>
var lastUpdated = <?php echo (int) $lastUpdated ?>;
WFAD.renderWAFRulesLastUpdated(new Date(lastUpdated * 1000));
<?php endif ?>
<?php if ($nextUpdate < PHP_INT_MAX): ?>
var nextUpdate = <?php echo (int) $nextUpdate ?>;
WFAD.renderWAFRulesNextUpdate(new Date(nextUpdate * 1000));
<?php endif ?>
</script>
</li>
<?php endif ?>
</ul>