Перейти к содержимому


Публикации OlegSmirnov

36 публикаций создано OlegSmirnov (учитываются публикации только с 27-Апрель 23)



#25080 пспользование Ajax

Отправлено от OlegSmirnov в 10 Июль 2014 - 15:10 in Как это сделать

Я с ajax-ом делаю так. Создаю представление, на которое направляю ajax-запросы, и в это представление вношу код, который будет принимать запрос, обрабатывать его нужным образом, проверять на ошибки, сохранять если всё ок и возвращать в формате JSON ответ в JavaScript, который отправил запрос. Ну то есть в ответе там сообщаю - всё ок или какие-то ошибки. А в коде JavaScript - вывожу соответствующее сообщение пользователю.



#25076 Не срабатывает вычисление

Отправлено от OlegSmirnov в 10 Июль 2014 - 14:50 in Как это сделать

А в обработчике определить, что у нас произошло - редактирование или вставка новой строки - я так понимаю, можно через
$event['is_new_line']
?



#25075 Не срабатывает вычисление

Отправлено от OlegSmirnov в 10 Июль 2014 - 14:48 in Как это сделать

Понял, благодарю.
Я просто подумал, что изменение поля - это типа для UPDATE, а сохранение записи - для INSERT.



#25064 Не срабатывает вычисление

Отправлено от OlegSmirnov в 10 Июль 2014 - 11:10 in Как это сделать

Привет!

Не могу понять, что не так. В таблице есть вычисление, которое должно срабатывать при добавлении новых строк. В настройках вычисления в поле "Вычислять при условии" выставлено значение "Сохранение в таблице". Если я добавляю строку вручную - через стандартную кнопку "Добавить запись" в шапке таблицы - вычисление успешно отрабатывает. Однако если я добавляю строку функцикй insert_query - вычисление не запускается. Может быть кто-то уже сталкивался с подобным и знает, в чём может быть проблема?



#24124 Залогинен или нет

Отправлено от OlegSmirnov в 03 Июнь 2014 - 14:29 in Как это сделать

Спасибо.
А если менеджер сделал что-то в системе и нажал на выход и ушёл домой - мы об этом не узнаем? Всё равно будем ещё какое-то время думать, что он онлайн? last_event - обновляется только когда пользователь что-то сделал в программе, или это когда ajax-ом шлются каждые там 10-15 секунд запросы и на сервере обновляется это поле?



#24119 Залогинен или нет

Отправлено от OlegSmirnov в 03 Июнь 2014 - 12:21 in Как это сделать

Здравствуйте!
Не подскажете, есть ли возможность в вычислении как-то определять - залогинен в данный момент тот или иной пользователь, или нет? Возможно, эта информация хранится где-то, в таблице какой-то..?



#23280 Собственные функции на php

Отправлено от OlegSmirnov в 28 Апрель 2014 - 23:19 in Как это сделать

Просмотр сообщенияOlegSmirnov (28 Апрель 2014 - 17:18) писал:

А не знаете, что написать в полях "Номер версии" и "Ревизия"? А то они обязательны для заполнения в форме заявки в тех.поддержку, но посмотреть сейчас какая версия и ревизия не могу из-за той всё же ошибки
В общем, так и написал - "не могу посмотреть".



#23278 Собственные функции на php

Отправлено от OlegSmirnov в 28 Апрель 2014 - 17:18 in Как это сделать

А не знаете, что написать в полях "Номер версии" и "Ревизия"? А то они обязательны для заполнения в форме заявки в тех.поддержку, но посмотреть сейчас какая версия и ревизия не могу из-за той всё же ошибки



#23277 Собственные функции на php

Отправлено от OlegSmirnov в 28 Апрель 2014 - 17:05 in Как это сделать

Ясно, спасибо. Да, речь про saas-аккаунт.



#23275 Собственные функции на php

Отправлено от OlegSmirnov в 28 Апрель 2014 - 16:55 in Как это сделать

Накосячил. :(
В файле functions_custom.php допустил синтаксическую ошибку по невнимательности, поспешил и точку с запятой поставил где не надо. Теперь на любой странице вижу только сообщение

Цитата

Parse error: syntax error, unexpected ';', expecting ')' in /home/test51/public_html/include/functions_custom.php on line 27
В том числе, теперь не могу попасть и на ту страницу, через которую можно редактировать этот файл functions_custom.php - конфигурация и менеджер файлов теперь тоже стали недоступны (видно только сообщение об ошибке). Что можно сделать теперь?



#23044 как можно ограничить текстовое поле определенным кол-вом символов?

Отправлено от OlegSmirnov в 15 Апрель 2014 - 10:15 in Как это сделать

Про functions_custom.php - не знал, спасибо.



#23040 как можно ограничить текстовое поле определенным кол-вом символов?

Отправлено от OlegSmirnov в 15 Апрель 2014 - 08:48 in Как это сделать

Есть ли сейчас способ подключить свой JavaScript в шапке? Чтобы он подключался к страницам с таблицами. Метод, предложенный выше пользователем andibrag:

Просмотр сообщенияandibrag (11 Октябрь 2011 - 11:47) писал:

Ну а пока можно использовать выше названное поле для css и вписать туда:
/Ваша_файл_стилей.css" type="text/css"><script type="text/javascript" src="/cb_modules/addscr.js"></script><link rel="stylesheet
сейчас не работает (видимо, название файла теперь проходит через htmlspecialchars).

Проект находится на xxxxx.clientbase.ru - на сколько я понимаю, прямого доступа на редактирование файлов у меня там нет, чтобы можно было что-то вписать в какой-то файл.



#22993 Загрузка своих файлов

Отправлено от OlegSmirnov в 10 Апрель 2014 - 14:38 in Как это сделать

Уменьшил размер скрипта, удалив все отступы, лишние переводы строк и комментарии - записалось. Перед этим пробовал записать только без отступов - не записывалось.
Точного ограничения не выяснял, но это где-то между 55000 и 60000 символов



#22987 Загрузка своих файлов

Отправлено от OlegSmirnov в 10 Апрель 2014 - 09:06 in Как это сделать

Блин, там похоже какое-то ограничение на размер файла... Не могу скрипт размером 72 кб загрузить через тот редактор, хотя коротенькие загружаются.



#22967 Загрузка своих файлов

Отправлено от OlegSmirnov в 09 Апрель 2014 - 15:21 in Как это сделать

Можно ли как-то домен xxxxx.clientbase.ru загружать свои файлы - например js-скрипты, чтобы потом подключать их на страницах?



#22808 Функциональные кнопки в таблицах

Отправлено от OlegSmirnov в 02 Апрель 2014 - 11:07 in Как это сделать

Возможно ли добавить поле в таблицу, в котором будут какие-то кнопки? Ну типа тех же удалить, архивировать, которые есть вверху таблицы, но сделать где-то справа или слева дополнительную колонку, в которой будут какие-то нужные выбранные кнопки, выполняющие своё действие для своей строки?



#22798 Рассылки

Отправлено от OlegSmirnov в 02 Апрель 2014 - 07:50 in Как это сделать

Над таблицей есть кнопки - разослать (рассылка по электронной почте) и СМС (рассылка по СМС). А возможно ли сделать такую кнопку, чтобы рассылка для выбранных строк прошла одновременно по СМС и на почту? Ну типа на почту скидываются письма со вложенным pdf-файлом со счётом по выбранным строкам (каждая строка - это счёт, с подчинёнными записями - позициями из другой таблицы) и одновременно по этим же строкам были отправлены смски - типа уведомления о том, что на почту был скинут счёт?

Я подумал - сделать доп.действие, но не знаю, есть ли возможность в вычислениях запускать рассылки, как если бы нажали на кнопку соответствующей рассылки?



#22757 Доп. действие во всплывающем окне

Отправлено от OlegSmirnov в 31 Март 2014 - 10:29 in Как это сделать

Всё равно не понял, как это должно работать, что нужно сделать. Вот допустим, создал таблицу, добавил в неё доп.действие и написал такой код вычисления (просто для пробы):

if(isset($_POST['mytext'])) {
echo htmlspecialchars($_POST['mytext']);
}
echo '
<form name="testform" method="post">
Текст: <input type="text" name="mytext" value="" />
<input type="submit" value="Отправить" />
</form>';
Но когда я над таблицей выбираю это доп.действие - уходит на сервер запрос и просто перезагружается текущая таблица, никакая форма не отображается. Как мне нужно написать вычисление, или что я ещё пропустил?



#22752 Доп. действие во всплывающем окне

Отправлено от OlegSmirnov в 31 Март 2014 - 08:36 in Как это сделать

Просмотр сообщенияCbCoder (27 Март 2014 - 08:32) писал:

В принципе код для всплывающего окна (форму) можно разместить и так. Разница в том, что он будет выполнятся в текущем окне, и после обработки данных нужно перенаправлять обратно в таблицу (или в любое другое место программы)
Не понял, о чём речь, можно немного подробнее? "и так" - это где?



#22687 Доп. действие во всплывающем окне

Отправлено от OlegSmirnov в 26 Март 2014 - 18:25 in Как это сделать

Суть вопроса была в том, что представление - это единственный способ реализовать такое:

Цитата

Интересует вопрос, как можно в режиме таблицы выбрать несколько строк, после чего при нажатии на кнопку - откроется некая форма, а далее выполнятся некие вычисления для этих выбранных строк с учётом данных из заполненной формы?
или есть ещё варианты какие-то, основанные на стандартных таблицах?



#22657 Доп. действие во всплывающем окне

Отправлено от OlegSmirnov в 26 Март 2014 - 10:52 in Как это сделать

Просмотр сообщенияCbCoder (26 Март 2014 - 08:39) писал:

Доп. действия "во всплывающем окне" работают только в режиме просмотра записи. Это связано с некоторыми особенностями работы доп.действий.
То есть для реализации того, что я хочу сделать - мне получается нужно создать представление, в котором уже выводить таблицу с галочками и нужными мне дополнительными инпутами?



#22654 Доп. действие во всплывающем окне

Отправлено от OlegSmirnov в 26 Март 2014 - 03:46 in Как это сделать

Добавил дополнительное действие в таблице, но его кнопки над таблицей не появляется. Причём если в настройках доп. действия указать, что оно выполняется в текущем окне - то кнопка для действия появляется. А когда выбираешь выполняется во всплывающем окне - то его кнопка над таблицей опять исчезает. Причём в режиме просмотра отдельной записи - кнопка такого доп. действия (выполняющегося в новом окне) - отображается и при нажатии открывается новое окно этого доп. действия. А вот в режиме таблицы - кнопка доп. действия, выполняющегося во всплывающем окне - отсутствует.

Интересует вопрос, как можно в режиме таблицы выбрать несколько строк, после чего при нажатии на кнопку - откроется некая форма, а далее выполнятся некие вычисления для этих выбранных строк с учётом данных из заполненной формы? Я так понял, что это можно сделать с помощью доп. действия, выполняющегося во всплывающем окне. Вот в документации написано:

Цитата

Пример 2. Есть таблица "Задания" и нам необходимо чтобы по нажатию кнопки
"Принять" (код которой мы опишем ниже) во всех строках выделенные галочками
поле "Принято" менялось свое значение на "Да", а в поле "Дата выполнения"
проставлялись текущие дата и время. Также в поле "Оценка" должно подставляться
значение из всплывающего окна.

В этом случае "Тип доп. действия" ставим "Во всплывающем окне" и пишем следующий код:

Однако, когда я ставлю "во всплывающем окне" - кнопки над таблицей для этого действия нету и применить его для всех строк, выделенных галочками не получается.



#22617 Атоматическое заполнение полей

Отправлено от OlegSmirnov в 22 Март 2014 - 07:56 in Как это сделать

А так, чтобы эти поля ссылались на разные таблицы - никак не сделаешь? Ну тоесть поле "Клиент" - на таблицу "Организации", поле "ФИО" - на таблицу "Сотрудники", естественно при этом каждая строка таблицы "Сотрудники" относится к какой-либо записи из таблицы "Организации"...



#22533 срабатывание вычисления после UPDATE

Отправлено от OlegSmirnov в 17 Март 2014 - 23:44 in Как это сделать

Покопался в include/functions2.php и вот написал такую функцию. Она не является полноценной обёрткой для popup_event и работает для вызова вычислений, которые привязаны к изменению поля. Есть некоторые моменты, о которых хочу предупредить. Эта функция при подготовке данных для запуска popup_event - записывает не настоящие данные в информацию об обновляемом поле. По идее, функция popup_event должна получить (помимо всего прочего) данные, которые были записаны в поле до редактирования и данные, которые оказались там после редактирования. Я не знаю, насколько это важно, чтобы при запуске вычисления была верная информация о старых и новых данных поля, но поскольку мне понадобилось запускать вычисление вообще без реального редактирования поля - я просто указал в качестве старых данных - пустую строку. Новые данные можно указать любые, передав их в качестве аргумента. Опять-таки не знаю, на сколько это важно - передавать верные новые данные. Функция не обновляет значение поля, только запускает вычисление, и эта информация, возможно, нужна для каких-то внутренних нужд popup_event - может сохранение в лог какой-нибудь. Есть ещё один момент, на который, наверно, следует обратить внимание: я вижу, что в той копии "Клиентской базы", с которой я работаю, внутренние названия полей выглядят как fXXX, где XXX - числовой id поля. Т.е. внутреннее название поля - это префикс в виде буквы f, после которого идёт число - идентификатор поля. Не исключаю, что в какой-то другой конфигурации, вместо буквы f префиксом может быть какая-то другая строка текста.

Получилась вот такая функция:

function run_update_event($table_id, $line_id, $field_id, $new_data) {
  $table = get_table($table_id);
  $table_fields = get_table_fields($table);
  $event = array(
	'type' => 'update_query',
	'table_id' => $table_id,
	'line_id' => $line_id,
	'changed' => array(
	  $field_id => array(
		'field_id' => $field_id,
		'int_name' => 'f' . $field_id,
		'old' => '',
		'new' => $new_data
	  )
	)
  );
  $sqlQuery = "SELECT * FROM `" . DATA_TABLE . $table_id . "` WHERE `id` = {$line_id}";
  $res = sql_query($sqlQuery);
  if($res and mysql_num_rows($res)) {
	$line = mysql_fetch_array($res);
	popup_event($table, $line, $event);
  }
}

Аргументы функции:
$table_id - это числовой id таблицы, с которой связано вычисление, которое нужно запустить. Это число можно узнать, например, открыв в браузере эту таблицу и посмотрев в строку адреса текущей страницы.
$line_id - это id той строки в таблице, для которой нужно запустить вычисление. Т.е. как будто строка с этим id была отредактирована.
$field_id - это числовой id столбца, для которого нужно запустить вычисление. Т.е. как будто поле с этим id (в строке $line_id таблицы $table_id) было отредактировано. Это id можно узнать, открыв в браузере нужную таблицу и щёлкнув на сортировку таблицы по интересуещему нас полю, после чего этот id также буден виден в адресной строке браузера (это значение переменной sort_by). Здесь нужно указать id того поля, к изменению которого привязан запуск вычисления.
$new_data - это новые данные, которые записаны в поле после его редактирования. Поскольку эта функция может быть полезна скорее в ситуации, когда данные в поле реально не менялись, но нужно запустить вычисление, как будто они поменялись - то в качестве $new_data я указываю текущее значение поля.

Вот подумал, что кому-то ещё может когда-нибудь пригодится такая функция и решил опубликовать свой вариант.



#22531 срабатывание вычисления после UPDATE

Отправлено от OlegSmirnov в 17 Март 2014 - 17:11 in Как это сделать

Вот, на мой взгляд ещё было бы неплохо, если бы добавили некую обёртку для popup_event, чтобы можно было просто указать название таблицы, id строки и какой-то простой способ указания события - например, его название или может id тоже, если есть у событий id, и эта функция уже чтобы подготовила данные и запустила функцию popup_event.