Browse Source

Fixes

master
M@dD3n 5 years ago
parent
commit
818ea81983
  1. 7
      admin/docs.php
  2. 10
      admin/lang/ru/docs.txt
  3. 5
      admin/lang/ru/request.txt
  4. 21
      admin/templates/documents/docs.tpl
  5. 10
      admin/templates/documents/form.tpl
  6. 96
      admin/templates/js/main.js
  7. 1
      admin/templates/request/form.tpl
  8. 330
      class/class.docs.php
  9. 9
      class/class.paginations.php
  10. 26
      tmp/update/sql.update.php

7
admin/docs.php

@ -303,5 +303,12 @@
$AVE_Document->documentSaveRedirect();
}
break;
case 'changepos':
if (check_permission_acp('document_view'))
{
$AVE_Document->documentPosition();
}
break;
}
?>

10
admin/lang/ru/docs.txt

@ -300,4 +300,12 @@ DOC_LANG_ID = "Язык документа:"
DOC_LANG_SELECT = "Выберите язык"
// 3.25
DOC_CLOSE_SEARCH_RUBRIC = "Вернуться в раздел, учитывая параметры поиска"
DOC_CLOSE_SEARCH_RUBRIC = "Вернуться в раздел, учитывая параметры поиска"
// 3.26
DOC_POSITION = "Позиция"
DOCUMENT_POSITION = "Позиция документа"
DOCUMENT_POSITION_ERR = "Не удалось сохранить позицию документа"
DOCUMENT_POSITION_ERROR = "Ошибка"
DOCUMENT_POSITION_OK = "Позиция документа успешно сохранена"
DOCUMENT_POSITION_SUCCESS = "Выполнено"

5
admin/lang/ru/request.txt

@ -196,4 +196,7 @@ REQUEST_PAGES_CURENT = "Номер страницы пагинации"
REQUEST_PAGES_TOTAL = "Общее кол-во страниц пагинации"
// v 3.24
REQUEST_COUNT_ITEMS = "Получать кол-во элементов (если не используется постраничная навигация)"
REQUEST_COUNT_ITEMS = "Получать кол-во элементов (если не используется постраничная навигация)"
// v 3.26
REQUEST_BY_POSITION = "Позиция документа"

21
admin/templates/documents/docs.tpl

@ -1,4 +1,6 @@
<div class="title"><h5>{#DOC_SUB_TITLE#}</h5></div>
<div class="title">
<h5>{#DOC_SUB_TITLE#}</h5>
</div>
<div class="widget" style="margin-top: 0px;">
<div class="body">
@ -88,6 +90,11 @@
<a class="link" href="{$link}&sort=id{if $smarty.request.sort=='id'}_desc{/if}&page={$smarty.request.page|escape|default:'1'}&cp={$sess}">{#DOC_ID#}</a>
</span>
<span class="mrl5">
{if $smarty.request.sort=='position'}<span class="arrow">&uarr;</span>{elseif $smarty.request.sort=='position_desc'}<span class="arrow">&darr;</span>{/if}
<a class="link" href="{$link}&sort=position{if $smarty.request.sort=='position'}_desc{/if}&page={$smarty.request.page|escape|default:'1'}&cp={$sess}">{#DOC_POSITION#}</a>
</span>
<span class="mrl5">
{if $smarty.request.sort=='title'}<span class="arrow">&uarr;</span>{elseif $smarty.request.sort=='title_desc'}<span class="arrow">&darr;</span>{/if}
<a class="link" href="{$link}&sort=title{if $smarty.request.sort=='title'}_desc{/if}&page={$smarty.request.page|escape|default:'1'}&cp={$sess}">{#DOC_TITLE#}</a>
@ -129,6 +136,7 @@
<col width="10">
<col>
<col width="150">
<col width="150">
<col width="180">
{if !$smarty.const.ADMIN_EDITMENU}<col width="141">{/if}
@ -141,6 +149,7 @@
{#DOC_TITLE#}&nbsp;|&nbsp;{#DOC_URL_RUB#}
</td>
<td>{#DOC_IN_RUBRIK#}</td>
<td>{#DOC_POSITION#}</td>
<td>{#DOC_CREATED#}&nbsp;|&nbsp;{#DOC_EDIT#}</td>
{if !$smarty.const.ADMIN_EDITMENU}<td {if $smarty.const.ADMIN_EDITMENU}colspan="7"{else}colspan="14"{/if} align="center">{#DOC_ACTIONS#}</td>{/if}
</tr>
@ -293,6 +302,15 @@
{/if}
</td>
<td nowrap="nowrap" align="center">
{if $item->cantEdit==1}
<div class="position">
<input type="hidden" name="id" value="{$item->Id}" />
<input class="position_value" type="text" name="document_position" value="{$item->document_position|default:0}" />
</div>
{/if}
</td>
<td align="center">
<div class="docaction">
@ -397,6 +415,7 @@
{#DOC_TITLE#}&nbsp;|&nbsp;{#DOC_URL_RUB#}
</td>
<td>{#DOC_IN_RUBRIK#}</td>
<td>{#DOC_POSITION#}</td>
<td>{#DOC_CREATED#}&nbsp;|&nbsp;{#DOC_EDIT#}</td>
{if !$smarty.const.ADMIN_EDITMENU}<td colspan="6" align="center">{#DOC_ACTIONS#}</td>{/if}
</tr>

10
admin/templates/documents/form.tpl

@ -602,6 +602,16 @@ $(document).ready(function(){ldelim}
</td>
</tr>
<tr>
<td>{#DOCUMENT_POSITION#}</td>
<td colspan="3">
<div class="position nosubmit">
<input type="hidden" name="id" value="{$document->Id}" />
<input class="position_value mousetrap" type="text" name="document_position" value="{$document->document_position|default:0}" />
</div>
</td>
</tr>
<tr>
<td>{#DOC_PROPERTY#}</td>
<td colspan="3">

96
admin/templates/js/main.js

@ -376,6 +376,7 @@ var AveAdmin = {
this.tooltip();
this.place_holder();
this.collapsible_elements();
this.docPosition();
},
events: function() {
@ -971,6 +972,101 @@ var AveAdmin = {
ul.hide(10);
}
});
},
docPosition: function () {
$('.position').each(function(i,item) {
var q_buttons = $('<span class="q_buttons"></span>').prependTo($(item));
var q_up = $('<span class="q_up q_button">+</span>').appendTo($(q_buttons));
var q_down = $('<span class="q_down q_button">-</span>').appendTo($(q_buttons));
$(q_up).on('click',function(event) {
event.preventDefault();
$(q_submit).css({'display':'block'});
value = parseInt($(item).find('.position_value').val());
value += 1;
$(item).find('.position_value').val(value);
});
$(q_down).on('click',function(event){
event.preventDefault();
$(q_submit).css({'display':'block'});
value = parseInt($(item).find('.position_value').val());
value = (value < 1 ? 0 : value-1);
$(item).find('.position_value').val(value);
});
if ($(item).hasClass('nosubmit')) {
$(item).off('submit');
} else {
var q_submit = $('<span class="q_submit">OK</span>').appendTo($(q_buttons));
var q_loading = $('<span class="q_loading"></span>').appendTo($(q_buttons));
$(q_submit).css({'display':'none'});
$(q_loading).css({'display':'none'});
$(item).find('.position_value').on('change',function(){
$(q_submit).css({'display':'block'});
return false;
});
$(item).find('.position_value').on('focus',function(){
$(q_submit).css({'display':'block'});
});
$(item).on('blur',function(){
$(q_submit).css({'display':'none'});
});
$(item).on('submit',function(){
$(q_submit).css({'display':'none'});
$(q_loading).css({'display':'block'});
var dataForm = {
'action': 'changepos',
'id':$(this).find('input[name=id]').val(),
'value':$(this).find('input[name=document_position]').val()
};
$.ajax({
url: ave_path + 'admin/index.php?do=docs',
type: 'POST',
dataType: 'json',
data: dataForm,
success: function(data) {
$(q_loading).css({'display':'none'});
$.jGrowl(data['message'], {
header: data['header'],
theme: data['theme']
});
}
});
return false;
});
$(q_submit).on('click',function(event){
event.preventDefault();
$(item).submit();
return false;
});
}
});
}
};

1
admin/templates/request/form.tpl

@ -235,6 +235,7 @@ function changeRub(select) {ldelim}
<select {$dis} style="width:250px" name="request_order_by" id="request_order_by" class="mousetrap">
<option value="">&nbsp;</option>
<option value="Id"{if $row->request_order_by=='Id'} selected="selected"{/if}>Id</option>
<option value="document_position"{if $row->request_order_by=='document_position'} selected="selected"{/if}>{#REQUEST_BY_POSITION#}</option>
<option value="document_published"{if $row->request_order_by=='document_published'} selected="selected"{/if}>{#REQUEST_BY_DATE#}</option>
<option value="document_changed"{if $row->request_order_by=='document_changed'} selected="selected"{/if}>{#REQUEST_BY_DATECHANGE#}</option>
<option value="document_title"{if $row->request_order_by=='document_title'} selected="selected"{/if}>{#REQUEST_BY_NAME#}</option>

330
class/class.docs.php

@ -86,7 +86,7 @@
$expire[2]
);
}
return ($timestamp==time(0) ? '' : $timestamp);
return ($timestamp == time(0) ? '' : $timestamp);
}
/**
@ -327,40 +327,40 @@
$sql_where_field = '';
$field_link = '';
if (isset($_REQUEST['field_id']) && (int)$_REQUEST['field_id'] > 0)
if ($_REQUEST['field_id'] && (int)$_REQUEST['field_id'] > 0)
{
$sql_join_field = "
LEFT JOIN
" . PREFIX . "_document_fields AS df1
ON
doc.Id = df1.document_id
LEFT JOIN
" . PREFIX . "_document_fields_text AS df2
ON
df1.document_id = df2.document_id
";
LEFT JOIN
" . PREFIX . "_document_fields AS df1
ON
doc.Id = df1.document_id
LEFT JOIN
" . PREFIX . "_document_fields_text AS df2
ON
df1.document_id = df2.document_id
";
if ($_REQUEST['field_request'] == 'eq' && $_REQUEST['field_search'] != '')
if ($_REQUEST['field_request'] == 'eq')
{
$sql_where_field = "
AND
(df1.rubric_field_id = '" . (int)$_REQUEST['field_id'] . "'
AND
UPPER(CONCAT_WS('', df1.field_value, NULLIF(df2.field_value, '')) = '" . mb_strtoupper($_REQUEST['field_search']) . "')
OR
df1.field_number_value = '" . mb_strtoupper($_REQUEST['field_search']) . "')
";
AND
(df1.rubric_field_id = '" . (int)$_REQUEST['field_id'] . "'
AND
(UPPER(df1.field_value) = '" . mb_strtoupper($_REQUEST['field_search']) . "'
OR
df1.field_number_value = '" . mb_strtoupper($_REQUEST['field_search']) . "'))
";
}
else if ($_REQUEST['field_request'] == 'like' && $_REQUEST['field_search'] != '')
else if ($_REQUEST['field_request'] == 'like')
{
$sql_where_field = "
AND
(df1.rubric_field_id = '" . (int)$_REQUEST['field_id'] . "'
AND
UPPER(CONCAT_WS('', df1.field_value, NULLIF(df2.field_value, '')) LIKE '%" . mb_strtoupper($_REQUEST['field_search']) . "%')
OR
df1.field_number_value LIKE '%" . mb_strtoupper($_REQUEST['field_search']) . "%')
";
AND
(df1.rubric_field_id = '" . (int)$_REQUEST['field_id'] . "'
AND
(UPPER(df1.field_value) LIKE '%" . mb_strtoupper($_REQUEST['field_search']) . "%'
OR
df1.field_number_value LIKE '%" . mb_strtoupper($_REQUEST['field_search']) . "%'))
";
}
$field_link = '&field_id=' . (int)$_REQUEST['field_id'] . '&field_request=' . $_REQUEST['field_request'] . '&field_search=' . $_REQUEST['field_search'];
@ -372,26 +372,28 @@
// Формируем условия, которые будут применены в запросе к БД
$ex_rub = " AND doc.rubric_id = '" . $_REQUEST['rubric_id'] . "'";
// Формируем условия, которые будут применены в ссылках
// формируем условия, которые будут применены в ссылках
$nav_rub = '&rubric_id=' . (int)$_REQUEST['rubric_id'];
$sql = $AVE_DB->Query("
SELECT
Id,
rubric_field_type,
rubric_field_title
FROM
" . PREFIX . "_rubric_fields
WHERE
rubric_id = '" . $_REQUEST['rubric_id'] ."'
ORDER BY
rubric_field_position ASC
");
SELECT
Id,
rubric_field_type,
rubric_field_title
FROM
" . PREFIX . "_rubric_fields
WHERE
rubric_id = '" . $_REQUEST['rubric_id'] ."'
ORDER BY
rubric_field_title ASC
");
$fields = array();
while($row = $sql->FetchRow())
{
array_push($fields, $row);
}
$AVE_Template->assign('fields', $fields);
}
@ -471,21 +473,73 @@
}
}
// Определяем группу пользоваеля и id документа, если он присутствует в запросе
// $ex_delete = (UGROUP != 1) ? "AND doc.document_deleted != '1'" : '' ;
// Определяем группу пользоваеля и id документа, если он присутствует в запросе
// $ex_delete = (UGROUP != 1) ? "AND doc.document_deleted != '1'" : '' ;
$w_id = !empty($_REQUEST['doc_id'])
? " AND doc.Id = '" . $_REQUEST['doc_id'] . "'"
: '';
// Выполняем запрос к БД на получение количества документов соответствующих вышеопределенным условиям
$sql = "
SELECT
COUNT(doc.Id)
FROM
" . PREFIX . "_documents as doc
" . $ex_db . "
" . $sql_join_field . "
WHERE 1
" . $ex_delete . "
" . $ex_time . "
" . $ex_titel . "
" . $ex_rub . "
" . $ex_docstatus . "
" . $ex_lang . "
" . $w_id . "
" . $sql_where_field . "
";
$num = $AVE_DB->Query($sql)->GetCell();
// Определяем лимит документов, который будет показан на 1 странице
$limit = (isset($_REQUEST['Datalimit']) && is_numeric($_REQUEST['Datalimit']) && $_REQUEST['Datalimit'] > 0)
? $_REQUEST['Datalimit']
: $limit = $this->_limit;
$nav_limit = '&Datalimit=' . $limit;
// Определяем количество страниц, которые будут сформированы на основании количества полученных документов
$pages = ceil($num / $limit);
$start = get_current_page() * $limit - $limit;
$db_sort = 'ORDER BY doc.Id DESC';
$navi_sort = '&sort=id_desc';
// Параметры вывборки документов
$search_query = base64_encode($_SERVER['QUERY_STRING']);
// При смене страницы убираем из сессии параметры выборки документов
unset ($_SESSION['query_strings']);
// Если в запросе используется параметр сортировки
if (!empty($_REQUEST['sort']))
{
// Определяем, по какому параметру происходит сортировка
switch ($_REQUEST['sort'])
{
// По позиции документа, по возрастанию
case 'position' :
$db_sort = 'ORDER BY doc.document_position ASC';
$navi_sort = '&sort=position';
break;
// По позиции документа, по убыванию
case 'position_desc' :
$db_sort = 'ORDER BY doc.document_position DESC';
$navi_sort = '&sort=position_desc';
break;
// По id документа, по возрастанию
case 'id' :
$db_sort = 'ORDER BY doc.Id ASC';
@ -617,15 +671,9 @@
$docs = array();
// Определяем лимит документов, который будет показан на 1 странице
$limit = (isset($_REQUEST['Datalimit']) && is_numeric($_REQUEST['Datalimit']) && $_REQUEST['Datalimit'] > 0)
? $_REQUEST['Datalimit']
: $limit = $this->_limit;
$nav_limit = '&Datalimit=' . $limit;
$start = get_current_page() * $limit - $limit;
// Выполняем запрос к БД на получение уже не количества документов, отвечающих условиям, а уже на
// получение всех данных, с учетом всех условий, а также типа сортировки и лимита для вывода на
// одну страницу.
// Выполняем запрос к БД на получение уже не количества документов, отвечающих условиям, а уже на
// получение всех данных, с учетом всех условий, а также типа сортировки и лимита для вывода на
// одну страницу.
@ -638,18 +686,18 @@
LEFT JOIN
" . PREFIX . "_rubrics AS rub
ON rub.Id = doc.rubric_id
" . $sql_join_field . "
" . $sql_join_field . "
WHERE 1
" . $ex_rub . "
" . $ex_delete . "
" . $ex_time . "
" . $ex_titel . "
" . $ex_docstatus . "
" . $ex_lang . "
" . $w_id . "
" . $sql_where_field . "
" . $ex_rub . "
" . $ex_delete . "
" . $ex_time . "
" . $ex_titel . "
" . $ex_docstatus . "
" . $ex_lang . "
" . $w_id . "
" . $sql_where_field . "
GROUP BY doc.Id
" . $db_sort . "
" . $db_sort . "
LIMIT
" . $start . "," . $limit . "
";
@ -657,15 +705,6 @@
//Debug::_echo($sql, true, '270');
$sql = $AVE_DB->Query($sql);
// Получаем кол-во записей
$num = $AVE_DB->getFoundRows();
// Определяем количество страниц, которые будут сформированы на основании количества полученных документов
$pages = ceil($num / $limit);
// Параметры вывборки документов
$search_query = base64_encode($_SERVER['QUERY_STRING']);
// Циклически обрабатываем полученные данные с целью приведения некоторых из них к удобочитаемому виду
while ($row = $sql->FetchRow())
{
@ -802,8 +841,8 @@
if ($num > $limit)
{
$page_nav = get_pagination($pages, 'page', ' <a href="' . $link . $navi_sort . '&page={s}'.(empty($_REQUEST['rubric_id'])
? ''
: '&rubric_id='.$_REQUEST['rubric_id']).'&cp=' . SESSION . '">{t}</a>');
? ''
: '&rubric_id='.$_REQUEST['rubric_id']).'&cp=' . SESSION . '">{t}</a>');
$AVE_Template->assign('page_nav', $page_nav);
}
@ -888,7 +927,7 @@
* Функция предназначенна для анализа ключевых слов и разненсения их по табличке _document_keyword
*
*/
function generateKeywords($document_id, $keywords=null)
function generateKeywords($document_id, $keywords = null)
{
global $AVE_DB;
@ -1152,16 +1191,16 @@
/**
* Метод, предназначенный для сохранения документа в БД
*
* @param int $rubric_id Идентификатор Рубрики
* @param int $document_id Идентификатор Документа или null, если документ новый
* @param array $data Документ в массиве структура - хитрая
* @param bool $update_non_exists_fields Изменять поля на пустые значения у не переданных полей или не надо
* @param bool $rubric_code Использовать код рубрики или не надо
* @param bool $revisions Использовать ревизии документов
* @param bool $logs Писать системные сообщения в журнал
* @param bool $generate Генерировать Meta
* @param int $rubric_id Идентификатор Рубрики
* @param int $document_id Идентификатор Документа или null, если документ новый
* @param array $data Документ в массиве структура - хитрая
* @param bool $update_non_exists_fields Изменять поля на пустые значения у не переданных полей или не надо
* @param bool $rubric_code Использовать код рубрики или не надо
* @param bool $revisions Использовать ревизии документов
* @param bool $logs Писать системные сообщения в журнал
* @param bool $generate Генерировать Meta
*
* return int/bool Возвращает номер документа если все удачно или false если все плохо
* @return int|bool Возвращает номер документа если все удачно или false если все плохо
*/
function documentSave ($rubric_id, $document_id, $data, $update_non_exists_fields = false, $rubric_code = true, $revisions = true, $logs = true, $generate = true)
@ -1171,21 +1210,21 @@
//-- Проверяем входящие данные -- //
// Если отсутсвует рубрика, ничего не делаем
if(! $rubric_id)
if (! $rubric_id)
return false;
// Если отсутсвуют данные, ничего не делаем
if(! isset($data))
if (! isset($data))
return false;
// Если отсутсвуют данные полей, ничего не делаем
if(! isset($data['feld']))
if (! isset($data['feld']))
return false;
$rubric_id = (int)$rubric_id;
$document_id = (int)$document_id;
// Определяем тип опреации
// Определяем тип операции
$oper = 'INSERT';
// Забираем параметры рубрики
@ -1196,7 +1235,7 @@
// Выполняем стартовый код рубрики
if ($rubric_code)
eval ('?'.'>' . $_rubric->rubric_code_start . '<'.'?');
eval (' ?'.'>' . $_rubric->rubric_code_start . '<?'.'php ');
// Если нет данных для сохранения, перкращаем сохранение и переходим на страницу документов
if (empty($data))
@ -1206,7 +1245,7 @@
}
// Если есть ID документа, то ставим оператор UPDATE
if ($document_id > 0)
if (is_numeric($document_id) && $document_id > 0)
$oper = 'UPDATE';
// Если пользователь имеет права на добавление документов в указанную рубрику, тогда
@ -1294,21 +1333,21 @@
)
{
// Статус документа 1 - Опубликован / 0 - Нет
$document_status = (isset($data['document_status'])
$data['document_status'] = (isset($data['document_status'])
? $data['document_status']
: '0');
}
else
{
// Не опубликован
$document_status = '0';
$data['document_status'] = '0';
}
// Если ID документа равно 1 или ID равно Документа 404
// то стату всегда будет 1
$document_status = ($document_id == 1 || $document_id == PAGE_NOT_FOUND_ID)
$data['document_status'] = ($document_id == 1 || $document_id == PAGE_NOT_FOUND_ID)
? '1'
: $document_status;
: $data['document_status'];
// Формируем/проверяем адрес на уникальность
if ($document_id != 1)
@ -1351,7 +1390,7 @@
: '0';
// Статус документа 1 - Опубликован / 0 - Нет
$document_status = ! empty($data['document_status'])
$data['document_status'] = ! empty($data['document_status'])
? (int)$data['document_status']
: '0';
@ -1478,7 +1517,7 @@
// Если пришел вызов поля, который связан с модулем
if (isset($data['field_module']))
{
while(list($mod_key, $mod_val) = each($data['field_module']))
while(list($mod_key, $mod_val) = each($_REQUEST['field_module']))
{
require_once(BASE_DIR . '/modules/' . $mod_val . '/document.php');
@ -1535,6 +1574,7 @@
document_tags = '" . addslashes(htmlspecialchars(clean_no_print_char($document_tags))). "',
document_lang = '" . (empty($data['document_lang']) ? DEFAULT_LANGUAGE : $data['document_lang']). "',
document_lang_group = '" . (empty($data['document_lang_group']) ? '0' : (int)$data['document_lang_group']). "',
document_position = '" . (empty($data['document_position']) ? '0' : (int)$data['document_position']). "',
document_property = '" . (empty($data['document_property']) ? '' : $data['document_property']). "'
$where
";
@ -1594,6 +1634,9 @@
// Получаем ID текстовых полей в данном документе
$document_text_fields = $this->_get_document_text_fields($document_id);
// Собираем запросы в массив
$sql_fields = [];
// Циклически обрабатываем поля документа
foreach ($fields as $k => $v)
{
@ -1666,7 +1709,7 @@
if ($slash)
$f_val_500 = rtrim ($f_val_500, '\\');
$sql = "
$sql_fields[] = "
$operator
SET
$insert
@ -1676,11 +1719,9 @@
: 0) . "',
document_in_search = '" . $search . "'
$where
";
$AVE_DB->Query($sql);
;";
unset ($sql, $f_val_500, $fld_val);
unset ($f_val_500, $fld_val);
// Если символов больше 500, то сохраняем их в другой таблице
if (mb_strlen($fval) > $substr)
@ -1709,22 +1750,20 @@
if ($slash)
$f_val_unlim = '\\' . $f_val_unlim;
$sql = "
$sql_fields[] = "
$operator
SET
$insert
field_value = '" . $f_val_unlim . "'
$where
";
$AVE_DB->Query($sql);
;";
unset($sql, $f_val_unlim);
unset ($f_val_unlim);
}
// Если символов меньше 500, то чистим поле в другой таблице
else
{
$AVE_DB->Query("
$sql_fields[] = "
DELETE
FROM
". PREFIX . "_document_fields_text
@ -1732,10 +1771,15 @@
document_id = '" . $document_id . "'
AND
rubric_field_id='" . $fld_id . "'
");
;";
}
}
// Выполняем
$AVE_DB->Queries($sql_fields);
unset ($sql_fields);
$field_module = isset($data['field_module'])
? $data['field_module']
: '';
@ -1745,7 +1789,7 @@
// Выполняем код рубрики, после сохранения
if ($rubric_code)
eval (' ?>' . $_rubric->rubric_code_end . '<?php ');
eval (' ?'.'>' . $_rubric->rubric_code_end . '<?'.'php ');
if ($document_id == 1)
$hash_url = md5('');
@ -2454,27 +2498,36 @@
*
* @param int $document_id идентификатор Документа
*/
function documentCopy($document_id)
function documentCopy ($document_id)
{
global $AVE_DB, $AVE_Rubric, $AVE_Template;
// Определяем действие, выбранное пользователем
switch ($_REQUEST['sub'])
{
// Если была нажата кнопка Сохранить изменения
// Если была нажата кнопка Сохранить изменения
case 'save': // Сохранение документа в БД
$public_start = $this->_documentStart(); // Дата/время начала публикации документа
$public_end = $this->_documentEnd(); // Дата/время окончания публикации документа
$innavi = check_permission_acp('navigation_new') ? '&innavi=1' : '';
$rubric_id = $_REQUEST['rubric_id'];
$innavi = check_permission_acp('navigation_new')
? '&innavi=1'
: '';
// Определяем статус документа
$document_status = !empty($_REQUEST['document_status']) ? (int)$_REQUEST['document_status'] : '0';
$document_status = ! empty($_REQUEST['document_status'])
? (int)$_REQUEST['document_status']
: '0';
// Если статус документа не определен
if (empty($document_status) && $_SESSION['user_group'] != 1)
{
$innavi = '';
@reset($_POST);
$newtext = "\n\n";
// Формируем текст сообщения, состоящий из данных,
@ -2487,6 +2540,7 @@
$newtext .= "\n---------------------\n";
}
}
$text = strip_tags($newtext);
// Получаем e-mail адрес из общих настроек системы
@ -2498,6 +2552,7 @@
$body_to_admin = str_replace('%N%', "\n", $body_to_admin);
$body_to_admin = str_replace('%TITLE%', stripslashes($_POST['document_title']), $body_to_admin);
$body_to_admin = str_replace('%USER%', "'" . $_SESSION['user_name'] . "'", $body_to_admin);
send_mail(
$system_mail,
$body_to_admin . $text,
@ -2511,6 +2566,7 @@
$body_to_author = str_replace('%N%', "\n", $AVE_Template->get_config_vars('DOC_MAIL_BODY_USER'));
$body_to_author = str_replace('%TITLE%', stripslashes($_POST['document_title']), $body_to_author);
$body_to_author = str_replace('%USER%', "'" . $_SESSION['user_name'] . "'", $body_to_author);
send_mail(
$_SESSION['user_email'],
$body_to_author,
@ -2528,9 +2584,9 @@
$document_status = 0;
}
$_POST['document_status']=$document_status;
$_POST['document_status'] = $document_status;
$iid = $this->documentSave($_REQUEST['rubric_id'],null,$_POST,true);
$iid = $this->documentSave($_REQUEST['rubric_id'],null, $_POST,true);
if (! $_REQUEST['next_edit'])
{
@ -2922,9 +2978,9 @@
(
($document->document_author_id == @$_SESSION['user_id'])
&&
(isset($_SESSION[$document->rubric_id . '_newnow']) && @$_SESSION[$row->rubric_id . '_newnow'] == 1)
(isset($_SESSION[$document->rubric_id . '_newnow']) && @$_SESSION[$document->rubric_id . '_newnow'] == 1)
||
@$_SESSION[$row->rubric_id . '_alles'] == 1
@$_SESSION[$document->rubric_id . '_alles'] == 1
||
(defined('UGROUP') && UGROUP == 1)
)
@ -4260,6 +4316,7 @@
exit;
}
/**
* Метод, предназначенный для
*
@ -4281,5 +4338,54 @@
exit;
}
/**
* Метод, предназначенный для
*
*/
function documentPosition()
{
global $AVE_DB, $AVE_Template;
$query = false;
if (isset($_REQUEST['id']))
{
$docid = (int)$_REQUEST['id'];
$value = (int)$_REQUEST['value'];
$sql = "
UPDATE
".PREFIX."_documents
SET
document_position = " . $value . "
WHERE
Id = " . $docid . "
";
$query = $AVE_DB->Query($sql);
}
if ($query === false)
$return = [
'message' => $AVE_Template->get_config_vars('DOCUMENT_POSITION_ERR'),
'header' => $AVE_Template->get_config_vars('DOCUMENT_POSITION_ERROR'),
'theme' => 'error'
];
else
$return = [
'message' => $AVE_Template->get_config_vars('DOCUMENT_POSITION_OK'),
'header' => $AVE_Template->get_config_vars('DOCUMENT_POSITION_SUCCESS'),
'theme' => 'accept'
];
if (isAjax())
echo _json($return, true);
else
header('Location:index.php?do=sysblocks&cp=' . SESSION);
exit;
}
}
?>

9
class/class.paginations.php

@ -132,12 +132,15 @@
$search = array('[link]', '[page]', '[name]');
$replace = array($template_label, $page, $page);
if ($curent_page != 1)
if ($curent_page != 1) {
$link = str_replace($search, $replace, $pagination_link_template);
$pagination .= sprintf($pagination_link_box, str_replace(array('{s}', '{t}'), $page, str_replace(array('&amp;' . $type . '={s}', '&' . $type . '={s}', '/' . $type . '-{s}'), '', $link)));
}
else
{
$link = str_replace($search, $replace, $pagination_link_active_template);
$pagination .= sprintf($pagination_link_box, str_replace(array('{s}', '{t}'), $page, str_replace(array('&amp;' . $type . '={s}', '&' . $type . '={s}', '/' . $type . '-{s}'), '', $link)));
$pagination .= sprintf($pagination_active_link_box, str_replace(array('{s}', '{t}'), $page, str_replace(array('&amp;' . $type . '={s}', '&' . $type . '={s}', '/' . $type . '-{s}'), '', $link)));
}
}
// Остальные неактивные номера страниц
else

26
tmp/update/sql.update.php

@ -1,4 +1,4 @@
<?
<?php
/* -------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------3.24-------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------- */
@ -347,4 +347,28 @@
`sysblock_active`
");
}
// ----------------------------------------------------------------------------------------
$check = $AVE_DB->Query("
SHOW COLUMNS
FROM
" . PREFIX . "_documents
LIKE
'document_position'
")->NumRows();
$exist = ($check) ? true : false;
if ($exist === false)
{
$AVE_DB->Real_Query("
ALTER TABLE
" . PREFIX . "_documents
ADD
`document_position` int(10) NOT NULL DEFAULT '0'
AFTER
`document_property`
");
}
?>
Loading…
Cancel
Save