Попробую расписать точнее.
Задача 1.
При отсутствии лицензии давать доступ в админку, но с ограничением. Обрабатывать в импорте только первую порцию в 10 строк.
Решение задачи 1.
1.1. В simpla/IndexAdmin.php
вместо
if((!in_array($h, $l->domains) || (strtotime($l->expiration)<time() && $l->expiration!='*')) && $this->request->get('module')!='LicenseAdmin')
header('location: '.$this->config->root_url.'/simpla/index.php?module=LicenseAdmin');
else
{
$l->valid = true;
$this->design->assign('license', $l);
}
вставить
if((!in_array($h, $l->domains) || (strtotime($l->expiration)<time() && $l->expiration!='*')) && $this->request->get('module')!='LicenseAdmin'){
//header('location: '.$this->config->root_url.'/simpla/index.php?module=LicenseAdmin');
$_SESSION['license_valid']=0;
}else
{
$l->valid = true;
$this->design->assign('license', $l);
$_SESSION['license_valid']=1;
}
1.2. В simpla/ajax/import.php
вместо
$json = json_encode($import_ajax->import());
print $json;
вставить
session_start();
$result = $import_ajax->import();
if(!$_SESSION['license_valid'])
$result->end=true;
$json = json_encode($result);
print $json;
Задача 2.
При отсутствии лицензии давать доступ в админку, но с ограничением. Обрабатывать при экспорте только первую порцию в 10 строк.
Решение задачи 1.
2.1. Выполнить п.1.1 из решения задачи 1.
2.2. В simpla/ajax/export.php
после
$export_ajax = new ExportAjax();
$data = $export_ajax->fetch();
вставить
session_start();
if(!$_SESSION['license_valid'])
$data['end']=true;
Задача 3.
При отсутствии лицензии давать доступ в админку, но с ограничением. В админке не показывать пагинацию на тех страницах, где она обычно есть (товаров, комментариев, заказов и др.)
Решение задачи 3.
3.1. Выполнить п.1.1 из решения задачи 1.
3.2. В simpla/design/html/index.tpl
вставить в начале
{if !$smarty.session.license_valid}
{$pages_count=1}
{/if}
Решения всех трех задач аккуратно проверял на свежеустановленной Simpla 2.3.8.
По задачам 2 и 3 интересно было бы увидеть для сравнения решение с посредниками.
Что касается задачи 1, то ее решение с посредниками, на мой взгляд, очень навороченое и усложненное несоразмерно масштабу задачи. Но о вкусах, как говорится, не спорят - если нравится кому-то решение в 30-40 строк вместо 3-4, это его дело.
Хочу подчеркнуть, что разработка DaVinci, бесспорно, полезная и интересная. Но в данной конкретном примере - задача 1 - это действует как из пушки по воробьям...
Изменено: phukortsin, 20.09.2018 - 10:58