Ограничить количество записей
Если в вашем приложении появилась необходимость ограничить количество добавляемых пользователем записей, решить данную задачу можно с помощью поля "Ajax запрос".
Создайте данное поле для сущности, где необходимо установить ограничение. В поле "PHP код" напишите ваш запрос с условиями. Например, нам необходимо сделать так, чтоб каждый пользователь мог добавить только одну запись. Пример кода:
//Считаем количество записей добавленных пользователем $count_query = db_query("select count(*) as total from app_entity_22 where created_by=" . $app_user['id']); $count = db_fetch_array($count_query); if($count['total']>0 and $_GET['item_id']==0) { //Скрываем поля формы и выводим сообщение echo '<script>$(".form-body").html("<div class=\"alert alert-warning\">Вы уже добавили запрос!</div>")</script>'; //Скрываем кнопку "Сохранить" echo '<script>$(".btn-primary-modal-action").hide()</script>'; }
app_entity_22
- где 22 это ID сущности.
$app_user['id']
- ID текущего пользователя.
$_GET['item_id']
- ID текущего элемента. (ноль означает Новая запись)
Если у вас вложенная сущности и в запросе нужно учитывать ID родительской записи, то запрос будет иметь следующий вид:
db_query("select count(*) as total from app_entity_22 where created_by=" . $app_user['id'] . " and parent_item_id=" . $_POST['parent_item_id']);
$_POST['parent_item_id']
- id родительской записи
Если нужно учитывать текущую дату, например пользователь может добавлять только одну запись в день, добавляем следующее условие:
db_query("select count(*) as total from app_entity_22 where created_by=" . $app_user['id'] . " and FROM_UNIXTIME(date_added,'%Y-%m-%d')= FROM_UNIXTIME(" . time() . ",'%Y-%m-%d')");
Обратите внимание: так как поле "Ajax запрос" используется только для расчетов, нам нет необходимости отображать его. Мы может скрыть данное поле на странице "Настройка страницы записи".