Файл: concrete5.7.5.6/concrete/tools/pages/speed_settings.php
Строк: 298
<?php
defined('C5_EXECUTE') or die("Access Denied.");
$u = new User();
$form = Loader::helper('form');
$sh = Loader::helper('concrete/dashboard/sitemap');
if (!$sh->canRead()) {
die(t('Access Denied'));
}
if ($_POST['task'] == 'edit_speed_settings') {
$json['error'] = false;
if (is_array($_POST['cID'])) {
foreach($_POST['cID'] as $cID) {
$c = Page::getByID($cID);
$cp = new Permissions($c);
if ($cp->canEditPageSpeedSettings()) {
$data = array();
if ($_POST['cCacheFullPageContent'] > -2) {
$data['cCacheFullPageContent'] = $_POST['cCacheFullPageContent'];
}
if ($_POST['cCacheFullPageContentOverrideLifetime'] > -1) {
$data['cCacheFullPageContentLifetimeCustom'] = $_POST['cCacheFullPageContentLifetimeCustom'];
$data['cCacheFullPageContentOverrideLifetime'] = $_POST['cCacheFullPageContentOverrideLifetime'];
}
$c->update($data);
} else {
$json['error'] = t('Unable to delete one or more pages.');
}
}
}
$js = Loader::helper('json');
print $js->encode($json);
exit;
}
$form = Loader::helper('form');
$pages = array();
if (is_array($_REQUEST['item'])) {
foreach($_REQUEST['item'] as $cID) {
$pages[] = Page::getByID($cID);
}
} else {
$pages[] = Page::getByID($_REQUEST['cID']);
}
$pcnt = 0;
$fullPageCaching = -3;
$cCacheFullPageContentOverrideLifetime = -2;
$cCacheFullPageContentOverrideLifetimeCustomValue = -1;
foreach($pages as $c) {
$cp = new Permissions($c);
if ($cp->canEditPageSpeedSettings()) {
if ($c->getCollectionFullPageCaching() != $fullPageCaching && $fullPageCaching != -3) {
$fullPageCaching = -2;
} else {
$fullPageCaching = $c->getCollectionFullPageCaching();
}
if ($c->getCollectionFullPageCachingLifetime() != $cCacheFullPageContentOverrideLifetime && $cCacheFullPageContentOverrideLifetime != -2) {
$cCacheFullPageContentOverrideLifetime = -1;
} else {
$cCacheFullPageContentOverrideLifetime = $c->getCollectionFullPageCachingLifetime();
}
if ($c->getCollectionFullPageCachingLifetimeCustomValue() != $cCacheFullPageContentOverrideLifetimeCustomValue && $cCacheFullPageContentOverrideLifetimeCustomValue != -1) {
$cCacheFullPageContentOverrideLifetimeCustomValue = 0;
} else {
$cCacheFullPageContentOverrideLifetimeCustomValue = $c->getCollectionFullPageCachingLifetimeCustomValue();
}
$pcnt++;
}
}
$searchInstance = Loader::helper('text')->entities($_REQUEST['searchInstance']);
?>
<div class="ccm-ui">
<?php if ($pcnt == 0) { ?>
<?php echo t("You do not have permission to modify speed settings on any of the selected pages."); ?>
<?php } else { ?>
<form id="ccm-<?php echo $searchInstance?>-speed-settings-form" method="post" action="<?php echo REL_DIR_FILES_TOOLS_REQUIRED?>/pages/speed_settings">
<?php echo $form->hidden('task', 'edit_speed_settings')?>
<?php foreach($pages as $c) { ?>
<?php echo $form->hidden('cID[]', $c->getCollectionID())?>
<?php } ?>
<div id="ccm-properties-cache-tab">
<?php $form = Loader::helper('form');?>
<?php
switch(Config::get('concrete.cache.pages')) {
case 'blocks':
$globalSetting = t('cache page if all blocks support it.');
$enableCache = 1;
break;
case 'all':
$globalSetting = t('enable full page cache.');
$enableCache = 1;
break;
case 0:
$globalSetting = t('disable full page cache.');
$enableCache = 0;
break;
}
switch(Config::get('concrete.cache.full_page_lifetime')) {
case 'default':
$globalSettingLifetime = t('%s minutes', Config::get('concrete.cache.lifetime') / 60);
break;
case 'custom':
$custom = Config::get('concrete.cache.full_page_lifetime_value');
$globalSettingLifetime = t('%s minutes', $custom);
break;
case 'forever':
$globalSettingLifetime = t('Until manually cleared');
break;
}
?>
<div class="clearfix">
<label><?php echo t('Full Page Caching')?></label>
<div class="input">
<ul class="inputs-list">
<li><label><?php echo $form->radio('cCacheFullPageContent', -2, $fullPageCaching)?>
<span><?php echo t('Multiple values')?></span>
</label></li>
<li><label><?php echo $form->radio('cCacheFullPageContent', -1, $fullPageCaching, array('enable-cache' => $enableCache))?>
<span><?php echo t('Use global setting - %s', $globalSetting)?></span>
</label></li>
<li><label><?php echo $form->radio('cCacheFullPageContent', 0, $fullPageCaching, array('enable-cache' => 0))?>
<span><?php echo t('Do not cache this page.')?></span>
</label></li>
<li><label><?php echo $form->radio('cCacheFullPageContent', 1, $fullPageCaching, array('enable-cache' => 1))?>
<span><?php echo t('Cache this page.')?></span>
</label>
</li>
</ul>
</div>
</div>
<div class="clearfix">
<label><?php echo t('Cache for how long?')?></label>
<div class="ccm-properties-cache-lifetime input">
<ul class="inputs-list">
<?php $val = ($cCacheFullPageContentLifetimeCustomValue > 0 && $cCacheFullPageContentOverrideLifetime) ? $cCacheFullPageContentLifetimeCustomValue : ''; ?>
<li><label><?php echo $form->radio('cCacheFullPageContentOverrideLifetime', -1, $cCacheFullPageContentOverrideLifetime)?>
<span><?php echo t('Multiple values')?></span>
</label></li>
<li><label><span><?php echo $form->radio('cCacheFullPageContentOverrideLifetime', 0, $cCacheFullPageContentOverrideLifetime)?>
<?php echo t('Use global setting - %s', $globalSettingLifetime)?>
</span></label></li>
<li><label><span><?php echo $form->radio('cCacheFullPageContentOverrideLifetime', 'default', $cCacheFullPageContentOverrideLifetime)?>
<?php echo t('Default - %s minutes', Config::get('concrete.cache.lifetime') / 60)?>
</span></label></li>
<li><label><span><?php echo $form->radio('cCacheFullPageContentOverrideLifetime', 'forever', $cCacheFullPageContentOverrideLifetime)?>
<?php echo t('Until manually cleared')?>
</span></label></li>
<li><label><span><?php echo $form->radio('cCacheFullPageContentOverrideLifetime', 'custom', $cCacheFullPageContentOverrideLifetime)?>
<?php echo t('Custom')?>
</span></label>
<div style="margin-top: 4px; margin-left: 16px">
<label><?php echo $form->text('cCacheFullPageContentLifetimeCustom', $val, array('style' => 'width: 40px'))?> <?php echo t('minutes')?></label>
</div>
</li>
</ul>
</div>
</div>
</div>
</form>
<div class="dialog-buttons">
<?php $ih = Loader::helper('concrete/ui')?>
<?php echo $ih->button_js(t('Cancel'), 'jQuery.fn.dialog.closeTop()', 'left', 'btn')?>
<?php echo $ih->button_js(t('Update'), "$('#ccm-" . $searchInstance . "-speed-settings-form').submit()", 'right', 'btn primary')?>
</div>
<?php
}
?>
</div>
<script type="text/javascript">
ccm_settingsSetupCacheForm = function() {
var obj = $('input[name=cCacheFullPageContent]:checked');
if (obj.attr('enable-cache') == 1) {
$('div.ccm-properties-cache-lifetime input').attr('disabled', false);
} else {
$('div.ccm-properties-cache-lifetime input').attr('disabled', true);
$('input[name=cCacheFullPageContentOverrideLifetime][value=0]').attr('checked', true);
}
var obj2 = $('input[name=cCacheFullPageContentOverrideLifetime]:checked');
if (obj2.val() == 'custom') {
$('input[name=cCacheFullPageContentLifetimeCustom]').attr('disabled', false);
} else {
$('input[name=cCacheFullPageContentLifetimeCustom]').attr('disabled', true);
$('input[name=cCacheFullPageContentLifetimeCustom]').val('');
}
}
$(function() {
$("input[name=cCacheFullPageContent]").click(function() {
ccm_settingsSetupCacheForm();
});
$("input[name=cCacheFullPageContentOverrideLifetime]").click(function() {
ccm_settingsSetupCacheForm();
});
$("input[name=cCacheFullPageContentOverrideLifetime][value=custom]").click(function() {
$('input[name=cCacheFullPageContentLifetimeCustom]').get(0).focus();
});
ccm_settingsSetupCacheForm();
$("#ccm-<?php echo $searchInstance?>-speed-settings-form").ajaxForm({
type: 'POST',
iframe: true,
beforeSubmit: function() {
jQuery.fn.dialog.showLoader();
},
success: function(r) {
ccm_parseJSON(r, function() {
jQuery.fn.dialog.closeTop();
jQuery.fn.dialog.hideLoader();
ccm_deactivateSearchResults('<?php echo $searchInstance?>');
ConcreteAlert.notify({
'message': ccmi18n.saveSpeedSettingsMsg,
'title': ccmi18n.properties
});
$("#ccm-<?php echo $searchInstance?>-advanced-search").ajaxSubmit(function(r) {
ccm_parseAdvancedSearchResponse(r, '<?php echo $searchInstance?>');
});
});
}
});
});
</script>