From c303e7526c39ce00d6664b44270ed04fee1e79c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B5=D1=82=D1=80=D0=B8=D1=89=D0=B5=D0=B2=20=D0=90?= =?UTF-8?q?=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9?= Date: Wed, 19 Nov 2025 16:31:11 +0300 Subject: [PATCH] [part2] --- app/docs/Рассписание.sql | 58 + ...3f99d50a689728f82f40ab9ec8545157b20.bladec | 73 + ...3890190b6f2f35dfcaae41b2390bea4ed0e.bladec | 13 + .../bladetpl/core_object_admin/body.blade.php | 67 + .../bladetpl/core_object_admin/form.blade.php | 12 + app/engine/admin/modules/admin_polygon.php | 12 +- app/engine/admin/modules/object_admin.php | 200 +- app/engine/admin/tpls/attrs/poly_form.htm | 54 +- app/engine/core/db.class.php | 14 +- .../cron/data_sync/sync_doctors_and_zones.php | 147 + .../migrations/20251113-1922-pnd_zones.sql | 2 + .../20251113-1927-pnd_doctor_zones.sql | 8 + .../migrations/20251113-1927-pnd_doctors.sql | 4 + .../20251113-1934-shop_delivery_zones.sql | 3 + .../migrations/20251113-1938-pnd_doctors.sql | 16 + .../20251113-1939-pnd_doctor_zones.sql | 10 + .../migrations/20251113-1939-pnd_doctors.sql | 6 + .../migrations/20251113-1940-pnd_doctors.sql | 9 + .../20251113-1941-shop_delivery_zones.sql | 4 + .../migrations/20251113-1942-pnd_doctors.sql | 7 + .../20251113-1942-pnd_zone_geometry.sql | 5 + .../migrations/20251113-1943-pnd_doctors.sql | 2 + .../20251113-1943-pnd_zone_geometry.sql | 20 + .../migrations/20251113-1943-pnd_zones.sql | 4 + .../migrations/20251113-1944-admin-cats.sql | 1 + .../20251113-1944-pnd_zone_geometry.sql | 4 + .../migrations/20251113-1944-pnd_zones.sql | 6 + .../migrations/20251113-2020-pnd_zones.sql | 3 + .../20251113-2026-pnd_zone_geometry.sql | 2 + .../20251113-2027-pnd_zone_geometry.sql | 4 + .../20251113-2038-pnd_zone_geometry.sql | 4 + .../20251113-2039-pnd_zone_geometry.sql | 4 + .../migrations/20251113-2105-pnd_doctors.sql | 3 + .../migrations/20251118-1906-pnd_docs.sql | 12 + .../migrations/20251118-1907-pnd_docs.sql | 8 + .../migrations/20251118-1928-user-cats.sql | 2 + .../migrations/20251118-1929-user-cats.sql | 2 + .../migrations/20251118-1930-_sys_static.sql | 12 + .../migrations/20251118-1931-_sys_static.sql | 2 + .../migrations/20251118-1931-user-cats.sql | 2 + .../migrations/20251118-1932-_sys_static.sql | 12 + .../migrations/20251118-1937-user-cats.sql | 2 + .../migrations/20251118-1938-user-cats.sql | 4 + .../migrations/20251118-1950-user-cats.sql | 2 + .../migrations/20251118-1951-user-cats.sql | 3 + .../migrations/20251118-2006-user-cats.sql | 1 + .../migrations/20251118-2012-admin-cats.sql | 1 + .../migrations/20251118-2037-pnd_faq.sql | 14 + .../migrations/20251118-2038-admin-cats.sql | 1 + .../migrations/20251118-2048-user-cats.sql | 1 + .../migrations/20251118-2057-pnd_docs.sql | 20 + .../migrations/20251118-2058-user-cats.sql | 1 + .../migrations/20251118-2106-admin-cats.sql | 1 + .../migrations/20251118-2108-user-cats.sql | 3 + ...d1deb6e56c2f6e52fd070ad87a5bd2bd5b5.bladec | 0 ...abbb1938ff83691969b9fa9449dce53ca25.bladec | 10 + ...3dc7e7cb5fa7e5c21f03ac1e1d5bc9cfdeb.bladec | 68 +- ...914d3856b1a7f37474c63abd946c9c06fb9.bladec | 56 +- .../www/bladetpl/site_index/data.blade.php | 80 +- .../www/bladetpl/site_index/main.blade.php | 66 +- .../bladetpl/site_index/show_doc.blade.php | 0 .../site_index/zone_not_found.blade.php | 10 + app/engine/www/modules/core_redirect.php | 17 + app/engine/www/modules/line_menu.php | 15 - app/engine/www/modules/object_view.php | 82 + app/engine/www/modules/site_index.php | 50 +- app/engine/www/tpls/admin_top_menu.htm | 52 - app/engine/www/tpls/admin_top_menu_root.htm | 65 - app/engine/www/tpls/index.htm | 116 +- app/engine/www/tpls/menu.htm | 21 + app/engine/www/tpls/shop_workers.htm | 289 - app/engine/www/tpls/shop_workers_pay.htm | 222 - app/engine/www/tpls/shop_workers_pay_my.htm | 76 - app/engine/www/tpls/shop_workers_time.htm | 604 -- app/engine/www/tpls/site_docs.htm | 78 + app/engine/www/tpls/site_faq.htm | 105 + app/engine/www/tpls/static_page.htm | 8 +- app/engine/www/xml/index.xml | 3 + app/public_html/admin/assets/css/custom.css | 5 + app/public_html/admin/assets/css/redactor.css | 4 +- .../admin/assets/js/jquery.fancybox.min.js | 5652 ++++++++++++++++- app/public_html/admin/img_uploader.php | 2 +- app/public_html/assets/css/custom.css | 81 + app/public_html/assets/img/logo.png | Bin 1222 -> 19659 bytes .../a9/79/a9793441fc9d6f41f08a7f7bc6f46006 | Bin 0 -> 13664 bytes app/public_html/images/01/00/1.jpg | Bin 20873 -> 13664 bytes app/public_html/images/02/00/2.jpg | Bin 0 -> 13664 bytes config/nginx/default.conf.dev | 1 + ...тронного расписания.doc | Bin 0 -> 59392 bytes Договор/Счет.pdf | Bin 0 -> 64743 bytes ...) № 244 от 17 ноября 2025 г.pdf | Bin 0 -> 52182 bytes 91 files changed, 7104 insertions(+), 1621 deletions(-) create mode 100644 app/docs/Рассписание.sql create mode 100644 app/engine/admin/bladetpl/cache/523e23f99d50a689728f82f40ab9ec8545157b20.bladec create mode 100644 app/engine/admin/bladetpl/cache/c32583890190b6f2f35dfcaae41b2390bea4ed0e.bladec create mode 100644 app/engine/admin/bladetpl/core_object_admin/body.blade.php create mode 100644 app/engine/admin/bladetpl/core_object_admin/form.blade.php create mode 100644 app/engine/cron/data_sync/sync_doctors_and_zones.php create mode 100644 app/engine/migrations/20251113-1922-pnd_zones.sql create mode 100644 app/engine/migrations/20251113-1927-pnd_doctor_zones.sql create mode 100644 app/engine/migrations/20251113-1927-pnd_doctors.sql create mode 100644 app/engine/migrations/20251113-1934-shop_delivery_zones.sql create mode 100644 app/engine/migrations/20251113-1938-pnd_doctors.sql create mode 100644 app/engine/migrations/20251113-1939-pnd_doctor_zones.sql create mode 100644 app/engine/migrations/20251113-1939-pnd_doctors.sql create mode 100644 app/engine/migrations/20251113-1940-pnd_doctors.sql create mode 100644 app/engine/migrations/20251113-1941-shop_delivery_zones.sql create mode 100644 app/engine/migrations/20251113-1942-pnd_doctors.sql create mode 100644 app/engine/migrations/20251113-1942-pnd_zone_geometry.sql create mode 100644 app/engine/migrations/20251113-1943-pnd_doctors.sql create mode 100644 app/engine/migrations/20251113-1943-pnd_zone_geometry.sql create mode 100644 app/engine/migrations/20251113-1943-pnd_zones.sql create mode 100644 app/engine/migrations/20251113-1944-admin-cats.sql create mode 100644 app/engine/migrations/20251113-1944-pnd_zone_geometry.sql create mode 100644 app/engine/migrations/20251113-1944-pnd_zones.sql create mode 100644 app/engine/migrations/20251113-2020-pnd_zones.sql create mode 100644 app/engine/migrations/20251113-2026-pnd_zone_geometry.sql create mode 100644 app/engine/migrations/20251113-2027-pnd_zone_geometry.sql create mode 100644 app/engine/migrations/20251113-2038-pnd_zone_geometry.sql create mode 100644 app/engine/migrations/20251113-2039-pnd_zone_geometry.sql create mode 100644 app/engine/migrations/20251113-2105-pnd_doctors.sql create mode 100644 app/engine/migrations/20251118-1906-pnd_docs.sql create mode 100644 app/engine/migrations/20251118-1907-pnd_docs.sql create mode 100644 app/engine/migrations/20251118-1928-user-cats.sql create mode 100644 app/engine/migrations/20251118-1929-user-cats.sql create mode 100644 app/engine/migrations/20251118-1930-_sys_static.sql create mode 100644 app/engine/migrations/20251118-1931-_sys_static.sql create mode 100644 app/engine/migrations/20251118-1931-user-cats.sql create mode 100644 app/engine/migrations/20251118-1932-_sys_static.sql create mode 100644 app/engine/migrations/20251118-1937-user-cats.sql create mode 100644 app/engine/migrations/20251118-1938-user-cats.sql create mode 100644 app/engine/migrations/20251118-1950-user-cats.sql create mode 100644 app/engine/migrations/20251118-1951-user-cats.sql create mode 100644 app/engine/migrations/20251118-2006-user-cats.sql create mode 100644 app/engine/migrations/20251118-2012-admin-cats.sql create mode 100644 app/engine/migrations/20251118-2037-pnd_faq.sql create mode 100644 app/engine/migrations/20251118-2038-admin-cats.sql create mode 100644 app/engine/migrations/20251118-2048-user-cats.sql create mode 100644 app/engine/migrations/20251118-2057-pnd_docs.sql create mode 100644 app/engine/migrations/20251118-2058-user-cats.sql create mode 100644 app/engine/migrations/20251118-2106-admin-cats.sql create mode 100644 app/engine/migrations/20251118-2108-user-cats.sql create mode 100644 app/engine/www/bladetpl/cache/1d502d1deb6e56c2f6e52fd070ad87a5bd2bd5b5.bladec create mode 100644 app/engine/www/bladetpl/cache/50036abbb1938ff83691969b9fa9449dce53ca25.bladec create mode 100644 app/engine/www/bladetpl/site_index/show_doc.blade.php create mode 100644 app/engine/www/bladetpl/site_index/zone_not_found.blade.php create mode 100644 app/engine/www/modules/core_redirect.php create mode 100644 app/engine/www/modules/object_view.php delete mode 100644 app/engine/www/tpls/admin_top_menu.htm delete mode 100644 app/engine/www/tpls/admin_top_menu_root.htm create mode 100644 app/engine/www/tpls/menu.htm delete mode 100644 app/engine/www/tpls/shop_workers.htm delete mode 100644 app/engine/www/tpls/shop_workers_pay.htm delete mode 100644 app/engine/www/tpls/shop_workers_pay_my.htm delete mode 100644 app/engine/www/tpls/shop_workers_time.htm create mode 100644 app/engine/www/tpls/site_docs.htm create mode 100644 app/engine/www/tpls/site_faq.htm create mode 100644 app/public_html/files/a9/79/a9793441fc9d6f41f08a7f7bc6f46006 create mode 100644 app/public_html/images/02/00/2.jpg create mode 100644 Договор/ДОГОВОР настройка электронного расписания.doc create mode 100644 Договор/Счет.pdf create mode 100644 Договор/УПД (статус 2) № 244 от 17 ноября 2025 г.pdf diff --git a/app/docs/Рассписание.sql b/app/docs/Рассписание.sql new file mode 100644 index 0000000..290d37b --- /dev/null +++ b/app/docs/Рассписание.sql @@ -0,0 +1,58 @@ +select e.id, + date(e.execDate) as 'дата', + apt.value as 'время', + apt.`index` as 'индекс', + apa_nom.value as 'тикет', + at.code as 'тип записи', + api_nes.value as 'не для вс', + api_uo.value as 'уо', + api_tm.value as 'ТМ', + concat_ws(' ', p.id, p.lastName, p.firstName, p.patrName) as 'врач', + a2.createDatetime as 'Когда записан', + concat_ws(' ', c.id, c.lastName, c.firstName, c.patrName) as 'клиент', + a2.note +from Event e + join Action a on e.id = a.event_id + join ActionType at on a.actionType_id = at.id + join Person p on e.execPerson_id = p.id + + + join ActionPropertyType apT1 on a.actionType_id = apT1.actionType_id and apT1.name like '%times%' + join ActionProperty ap1 on a.id = ap1.action_id and ap1.type_id = apT1.id + left join ActionProperty_Time apt on ap1.id = apt.id + + + join ActionPropertyType apt_nom on a.actionType_id = apt_nom.actionType_id and apt_nom.name = REPLACE(apT1.name, 'times', 'queue') + join ActionProperty ap_now on a.id = ap_now.action_id and ap_now.type_id = apt_nom.id and ap_now.deleted=0 + left join ActionProperty_Action apa_nom on ap_now.id = apa_nom.id and apt.`index` = apa_nom.`index` + + join ActionPropertyType apt_new on a.actionType_id = apt_new.actionType_id and apt_new.name = 'notExternalSystems' + join ActionProperty ap_nes on a.id = ap_nes.action_id and ap_nes.type_id = apt_new.id and ap_nes.deleted=0 + left join ActionProperty_Integer api_nes on ap_nes.id = api_nes.id and apt.`index` = api_nes.`index` + + join ActionPropertyType apt_uo on a.actionType_id = apt_uo.actionType_id and apt_uo.name = 'uos' + join ActionProperty ap_uo on a.id = ap_uo.action_id and ap_uo.type_id = apt_uo.id and ap_uo.deleted=0 + left join ActionProperty_Integer api_uo on ap_uo.id = api_uo.id and apt.`index` = api_uo.`index` + + left join ActionPropertyType apt_tm on a.actionType_id = apt_tm.actionType_id and apt_tm.name = 'tms' + left join ActionProperty ap_tm on a.id = ap_tm.action_id and ap_tm.type_id = apt_tm.id and ap_tm.deleted=0 + left join ActionProperty_Integer api_tm on ap_tm.id = api_tm.id and apt.`index` = api_tm.`index` + + left join Action a2 on apa_nom.value = a2.id + left join Event e2 on a2.event_id = e2.id + left join Client c on e2.client_id = c.id + +where e.eventType_id = 5 + and at.code = 'amb' + and a.deleted = 0 + and (a2.deleted = 0 or a2.deleted is null) + and (e2.deleted = 0 or e2.deleted is null) + and e.deleted = 0 + and ap1.deleted = 0 + and ap_now.deleted = 0 + and e.execPerson_id in (566) -- тут врача подставляй + #and apa_nom.value is null -- если нужны свободные слоты +# and date(e.execDate) between '2025-06-18 00:00:00' and adddate('2025-06-18 00:00:00', 50) -- интервал на которые смотрим даты + and date(e.execDate) between current_date and adddate(current_date, 14) -- интервал на которые смотрим даты +order by e.execDate, apt.value, p.id; + diff --git a/app/engine/admin/bladetpl/cache/523e23f99d50a689728f82f40ab9ec8545157b20.bladec b/app/engine/admin/bladetpl/cache/523e23f99d50a689728f82f40ab9ec8545157b20.bladec new file mode 100644 index 0000000..ba1ebce --- /dev/null +++ b/app/engine/admin/bladetpl/cache/523e23f99d50a689728f82f40ab9ec8545157b20.bladec @@ -0,0 +1,73 @@ + +
+
+
+
+

cat_name, ENT_QUOTES, 'UTF-8', false); ?>

+
+ add): ?> + Создать + + +
+
+
+ + + +
+ +
+
+
+
+ + + + + addLoop($__currentLoopData);$this->getFirstLoop(); + foreach($__currentLoopData as $colName => $colTitle): $loop = $this->incrementLoopIndices(); ?> + + popLoop(); $loop = $this->getFirstLoop(); ?> + del): ?> + + + + + + next()): ?> + + + addLoop($__currentLoopData);$this->getFirstLoop(); + foreach($__currentLoopData as $colName => $colTitle): $loop = $this->incrementLoopIndices(); ?> + + popLoop(); $loop = $this->getFirstLoop(); ?> + del): ?> + + + + + +
IDУд.
+ + id, ENT_QUOTES, 'UTF-8', false); ?> + + + render($colName,true); ?> + +
+
+ + +
+
+
+
\ No newline at end of file diff --git a/app/engine/admin/bladetpl/cache/c32583890190b6f2f35dfcaae41b2390bea4ed0e.bladec b/app/engine/admin/bladetpl/cache/c32583890190b6f2f35dfcaae41b2390bea4ed0e.bladec new file mode 100644 index 0000000..58fbc58 --- /dev/null +++ b/app/engine/admin/bladetpl/cache/c32583890190b6f2f35dfcaae41b2390bea4ed0e.bladec @@ -0,0 +1,13 @@ +
+
+ id): ?> +

Редактирование (id: id), ENT_QUOTES, 'UTF-8', false); ?>)

+ +

Создание

+ +
+ + +
+
+
diff --git a/app/engine/admin/bladetpl/core_object_admin/body.blade.php b/app/engine/admin/bladetpl/core_object_admin/body.blade.php new file mode 100644 index 0000000..bc75229 --- /dev/null +++ b/app/engine/admin/bladetpl/core_object_admin/body.blade.php @@ -0,0 +1,67 @@ + +
+
+
+
+

{{$cat->cat_name}}

+
+ @if($module->add) + Создать + @endif + +
+
+
+ + {!! $filter !!} +
+ +
+
+
+
+ + + + + @foreach($cols as $colName => $colTitle) + + @endforeach + @if($module->del) + + @endif + + + + @while($row->next()) + + + @foreach($cols as $colName => $colTitle) + + @endforeach + @if($module->del) + + @endif + + @endwhile + +
ID{{$colTitle}}Уд.
+ + {{$row->id}} + + {!! $row->render($colName,true) !!} +
+
+ {!! $walker !!} +
+
+
+
\ No newline at end of file diff --git a/app/engine/admin/bladetpl/core_object_admin/form.blade.php b/app/engine/admin/bladetpl/core_object_admin/form.blade.php new file mode 100644 index 0000000..3e4115e --- /dev/null +++ b/app/engine/admin/bladetpl/core_object_admin/form.blade.php @@ -0,0 +1,12 @@ +
+
+ @if($module->id) +

Редактирование (id: {{intval($module->id)}})

+ @else +

Создание

+ @endif +
+ {!! $form !!} +
+
+
diff --git a/app/engine/admin/modules/admin_polygon.php b/app/engine/admin/modules/admin_polygon.php index 7a07340..55b5541 100644 --- a/app/engine/admin/modules/admin_polygon.php +++ b/app/engine/admin/modules/admin_polygon.php @@ -7,6 +7,7 @@ class admin_polygon extends module { public $_get_vars = [ 'act', 'id' ]; public $_post_vars = [ 'act', 'geom' ]; public $_loc_vars = ['obj_name']; + public $obj_name; public function _init() { $this->obj = new cobject($this->obj_name); @@ -18,14 +19,13 @@ class admin_polygon extends module { $data = []; - $db2 = $this->obj->getDB()->q($this->obj->getSelectEx('id, title, ASTEXT(`geom`) as `geom` ')); + $db2 = $this->obj->getDB()->q($this->obj->getSelectEx('id, ASTEXT(`geom`) as `geom` ')); while($db2->nr()) { $coords = $this->mysql2json($db2->f('geom')); $row = []; $row['coords'] = $coords; $row['id'] = $db2->f('id'); - $row['title'] = $db2->f('title'); $data['rows'][] = $row; } @@ -47,13 +47,15 @@ class admin_polygon extends module { public function _ajax_getForm() { $this->obj->byId($this->id); $this->obj->set_hidden('geom'); + $this->obj->setSqlWhere('zone_id', 'order by title asc'); $form = new form($this->obj); + $form->setTempl('attrs/poly_form.htm'); $formdata = $form->render(); $polycolor = $this->obj->get('color') ? $this->obj->get('color') : '#00FF00'; - $returndata = ['html' => $formdata, 'color' => $polycolor, 'title' => $this->obj->get('title') ]; + $returndata = ['html' => $formdata, 'color' => $polycolor ]; echo json_encode($returndata); // echo $form->render(); @@ -66,9 +68,8 @@ class admin_polygon extends module { $this->obj->byId($id); if ($this->geom) { - if (!$this->obj->id) { - $this->obj->set('title', 'Новая зона'); + $this->obj->set('color', '#000000'); $this->obj->save(); $id = $this->obj->id; } @@ -83,7 +84,6 @@ class admin_polygon extends module { $ret = []; $ret['id'] = $id; - $ret['title'] = htmlspecialchars_decode($this->obj->get('title')); echo json_encode($ret); die(); diff --git a/app/engine/admin/modules/object_admin.php b/app/engine/admin/modules/object_admin.php index e693926..9636053 100644 --- a/app/engine/admin/modules/object_admin.php +++ b/app/engine/admin/modules/object_admin.php @@ -1,113 +1,113 @@ obj = new cobject( $this->obj_name ); - return parent::_init(); - } + public $_loc_vars = [ 'templ', 'obj_name', 'del', 'add','onPage' ]; + public $_get_vars = [ 'act', 'id' ]; + public $obj; + public $templBlade = 'core_object_admin'; - function _on_() { - global $R; - $db = $this->obj->getDB(); + public $del = true; + public $add = true; + public $onPage = 10; - $tpl = $R->getTpl( $this->templ, 'body' ); - $tplr = $R->getTpl( $this->templ, 'row' ); - $tpltd = $R->getTpl( $this->templ, 'td' ); - $tplth = $R->getTpl( $this->templ, 'th' ); - - $tpl_del_td = $R->getTpl( $this->templ, 'del_td' ); - $tpl_del_th = $R->getTpl( $this->templ, 'del_th' ); + public function _init() { + $this->obj = new cobject($this->obj_name); + return parent::_init(); + } - foreach( $this->obj->attrs as $attr_name => $attrs ) { - if ( $attrs['hide'] ) continue; - $tt = $R->set('attr_name', $attrs['desc'], $tplth ); - $tpl = $R->parse( 'head_cols', $tt, $tpl ); - - $tt = $R->set('attr_name', $attr_name, $tpltd ); - $tplr = $R->parse( 'row_cols', $tt, $tplr); - } - - if ( $this->del ) { - $tpl = $R->parse( 'head_cols', $tpl_del_th, $tpl ); - $tplr = $R->parse( 'row_cols', $tpl_del_td, $tplr); - } - - $filter = new filter( $this->obj_name ); - $filter->parse(); + public function _on_() { + global $blade; + $db = $this->obj->getDB(); - $db2 = $db->q( $this->obj->getSelectEx( 'COUNT(*) as `cnt`', $filter->getSQL() ) ); - $db2->r(); - $size = $db2->f('cnt'); - - $pw = new Walker( $size, $this->onPage ); + $data = []; - $tpl = $R->set( 'filter', $filter->getHTML() , $tpl); - $db2 = $db->q( $this->obj->getSelect( $filter->getSQL() . ' ORDER BY `ID` DESC ' . $pw->getSQL() ) ); - while( $db2->r() ) { - $this->obj->lRow($db2); - $tt = $this->obj->assign( $tplr, true ); - $tpl = $R->parse( 'rows', $tt, $tpl ); - } - - $this->obj->byId($this->id); - if ( !$this->id && !$this->add ) { - $tpl = $R->set( 'form', '' , $tpl); - } else { - $tpl = $R->set( 'form', $this->r_form() , $tpl); - } - $tpl = $R->set( 'walker', $pw->getHTML() , $tpl); - $tpl = $R->set( 'cur_page', $pw->page, $tpl ); - $tpl = $R->set( 'filter_url', $this->_get_filter_url(), $tpl ); - return $R->clear( $tpl ); - } - - - function r_form() { - $form = new form( $this->obj ); - return $form->render(); - } - - function _on_save_edit() { - global $cat; - if ( !$this->id && !$this->add ) _redirect('?cat=' . $cat->cat ); + $cols = []; + foreach ($this->obj->attrs as $attr_name => $attrs) { + if ($attrs['hide']) { + continue; + } - $this->obj->lPost(); - if ( $this->obj->validate() ) { - $this->obj->save(); - } else { - return $this->r_form(); - } - _redirect('?cat=' . $cat->cat . '&' . $this->_get_filter_url() .'&curpage='.$_GET['curpage'] ); - } - - function _on_del() { - global $cat; - if ( $this->del ) { - $this->obj->byId( $this->id ); - $this->obj->del(); - } - _redirect('?cat=' . $cat->cat . '&' . $this->_get_filter_url() .'&curpage='.$_GET['curpage']); - } - - function _get_filter_url() { - foreach( $_GET as $k => $v ) { - if ( strpos($k, $this->obj_name.'_') === 0 ) { - $ret = '&'.$k.'='.$v; - } - } - return $ret; - } - + $cols[$attr_name] = $attrs['desc']; + } -} + $data['cols'] = $cols; + + $filter = new filter($this->obj_name); + $filter->parse(); + $data['filter'] = $filter->getHTML(); + ; + + $db2 = $db->q($this->obj->getSelectEx('COUNT(*) as `cnt`', $filter->getSQL())); + $db2->r(); + $size = $db2->f('cnt'); + + $pw = new Walker($size, $this->onPage); + $data['walker'] = $pw->getHTML(); + $data['page'] = $pw->page; + + $data['row'] = $this->obj->getCollection($filter->getSQL() . ' ORDER BY `ID` DESC ' . $pw->getSQL(), false, true); + $data['filterUrl'] = $this->_get_filter_url(); + + return $blade->run($this->getBladeTempl('body'), $data); + } + + public function _on_edit() { + global $blade; + + $id = intval($this->id); + if ($id) { + $this->obj->byId($id); + } + + $data = []; + $data['form'] = $this->r_form(); + + + + return $blade->run($this->getBladeTempl('form'), $data); + } + + public function r_form() { + $form = new form($this->obj); + return $form->render(); + } + + public function _on_save_edit() { + global $cat; + + $this->obj->lPost(); + + if (!$this->obj->id && !$this->add) { + _redirect('?cat=' . $cat->cat); + } + if ($this->obj->validate()) { + $this->obj->save(); + } else { + return $this->r_form(); + } + _redirect('?cat=' . $cat->cat . '&' . $this->_get_filter_url() .'&curpage='.$_GET['curpage'], 'Данные сохранены'); + } + + public function _on_del() { + global $cat; + if ($this->del) { + $this->obj->byId($this->id); + $this->obj->del(); + } + _redirect('?cat=' . $cat->cat . '&' . $this->_get_filter_url() .'&curpage='.$_GET['curpage'], 'Успешно удалено'); + } + + public function _get_filter_url() { + foreach ($_GET as $k => $v) { + if (strpos($k, $this->obj_name.'_') === 0) { + $ret = '&'.$k.'='.$v; + } + } + return $ret; + } + + +} ?> \ No newline at end of file diff --git a/app/engine/admin/tpls/attrs/poly_form.htm b/app/engine/admin/tpls/attrs/poly_form.htm index 6b5688d..e9ad235 100644 --- a/app/engine/admin/tpls/attrs/poly_form.htm +++ b/app/engine/admin/tpls/attrs/poly_form.htm @@ -1,24 +1,42 @@ #[body]# - -
- - {form_rows} - - - -
- {hidden_attrs} - - - - -
-
-
+ +
+ +
Редактирование
+ +
+ {form_rows} +
+ + {hidden_attrs} + + + + + +
+ +
+
+
#[!body]# + #[row]# - {attr_title}{attr_mand}:{attr_html}{attr_error} +
+ +
+ {attr_html} +
+
{attr_error}
+
#[!row]# + #[mand]# -* +* #[!mand]# diff --git a/app/engine/core/db.class.php b/app/engine/core/db.class.php index 9245030..3588d80 100644 --- a/app/engine/core/db.class.php +++ b/app/engine/core/db.class.php @@ -80,6 +80,17 @@ class db { } } + public function getRow() + { + return $this->lastRow; + } + + + public function fetchAll() { + return mysqli_fetch_all($this->r, MYSQLI_ASSOC); + } + + function nr() { return $this->r(); } @@ -100,9 +111,6 @@ class db { mysqli_close( $this->database ); } - public function fetchAll() { - return mysqli_fetch_all($this->r, MYSQLI_ASSOC); - } } diff --git a/app/engine/cron/data_sync/sync_doctors_and_zones.php b/app/engine/cron/data_sync/sync_doctors_and_zones.php new file mode 100644 index 0000000..bf2e138 --- /dev/null +++ b/app/engine/cron/data_sync/sync_doctors_and_zones.php @@ -0,0 +1,147 @@ +connect("192.168.0.2", "root", "Xx29Pz33", "pnd8"); + +// Приёмник (новая база) +$dst = $core_db->new_db(); + + +// ===================================================================== +// 1. СОЗДАЁМ ВРЕМЕННЫЕ ТАБЛИЦЫ С ИДЕНТИЧНОЙ СТРУКТУРОЙ +// ===================================================================== +function recreateTmpTables($dst, $DRY_RUN) +{ + $sql = [ + + "DROP TABLE IF EXISTS pnd_zones_tmp", + "DROP TABLE IF EXISTS pnd_doctors_tmp", + + "CREATE TABLE pnd_zones_tmp LIKE pnd_zones", + "CREATE TABLE pnd_doctors_tmp LIKE pnd_doctors", + ]; + + foreach ($sql as $q) { + echo "[INIT] $q\n"; + if (!$DRY_RUN) $dst->q($q); + } +} + +recreateTmpTables($dst, $DRY_RUN); + + +// ===================================================================== +// 2. ПЕРЕНОСИМ УЧАСТКИ (ID = внешний ID) +// ===================================================================== +$sqlZones = " + SELECT id, name + FROM OrgStructure + WHERE deleted = 0 and parent_id = 45 +"; + +$zones = $src->q($sqlZones)->fetchAll(); +echo "Loaded zones: " . count($zones) . "\n"; + +foreach ($zones as $z) { + + $id = (int)$z['id']; + $title = db_escape_string($z['name']); + + echo "[TMP ZONE] INSERT id={$id}, title={$title}\n"; + + if (!$DRY_RUN) { + $dst->q(" + INSERT INTO pnd_zones_tmp (id, title) + VALUES ({$id}, '{$title}') + "); + } +} + + +// ===================================================================== +// 3. ПЕРЕНОСИМ ВРАЧЕЙ (ID = внешний id, zone_id = внешний id участка) +// ===================================================================== +$sqlDoctors = " + SELECT + p.id AS external_id, + CONCAT(p.lastName, ' ', p.firstName, ' ', p.patrName) AS full_name, + rp.name AS post_name, + rs.name AS speciality_name, + p.office, + p.orgStructure_id + FROM Person p + LEFT JOIN rbPost rp ON rp.id = p.post_id + LEFT JOIN rbSpeciality rs ON rs.id = p.speciality_id + WHERE p.deleted = 0 + AND p.orgStructure_id > 0 + AND `retireDate` IS NULL + AND speciality_id = 127 +"; + +$docs = $src->q($sqlDoctors)->fetchAll(); +echo "Loaded doctors: " . count($docs) . "\n"; + +foreach ($docs as $d) { + + $id = (int)$d['external_id']; + $name = db_escape_string($d['full_name']); + $post = db_escape_string($d['post_name']); + $spec = db_escape_string($d['speciality_name']); + $office = db_escape_string($d['office']); + + // zone_id = внешний ID участка + $zoneId = (int)$d['orgStructure_id']; + + echo "[TMP DOC] INSERT id={$id}, name={$name}\n"; + + if (!$DRY_RUN) { + $dst->q(" + INSERT INTO pnd_doctors_tmp + (id, name, post_name, speciality_name, office, zone_id) + VALUES ( + {$id}, '{$name}', '{$post}', '{$spec}', '{$office}', {$zoneId} + ) + "); + } +} + + +// ===================================================================== +// 4. ЧИСТАЯ ПОДМЕНА ДАННЫХ БЕЗ RENAME TABLE +// ===================================================================== +function replaceTables($dst, $DRY_RUN) +{ + $ops = [ + + // очищаем основные таблицы + "TRUNCATE TABLE pnd_zones", + "TRUNCATE TABLE pnd_doctors", + + // переносим обновлённые данные из временных таблиц + "INSERT INTO pnd_zones SELECT * FROM pnd_zones_tmp", + "INSERT INTO pnd_doctors SELECT * FROM pnd_doctors_tmp", + + // удаляем временные таблицы + "DROP TABLE pnd_zones_tmp", + "DROP TABLE pnd_doctors_tmp", + ]; + + foreach ($ops as $q) { + echo "[REPLACE] $q\n"; + if (!$DRY_RUN) $dst->q($q); + } +} + +replaceTables($dst, $DRY_RUN); + + +echo "\n--- DONE (DRY_RUN = " . ($DRY_RUN ? "YES" : "NO") . ") ---\n"; diff --git a/app/engine/migrations/20251113-1922-pnd_zones.sql b/app/engine/migrations/20251113-1922-pnd_zones.sql new file mode 100644 index 0000000..5472512 --- /dev/null +++ b/app/engine/migrations/20251113-1922-pnd_zones.sql @@ -0,0 +1,2 @@ +-- [2025-11-13 19:22:41] Изменение атрибута title; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("input" , "" , "Внешнее название зоны" , "0" , "0" , "100" , "0" , "pnd_zones" , "title"); diff --git a/app/engine/migrations/20251113-1927-pnd_doctor_zones.sql b/app/engine/migrations/20251113-1927-pnd_doctor_zones.sql new file mode 100644 index 0000000..201ff3f --- /dev/null +++ b/app/engine/migrations/20251113-1927-pnd_doctor_zones.sql @@ -0,0 +1,8 @@ +-- [2025-11-13 19:27:47] Создание атрибута; +CREATE TABLE IF NOT EXISTS `pnd_doctor_zones` ( `id` INT(12) NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `pnd_doctor_zones` ADD `doctor_id` int(12) NOT NULL; +REPLACE INTO `_sys_datatypes` (`obj_name`, `attr_name`,`attr_type`,`attr_desc`,`attr_templ`,`attr_order`) VALUES ("pnd_doctor_zones","doctor_id","int12","","","100"); +-- [2025-11-13 19:27:53] Создание атрибута; +CREATE TABLE IF NOT EXISTS `pnd_doctor_zones` ( `id` INT(12) NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `pnd_doctor_zones` ADD `zone_id` int(12) NOT NULL; +REPLACE INTO `_sys_datatypes` (`obj_name`, `attr_name`,`attr_type`,`attr_desc`,`attr_templ`,`attr_order`) VALUES ("pnd_doctor_zones","zone_id","int12","","","100"); diff --git a/app/engine/migrations/20251113-1927-pnd_doctors.sql b/app/engine/migrations/20251113-1927-pnd_doctors.sql new file mode 100644 index 0000000..b46d59e --- /dev/null +++ b/app/engine/migrations/20251113-1927-pnd_doctors.sql @@ -0,0 +1,4 @@ +-- [2025-11-13 19:27:05] Создание атрибута; +CREATE TABLE IF NOT EXISTS `pnd_doctors` ( `id` INT(12) NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `pnd_doctors` ADD `external_id` int(12) NOT NULL; +REPLACE INTO `_sys_datatypes` (`obj_name`, `attr_name`,`attr_type`,`attr_desc`,`attr_templ`,`attr_order`) VALUES ("pnd_doctors","external_id","int12","","","100"); diff --git a/app/engine/migrations/20251113-1934-shop_delivery_zones.sql b/app/engine/migrations/20251113-1934-shop_delivery_zones.sql new file mode 100644 index 0000000..dfdbb3e --- /dev/null +++ b/app/engine/migrations/20251113-1934-shop_delivery_zones.sql @@ -0,0 +1,3 @@ +-- [2025-11-13 19:34:22] Удаление атрибута title; +DELETE FROM `_sys_datatypes` WHERE `obj_name` = 'shop_delivery_zones' AND `attr_name` = 'title'; +ALTER TABLE `shop_delivery_zones` DROP `title`; diff --git a/app/engine/migrations/20251113-1938-pnd_doctors.sql b/app/engine/migrations/20251113-1938-pnd_doctors.sql new file mode 100644 index 0000000..a5c1fab --- /dev/null +++ b/app/engine/migrations/20251113-1938-pnd_doctors.sql @@ -0,0 +1,16 @@ +-- [2025-11-13 19:38:05] Изменение атрибута name; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("input" , "" , "Имя" , "0" , "0" , "100" , "0" , "pnd_doctors" , "name"); +-- [2025-11-13 19:38:05] Изменение атрибута external_id; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("int12" , "" , "Внешний Id" , "0" , "0" , "100" , "0" , "pnd_doctors" , "external_id"); +-- [2025-11-13 19:38:26] Создание атрибута; +CREATE TABLE IF NOT EXISTS `pnd_doctors` ( `id` INT(12) NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `pnd_doctors` ADD `post_name` varchar(255) NOT NULL; +REPLACE INTO `_sys_datatypes` (`obj_name`, `attr_name`,`attr_type`,`attr_desc`,`attr_templ`,`attr_order`) VALUES ("pnd_doctors","post_name","input","","","100"); +-- [2025-11-13 19:38:29] Изменение атрибута post_name; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("input" , "" , "Должность" , "0" , "0" , "100" , "0" , "pnd_doctors" , "post_name"); +-- [2025-11-13 19:38:39] Создание атрибута; +CREATE TABLE IF NOT EXISTS `pnd_doctors` ( `id` INT(12) NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `pnd_doctors` ADD `speciality_name` varchar(255) NOT NULL; +REPLACE INTO `_sys_datatypes` (`obj_name`, `attr_name`,`attr_type`,`attr_desc`,`attr_templ`,`attr_order`) VALUES ("pnd_doctors","speciality_name","input","","","100"); +-- [2025-11-13 19:38:51] Изменение атрибута speciality_name; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("input" , "" , "Специальность" , "0" , "0" , "100" , "0" , "pnd_doctors" , "speciality_name"); diff --git a/app/engine/migrations/20251113-1939-pnd_doctor_zones.sql b/app/engine/migrations/20251113-1939-pnd_doctor_zones.sql new file mode 100644 index 0000000..f8676b5 --- /dev/null +++ b/app/engine/migrations/20251113-1939-pnd_doctor_zones.sql @@ -0,0 +1,10 @@ +-- [2025-11-13 19:39:30] Изменение атрибута doctor_id; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("int12" , "" , "Врач" , "0" , "0" , "100" , "0" , "pnd_doctor_zones" , "doctor_id"); +-- [2025-11-13 19:39:30] Изменение атрибута zone_id; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("int12" , "" , "Зона" , "0" , "0" , "100" , "0" , "pnd_doctor_zones" , "zone_id"); +-- [2025-11-13 19:39:41] Удаление атрибута doctor_id; +DELETE FROM `_sys_datatypes` WHERE `obj_name` = 'pnd_doctor_zones' AND `attr_name` = 'doctor_id'; +ALTER TABLE `pnd_doctor_zones` DROP `doctor_id`; +-- [2025-11-13 19:39:43] Удаление атрибута zone_id; +DELETE FROM `_sys_datatypes` WHERE `obj_name` = 'pnd_doctor_zones' AND `attr_name` = 'zone_id'; +ALTER TABLE `pnd_doctor_zones` DROP `zone_id`; diff --git a/app/engine/migrations/20251113-1939-pnd_doctors.sql b/app/engine/migrations/20251113-1939-pnd_doctors.sql new file mode 100644 index 0000000..56b9cde --- /dev/null +++ b/app/engine/migrations/20251113-1939-pnd_doctors.sql @@ -0,0 +1,6 @@ +-- [2025-11-13 19:39:02] Создание атрибута; +CREATE TABLE IF NOT EXISTS `pnd_doctors` ( `id` INT(12) NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `pnd_doctors` ADD `office` varchar(255) NOT NULL; +REPLACE INTO `_sys_datatypes` (`obj_name`, `attr_name`,`attr_type`,`attr_desc`,`attr_templ`,`attr_order`) VALUES ("pnd_doctors","office","input","","","100"); +-- [2025-11-13 19:39:05] Изменение атрибута office; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("input" , "" , "Кабинет" , "0" , "0" , "100" , "0" , "pnd_doctors" , "office"); diff --git a/app/engine/migrations/20251113-1940-pnd_doctors.sql b/app/engine/migrations/20251113-1940-pnd_doctors.sql new file mode 100644 index 0000000..21921e1 --- /dev/null +++ b/app/engine/migrations/20251113-1940-pnd_doctors.sql @@ -0,0 +1,9 @@ +-- [2025-11-13 19:40:02] Создание атрибута; +CREATE TABLE IF NOT EXISTS `pnd_doctors` ( `id` INT(12) NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `pnd_doctors` ADD `external_zone_id` int(12) NOT NULL; +REPLACE INTO `_sys_datatypes` (`obj_name`, `attr_name`,`attr_type`,`attr_desc`,`attr_templ`,`attr_order`) VALUES ("pnd_doctors","external_zone_id","int12","","","100"); +-- [2025-11-13 19:40:07] Изменение атрибута external_zone_id; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("int12" , "" , "Связь с зоной" , "0" , "0" , "100" , "0" , "pnd_doctors" , "external_zone_id"); +-- [2025-11-13 19:40:33] Удаление атрибута external_zone_id; +DELETE FROM `_sys_datatypes` WHERE `obj_name` = 'pnd_doctors' AND `attr_name` = 'external_zone_id'; +ALTER TABLE `pnd_doctors` DROP `external_zone_id`; diff --git a/app/engine/migrations/20251113-1941-shop_delivery_zones.sql b/app/engine/migrations/20251113-1941-shop_delivery_zones.sql new file mode 100644 index 0000000..3187ea3 --- /dev/null +++ b/app/engine/migrations/20251113-1941-shop_delivery_zones.sql @@ -0,0 +1,4 @@ +-- [2025-11-13 19:41:08] Изменение атрибута zone_id; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("LINK|pnd_zones" , "[title]" , "Участок" , "0" , "0" , "50" , "0" , "shop_delivery_zones" , "zone_id"); +-- [2025-11-13 19:41:13] Изменение атрибута geom; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("geometry" , "" , "Полигон" , "0" , "0" , "999" , "0" , "shop_delivery_zones" , "geom"); diff --git a/app/engine/migrations/20251113-1942-pnd_doctors.sql b/app/engine/migrations/20251113-1942-pnd_doctors.sql new file mode 100644 index 0000000..4754e52 --- /dev/null +++ b/app/engine/migrations/20251113-1942-pnd_doctors.sql @@ -0,0 +1,7 @@ +-- [2025-11-13 19:42:16] Создание атрибута; +CREATE TABLE IF NOT EXISTS `pnd_doctors` ( `id` INT(12) NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `pnd_doctors` ADD `zone_id` int(12) NOT NULL; +ALTER TABLE `pnd_doctors` ADD INDEX ( `zone_id` ); +REPLACE INTO `_sys_datatypes` (`obj_name`, `attr_name`,`attr_type`,`attr_desc`,`attr_templ`,`attr_order`) VALUES ("pnd_doctors","zone_id","LINK|pnd_zones","","","100"); +-- [2025-11-13 19:42:26] Изменение атрибута zone_id; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("LINK|pnd_zones" , "[title]" , "Участок" , "0" , "0" , "100" , "0" , "pnd_doctors" , "zone_id"); diff --git a/app/engine/migrations/20251113-1942-pnd_zone_geometry.sql b/app/engine/migrations/20251113-1942-pnd_zone_geometry.sql new file mode 100644 index 0000000..b7ba93e --- /dev/null +++ b/app/engine/migrations/20251113-1942-pnd_zone_geometry.sql @@ -0,0 +1,5 @@ +-- [2025-11-13 19:42:52] Создание атрибута; +CREATE TABLE IF NOT EXISTS `pnd_zone_geometry` ( `id` INT(12) NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `pnd_zone_geometry` ADD `zone_id` int(12) NOT NULL; +ALTER TABLE `pnd_zone_geometry` ADD INDEX ( `zone_id` ); +REPLACE INTO `_sys_datatypes` (`obj_name`, `attr_name`,`attr_type`,`attr_desc`,`attr_templ`,`attr_order`) VALUES ("pnd_zone_geometry","zone_id","LINK|pnd_zones","","","100"); diff --git a/app/engine/migrations/20251113-1943-pnd_doctors.sql b/app/engine/migrations/20251113-1943-pnd_doctors.sql new file mode 100644 index 0000000..5574bf0 --- /dev/null +++ b/app/engine/migrations/20251113-1943-pnd_doctors.sql @@ -0,0 +1,2 @@ +-- [2025-11-13 19:43:57] Изменение комментария pnd_doctors; +ALTER TABLE `pnd_doctors` COMMENT = 'Список врачей';; diff --git a/app/engine/migrations/20251113-1943-pnd_zone_geometry.sql b/app/engine/migrations/20251113-1943-pnd_zone_geometry.sql new file mode 100644 index 0000000..1909c9d --- /dev/null +++ b/app/engine/migrations/20251113-1943-pnd_zone_geometry.sql @@ -0,0 +1,20 @@ +-- [2025-11-13 19:43:01] Создание атрибута; +CREATE TABLE IF NOT EXISTS `pnd_zone_geometry` ( `id` INT(12) NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `pnd_zone_geometry` ADD `color` char(7) NOT NULL; +REPLACE INTO `_sys_datatypes` (`obj_name`, `attr_name`,`attr_type`,`attr_desc`,`attr_templ`,`attr_order`) VALUES ("pnd_zone_geometry","color","color","","","100"); +-- [2025-11-13 19:43:13] Создание атрибута; +CREATE TABLE IF NOT EXISTS `pnd_zone_geometry` ( `id` INT(12) NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `pnd_zone_geometry` ADD `geom` GEOMETRY NOT NULL; +REPLACE INTO `_sys_datatypes` (`obj_name`, `attr_name`,`attr_type`,`attr_desc`,`attr_templ`,`attr_order`) VALUES ("pnd_zone_geometry","geom","geometry","","","100"); +-- [2025-11-13 19:43:24] Изменение атрибута color; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("color" , "" , "Цвет" , "0" , "0" , "100" , "0" , "pnd_zone_geometry" , "color"); +-- [2025-11-13 19:43:24] Изменение атрибута zone_id; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("LINK|pnd_zones" , "" , "Участок" , "0" , "0" , "100" , "0" , "pnd_zone_geometry" , "zone_id"); +-- [2025-11-13 19:43:24] Изменение атрибута geom; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("geometry" , "" , "Геометрия" , "0" , "0" , "100" , "0" , "pnd_zone_geometry" , "geom"); +-- [2025-11-13 19:43:30] Изменение атрибута geom; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("geometry" , "" , "Геометрия" , "0" , "0" , "999" , "0" , "pnd_zone_geometry" , "geom"); +-- [2025-11-13 19:43:34] Изменение атрибута zone_id; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("LINK|pnd_zones" , "" , "Участок" , "0" , "0" , "10" , "0" , "pnd_zone_geometry" , "zone_id"); +-- [2025-11-13 19:43:39] Изменение комментария pnd_zone_geometry; +ALTER TABLE `pnd_zone_geometry` COMMENT = 'Геометрия зон';; diff --git a/app/engine/migrations/20251113-1943-pnd_zones.sql b/app/engine/migrations/20251113-1943-pnd_zones.sql new file mode 100644 index 0000000..389d08d --- /dev/null +++ b/app/engine/migrations/20251113-1943-pnd_zones.sql @@ -0,0 +1,4 @@ +-- [2025-11-13 19:43:44] Изменение комментария pnd_zones; +ALTER TABLE `pnd_zones` COMMENT = 'Список зон';; +-- [2025-11-13 19:43:51] Изменение атрибута external_zone_id; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("int12" , "" , "Внешний ID зоны" , "0" , "0" , "999" , "0" , "pnd_zones" , "external_zone_id"); diff --git a/app/engine/migrations/20251113-1944-admin-cats.sql b/app/engine/migrations/20251113-1944-admin-cats.sql new file mode 100644 index 0000000..ad37787 --- /dev/null +++ b/app/engine/migrations/20251113-1944-admin-cats.sql @@ -0,0 +1 @@ +UPDATE `_sys_cat_admin` SET `_sys_cat_admin`.`data` = "$obj_name=pnd_zone_geometry;" WHERE `_sys_cat_admin`.`cat_id` = "core-zone-admin"; diff --git a/app/engine/migrations/20251113-1944-pnd_zone_geometry.sql b/app/engine/migrations/20251113-1944-pnd_zone_geometry.sql new file mode 100644 index 0000000..1e5b590 --- /dev/null +++ b/app/engine/migrations/20251113-1944-pnd_zone_geometry.sql @@ -0,0 +1,4 @@ +-- [2025-11-13 19:44:24] Изменение комментария pnd_zone_geometry; +ALTER TABLE `pnd_zone_geometry` COMMENT = 'Геометрия зон (учестков)';; +-- [2025-11-13 19:44:25] Изменение комментария pnd_zone_geometry; +ALTER TABLE `pnd_zone_geometry` COMMENT = 'Геометрия зон (участков)';; diff --git a/app/engine/migrations/20251113-1944-pnd_zones.sql b/app/engine/migrations/20251113-1944-pnd_zones.sql new file mode 100644 index 0000000..58ce40f --- /dev/null +++ b/app/engine/migrations/20251113-1944-pnd_zones.sql @@ -0,0 +1,6 @@ +-- [2025-11-13 19:44:04] Изменение комментария pnd_zones; +ALTER TABLE `pnd_zones` COMMENT = 'Список зон (учествков)';; +-- [2025-11-13 19:44:12] Изменение атрибута title; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("input" , "" , "Название участка" , "0" , "0" , "100" , "0" , "pnd_zones" , "title"); +-- [2025-11-13 19:44:17] Изменение комментария pnd_zones; +ALTER TABLE `pnd_zones` COMMENT = 'Список зон (участков)';; diff --git a/app/engine/migrations/20251113-2020-pnd_zones.sql b/app/engine/migrations/20251113-2020-pnd_zones.sql new file mode 100644 index 0000000..05a344b --- /dev/null +++ b/app/engine/migrations/20251113-2020-pnd_zones.sql @@ -0,0 +1,3 @@ +-- [2025-11-13 20:20:07] Удаление атрибута external_zone_id; +DELETE FROM `_sys_datatypes` WHERE `obj_name` = 'pnd_zones' AND `attr_name` = 'external_zone_id'; +ALTER TABLE `pnd_zones` DROP `external_zone_id`; diff --git a/app/engine/migrations/20251113-2026-pnd_zone_geometry.sql b/app/engine/migrations/20251113-2026-pnd_zone_geometry.sql new file mode 100644 index 0000000..6a2efc0 --- /dev/null +++ b/app/engine/migrations/20251113-2026-pnd_zone_geometry.sql @@ -0,0 +1,2 @@ +-- [2025-11-13 20:26:00] Изменение атрибута zone_id; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("LINK|pnd_zones" , "id: [id] [title]" , "Участок" , "0" , "0" , "10" , "0" , "pnd_zone_geometry" , "zone_id"); diff --git a/app/engine/migrations/20251113-2027-pnd_zone_geometry.sql b/app/engine/migrations/20251113-2027-pnd_zone_geometry.sql new file mode 100644 index 0000000..8dbe2d0 --- /dev/null +++ b/app/engine/migrations/20251113-2027-pnd_zone_geometry.sql @@ -0,0 +1,4 @@ +-- [2025-11-13 20:27:10] Изменение атрибута zone_id; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("LINK|pnd_zones" , "[title] ([id])" , "Участок" , "0" , "0" , "10" , "0" , "pnd_zone_geometry" , "zone_id"); +-- [2025-11-13 20:27:27] Изменение атрибута zone_id; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("LINK|pnd_zones" , "[title] (id: [id])" , "Участок" , "0" , "0" , "10" , "0" , "pnd_zone_geometry" , "zone_id"); diff --git a/app/engine/migrations/20251113-2038-pnd_zone_geometry.sql b/app/engine/migrations/20251113-2038-pnd_zone_geometry.sql new file mode 100644 index 0000000..8721407 --- /dev/null +++ b/app/engine/migrations/20251113-2038-pnd_zone_geometry.sql @@ -0,0 +1,4 @@ +-- [2025-11-13 20:38:59] Создание атрибута; +CREATE TABLE IF NOT EXISTS `pnd_zone_geometry` ( `id` INT(12) NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `pnd_zone_geometry` ADD `_sys_deleted` int(1) NOT NULL; +REPLACE INTO `_sys_datatypes` (`obj_name`, `attr_name`,`attr_type`,`attr_desc`,`attr_templ`,`attr_order`) VALUES ("pnd_zone_geometry","_sys_deleted","checkbox","","","100"); diff --git a/app/engine/migrations/20251113-2039-pnd_zone_geometry.sql b/app/engine/migrations/20251113-2039-pnd_zone_geometry.sql new file mode 100644 index 0000000..09411bf --- /dev/null +++ b/app/engine/migrations/20251113-2039-pnd_zone_geometry.sql @@ -0,0 +1,4 @@ +-- [2025-11-13 20:39:02] Изменение атрибута _sys_deleted; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("checkbox" , "" , "Удалён" , "0" , "0" , "100" , "0" , "pnd_zone_geometry" , "_sys_deleted"); +-- [2025-11-13 20:39:06] Изменение атрибута _sys_deleted; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("checkbox" , "" , "Удалён" , "1" , "0" , "100" , "0" , "pnd_zone_geometry" , "_sys_deleted"); diff --git a/app/engine/migrations/20251113-2105-pnd_doctors.sql b/app/engine/migrations/20251113-2105-pnd_doctors.sql new file mode 100644 index 0000000..39123aa --- /dev/null +++ b/app/engine/migrations/20251113-2105-pnd_doctors.sql @@ -0,0 +1,3 @@ +-- [2025-11-13 21:05:37] Удаление атрибута external_id; +DELETE FROM `_sys_datatypes` WHERE `obj_name` = 'pnd_doctors' AND `attr_name` = 'external_id'; +ALTER TABLE `pnd_doctors` DROP `external_id`; diff --git a/app/engine/migrations/20251118-1906-pnd_docs.sql b/app/engine/migrations/20251118-1906-pnd_docs.sql new file mode 100644 index 0000000..0673ed0 --- /dev/null +++ b/app/engine/migrations/20251118-1906-pnd_docs.sql @@ -0,0 +1,12 @@ +-- [2025-11-18 19:06:34] Создание атрибута; +CREATE TABLE IF NOT EXISTS `pnd_docs` ( `id` INT(12) NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `pnd_docs` ADD `btn_name` varchar(255) NOT NULL; +REPLACE INTO `_sys_datatypes` (`obj_name`, `attr_name`,`attr_type`,`attr_desc`,`attr_templ`,`attr_order`) VALUES ("pnd_docs","btn_name","input","","","100"); +-- [2025-11-18 19:06:46] Создание атрибута; +CREATE TABLE IF NOT EXISTS `pnd_docs` ( `id` INT(12) NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `pnd_docs` ADD `html` text NOT NULL; +REPLACE INTO `_sys_datatypes` (`obj_name`, `attr_name`,`attr_type`,`attr_desc`,`attr_templ`,`attr_order`) VALUES ("pnd_docs","html","redactor_html","","","100"); +-- [2025-11-18 19:06:56] Изменение атрибута btn_name; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("input" , "" , "Название кнопки" , "0" , "0" , "100" , "0" , "pnd_docs" , "btn_name"); +-- [2025-11-18 19:06:56] Изменение атрибута html; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("redactor_html" , "" , "Текст" , "0" , "0" , "100" , "0" , "pnd_docs" , "html"); diff --git a/app/engine/migrations/20251118-1907-pnd_docs.sql b/app/engine/migrations/20251118-1907-pnd_docs.sql new file mode 100644 index 0000000..c42bc79 --- /dev/null +++ b/app/engine/migrations/20251118-1907-pnd_docs.sql @@ -0,0 +1,8 @@ +-- [2025-11-18 19:07:06] Создание атрибута; +CREATE TABLE IF NOT EXISTS `pnd_docs` ( `id` INT(12) NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `pnd_docs` ADD `_sys_unvisible` int(1) NOT NULL; +REPLACE INTO `_sys_datatypes` (`obj_name`, `attr_name`,`attr_type`,`attr_desc`,`attr_templ`,`attr_order`) VALUES ("pnd_docs","_sys_unvisible","checkbox","","","100"); +-- [2025-11-18 19:07:08] Изменение атрибута _sys_unvisible; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("checkbox" , "" , "Скрыть" , "0" , "0" , "100" , "0" , "pnd_docs" , "_sys_unvisible"); +-- [2025-11-18 19:07:16] Изменение комментария pnd_docs; +ALTER TABLE `pnd_docs` COMMENT = 'Кнопки с документами';; diff --git a/app/engine/migrations/20251118-1928-user-cats.sql b/app/engine/migrations/20251118-1928-user-cats.sql new file mode 100644 index 0000000..0ca10e5 --- /dev/null +++ b/app/engine/migrations/20251118-1928-user-cats.sql @@ -0,0 +1,2 @@ +INSERT INTO `_sys_cat` (`cat_id`, `cat_name`, `parent_cat`) VALUES ( "docs", "Нормативная документация", "index"); +INSERT INTO `_sys_cat` (`cat_id`, `cat_name`, `parent_cat`) VALUES ( "faq", "Часто задаваемые вопросы", "index"); diff --git a/app/engine/migrations/20251118-1929-user-cats.sql b/app/engine/migrations/20251118-1929-user-cats.sql new file mode 100644 index 0000000..4d81003 --- /dev/null +++ b/app/engine/migrations/20251118-1929-user-cats.sql @@ -0,0 +1,2 @@ +INSERT INTO `_sys_cat` (`cat_id`, `cat_name`, `parent_cat`) VALUES ( "license", "Лицензия", "index"); +INSERT INTO `_sys_cat` (`cat_id`, `cat_name`, `parent_cat`) VALUES ( "extened_docs", "Справки", "index"); diff --git a/app/engine/migrations/20251118-1930-_sys_static.sql b/app/engine/migrations/20251118-1930-_sys_static.sql new file mode 100644 index 0000000..228e1f9 --- /dev/null +++ b/app/engine/migrations/20251118-1930-_sys_static.sql @@ -0,0 +1,12 @@ +-- [2025-11-18 19:30:45] Изменение атрибута page_title; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("input" , "" , "seo title" , "1" , "0" , "501" , "0" , "_sys_static" , "page_title"); +-- [2025-11-18 19:30:45] Изменение атрибута page_h1; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("input" , "" , "seo H1" , "1" , "0" , "502" , "0" , "_sys_static" , "page_h1"); +-- [2025-11-18 19:30:45] Изменение атрибута page_keywords; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("input" , "" , "seo keywords" , "1" , "0" , "503" , "0" , "_sys_static" , "page_keywords"); +-- [2025-11-18 19:30:45] Изменение атрибута page_description; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("input" , "" , "seo description" , "1" , "0" , "504" , "0" , "_sys_static" , "page_description"); +-- [2025-11-18 19:30:45] Изменение атрибута _sys_order; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("int12" , "" , "Порядок сортировки" , "1" , "0" , "800" , "0" , "_sys_static" , "_sys_order"); +-- [2025-11-18 19:30:45] Изменение атрибута _sys_unvisible; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("checkbox" , "" , "Невидимый" , "1" , "0" , "999" , "0" , "_sys_static" , "_sys_unvisible"); diff --git a/app/engine/migrations/20251118-1931-_sys_static.sql b/app/engine/migrations/20251118-1931-_sys_static.sql new file mode 100644 index 0000000..e232b5d --- /dev/null +++ b/app/engine/migrations/20251118-1931-_sys_static.sql @@ -0,0 +1,2 @@ +-- [2025-11-18 19:31:39] Изменение атрибута description; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("redactor_html" , "" , "Текстовый блок" , "0" , "0" , "100" , "0" , "_sys_static" , "description"); diff --git a/app/engine/migrations/20251118-1931-user-cats.sql b/app/engine/migrations/20251118-1931-user-cats.sql new file mode 100644 index 0000000..5a03b31 --- /dev/null +++ b/app/engine/migrations/20251118-1931-user-cats.sql @@ -0,0 +1,2 @@ +UPDATE `_sys_cat` SET `_sys_cat`.`module` = "static_page.php" , `_sys_cat`.`data` = "$id=3;" WHERE `_sys_cat`.`cat_id` = "license"; +UPDATE `_sys_cat` SET `_sys_cat`.`module` = "static_page.php" , `_sys_cat`.`data` = "$id=4;" WHERE `_sys_cat`.`cat_id` = "extened_docs"; diff --git a/app/engine/migrations/20251118-1932-_sys_static.sql b/app/engine/migrations/20251118-1932-_sys_static.sql new file mode 100644 index 0000000..9b6f29d --- /dev/null +++ b/app/engine/migrations/20251118-1932-_sys_static.sql @@ -0,0 +1,12 @@ +-- [2025-11-18 19:32:34] Удаление атрибута page_title; +DELETE FROM `_sys_datatypes` WHERE `obj_name` = '_sys_static' AND `attr_name` = 'page_title'; +ALTER TABLE `_sys_static` DROP `page_title`; +-- [2025-11-18 19:32:36] Удаление атрибута page_h1; +DELETE FROM `_sys_datatypes` WHERE `obj_name` = '_sys_static' AND `attr_name` = 'page_h1'; +ALTER TABLE `_sys_static` DROP `page_h1`; +-- [2025-11-18 19:32:37] Удаление атрибута page_keywords; +DELETE FROM `_sys_datatypes` WHERE `obj_name` = '_sys_static' AND `attr_name` = 'page_keywords'; +ALTER TABLE `_sys_static` DROP `page_keywords`; +-- [2025-11-18 19:32:38] Удаление атрибута page_description; +DELETE FROM `_sys_datatypes` WHERE `obj_name` = '_sys_static' AND `attr_name` = 'page_description'; +ALTER TABLE `_sys_static` DROP `page_description`; diff --git a/app/engine/migrations/20251118-1937-user-cats.sql b/app/engine/migrations/20251118-1937-user-cats.sql new file mode 100644 index 0000000..0529b1d --- /dev/null +++ b/app/engine/migrations/20251118-1937-user-cats.sql @@ -0,0 +1,2 @@ +INSERT INTO `_sys_cat` (`cat_id`, `cat_name`, `parent_cat`) VALUES ( "--btns-", "Кнопки", "index"); +UPDATE `_sys_cat` SET `_sys_cat`.`parent_cat` = "--btns-" WHERE `_sys_cat`.`cat_id` = "docs"; diff --git a/app/engine/migrations/20251118-1938-user-cats.sql b/app/engine/migrations/20251118-1938-user-cats.sql new file mode 100644 index 0000000..d670510 --- /dev/null +++ b/app/engine/migrations/20251118-1938-user-cats.sql @@ -0,0 +1,4 @@ +UPDATE `_sys_cat` SET `_sys_cat`.`parent_cat` = "--btns-" WHERE `_sys_cat`.`cat_id` = "faq"; +UPDATE `_sys_cat` SET `_sys_cat`.`parent_cat` = "--btns-" WHERE `_sys_cat`.`cat_id` = "license"; +UPDATE `_sys_cat` SET `_sys_cat`.`parent_cat` = "--btns-" WHERE `_sys_cat`.`cat_id` = "extened_docs"; +INSERT INTO `_sys_cat` (`cat_id`, `cat_name`, `module`, `parent_cat`) VALUES ( "main", "Ваш участок", "site_index.php", "--btns-"); diff --git a/app/engine/migrations/20251118-1950-user-cats.sql b/app/engine/migrations/20251118-1950-user-cats.sql new file mode 100644 index 0000000..bb99a45 --- /dev/null +++ b/app/engine/migrations/20251118-1950-user-cats.sql @@ -0,0 +1,2 @@ +UPDATE `_sys_cat` SET `_sys_cat`.`_sys_order` = "1" WHERE `_sys_cat`.`cat_id` = "main"; +UPDATE `_sys_cat` SET `_sys_cat`.`_sys_order` = "10" WHERE `_sys_cat`.`cat_id` = "docs"; diff --git a/app/engine/migrations/20251118-1951-user-cats.sql b/app/engine/migrations/20251118-1951-user-cats.sql new file mode 100644 index 0000000..13195eb --- /dev/null +++ b/app/engine/migrations/20251118-1951-user-cats.sql @@ -0,0 +1,3 @@ +UPDATE `_sys_cat` SET `_sys_cat`.`_sys_order` = "20" WHERE `_sys_cat`.`cat_id` = "faq"; +UPDATE `_sys_cat` SET `_sys_cat`.`_sys_order` = "30" WHERE `_sys_cat`.`cat_id` = "license"; +UPDATE `_sys_cat` SET `_sys_cat`.`_sys_order` = "40" WHERE `_sys_cat`.`cat_id` = "extened_docs"; diff --git a/app/engine/migrations/20251118-2006-user-cats.sql b/app/engine/migrations/20251118-2006-user-cats.sql new file mode 100644 index 0000000..b278c82 --- /dev/null +++ b/app/engine/migrations/20251118-2006-user-cats.sql @@ -0,0 +1 @@ +UPDATE `_sys_cat` SET `_sys_cat`.`module` = "core_redirect.php" , `_sys_cat`.`data` = "$url=?cat=main;" WHERE `_sys_cat`.`cat_id` = "index"; diff --git a/app/engine/migrations/20251118-2012-admin-cats.sql b/app/engine/migrations/20251118-2012-admin-cats.sql new file mode 100644 index 0000000..577275b --- /dev/null +++ b/app/engine/migrations/20251118-2012-admin-cats.sql @@ -0,0 +1 @@ +INSERT INTO `_sys_cat_admin` (`access_group`, `cat_id`, `cat_name`, `data`, `module`, `parent_cat`) VALUES ( "1,2", "core-admin-static", "Текстовые страницы", "$obj_name=_sys_static;\r\n$del=0;\r\n$add=0;\r\n$onPage=1000;", "object_admin.php", "index"); diff --git a/app/engine/migrations/20251118-2037-pnd_faq.sql b/app/engine/migrations/20251118-2037-pnd_faq.sql new file mode 100644 index 0000000..0568288 --- /dev/null +++ b/app/engine/migrations/20251118-2037-pnd_faq.sql @@ -0,0 +1,14 @@ +-- [2025-11-18 20:37:27] Создание атрибута; +CREATE TABLE IF NOT EXISTS `pnd_faq` ( `id` INT(12) NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `pnd_faq` ADD `question_text` varchar(255) NOT NULL; +REPLACE INTO `_sys_datatypes` (`obj_name`, `attr_name`,`attr_type`,`attr_desc`,`attr_templ`,`attr_order`) VALUES ("pnd_faq","question_text","input","","","100"); +-- [2025-11-18 20:37:41] Создание атрибута; +CREATE TABLE IF NOT EXISTS `pnd_faq` ( `id` INT(12) NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `pnd_faq` ADD `answer_text` text NOT NULL; +REPLACE INTO `_sys_datatypes` (`obj_name`, `attr_name`,`attr_type`,`attr_desc`,`attr_templ`,`attr_order`) VALUES ("pnd_faq","answer_text","textarea","","","100"); +-- [2025-11-18 20:37:44] Изменение атрибута question_text; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("input" , "" , "" , "0" , "0" , "90" , "0" , "pnd_faq" , "question_text"); +-- [2025-11-18 20:37:56] Изменение атрибута question_text; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("input" , "" , "Вопрос" , "0" , "0" , "90" , "0" , "pnd_faq" , "question_text"); +-- [2025-11-18 20:37:56] Изменение атрибута answer_text; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("textarea" , "" , "Ответ" , "0" , "0" , "100" , "0" , "pnd_faq" , "answer_text"); diff --git a/app/engine/migrations/20251118-2038-admin-cats.sql b/app/engine/migrations/20251118-2038-admin-cats.sql new file mode 100644 index 0000000..22fb718 --- /dev/null +++ b/app/engine/migrations/20251118-2038-admin-cats.sql @@ -0,0 +1 @@ +INSERT INTO `_sys_cat_admin` (`access_group`, `cat_id`, `cat_name`, `data`, `module`, `parent_cat`) VALUES ( "1,2", "core-admin-faq", "FAQ", "$obj_name=pnd_faq;", "object_admin.php", "index"); diff --git a/app/engine/migrations/20251118-2048-user-cats.sql b/app/engine/migrations/20251118-2048-user-cats.sql new file mode 100644 index 0000000..a8ea9e5 --- /dev/null +++ b/app/engine/migrations/20251118-2048-user-cats.sql @@ -0,0 +1 @@ +UPDATE `_sys_cat` SET `_sys_cat`.`module` = "object_view.php" , `_sys_cat`.`data` = "$obj_name=pnd_faq;\r\n$templ=site_faq.htm;\r\n$onPage=200;" WHERE `_sys_cat`.`cat_id` = "faq"; diff --git a/app/engine/migrations/20251118-2057-pnd_docs.sql b/app/engine/migrations/20251118-2057-pnd_docs.sql new file mode 100644 index 0000000..5c7e8dc --- /dev/null +++ b/app/engine/migrations/20251118-2057-pnd_docs.sql @@ -0,0 +1,20 @@ +-- [2025-11-18 20:57:08] Удаление атрибута btn_name; +DELETE FROM `_sys_datatypes` WHERE `obj_name` = 'pnd_docs' AND `attr_name` = 'btn_name'; +ALTER TABLE `pnd_docs` DROP `btn_name`; +-- [2025-11-18 20:57:11] Удаление атрибута html; +DELETE FROM `_sys_datatypes` WHERE `obj_name` = 'pnd_docs' AND `attr_name` = 'html'; +ALTER TABLE `pnd_docs` DROP `html`; +-- [2025-11-18 20:57:21] Создание атрибута; +CREATE TABLE IF NOT EXISTS `pnd_docs` ( `id` INT(12) NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `pnd_docs` ADD `title` varchar(255) NOT NULL; +REPLACE INTO `_sys_datatypes` (`obj_name`, `attr_name`,`attr_type`,`attr_desc`,`attr_templ`,`attr_order`) VALUES ("pnd_docs","title","input","","","100"); +-- [2025-11-18 20:57:32] Создание атрибута; +CREATE TABLE IF NOT EXISTS `pnd_docs` ( `id` INT(12) NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `pnd_docs` ADD `description` text NOT NULL; +REPLACE INTO `_sys_datatypes` (`obj_name`, `attr_name`,`attr_type`,`attr_desc`,`attr_templ`,`attr_order`) VALUES ("pnd_docs","description","redactor_html","","","100"); +-- [2025-11-18 20:57:34] Изменение атрибута title; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("input" , "" , "" , "0" , "0" , "50" , "0" , "pnd_docs" , "title"); +-- [2025-11-18 20:57:42] Изменение атрибута title; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("input" , "" , "Название" , "0" , "0" , "50" , "0" , "pnd_docs" , "title"); +-- [2025-11-18 20:57:42] Изменение атрибута description; +REPLACE INTO `_sys_datatypes` (`attr_type`, `attr_templ`, `attr_desc`, `attr_hide`, `attr_mand`, `attr_order`, `_sys_deleted`, `obj_name`, `attr_name`) VALUES ("redactor_html" , "" , "Текст" , "0" , "0" , "100" , "0" , "pnd_docs" , "description"); diff --git a/app/engine/migrations/20251118-2058-user-cats.sql b/app/engine/migrations/20251118-2058-user-cats.sql new file mode 100644 index 0000000..6a6f7e8 --- /dev/null +++ b/app/engine/migrations/20251118-2058-user-cats.sql @@ -0,0 +1 @@ +UPDATE `_sys_cat` SET `_sys_cat`.`module` = "object_view.php" , `_sys_cat`.`data` = "$templ=site_docs.htm;\r\n$obj_name=pnd_docs;\r\n" WHERE `_sys_cat`.`cat_id` = "docs"; diff --git a/app/engine/migrations/20251118-2106-admin-cats.sql b/app/engine/migrations/20251118-2106-admin-cats.sql new file mode 100644 index 0000000..94b11a5 --- /dev/null +++ b/app/engine/migrations/20251118-2106-admin-cats.sql @@ -0,0 +1 @@ +INSERT INTO `_sys_cat_admin` (`access_group`, `cat_id`, `cat_name`, `data`, `module`, `parent_cat`) VALUES ( "1,2", "core-admin-docs", "Нормативная документация", "$obj_name=pnd_docs;", "object_admin.php", "index"); diff --git a/app/engine/migrations/20251118-2108-user-cats.sql b/app/engine/migrations/20251118-2108-user-cats.sql new file mode 100644 index 0000000..1918398 --- /dev/null +++ b/app/engine/migrations/20251118-2108-user-cats.sql @@ -0,0 +1,3 @@ +UPDATE `_sys_cat` SET `_sys_cat`.`data` = "$templ=site_docs.htm;\r\n$obj_name=pnd_docs;\r\n$onPage=2;\r\n" WHERE `_sys_cat`.`cat_id` = "docs"; +UPDATE `_sys_cat` SET `_sys_cat`.`data` = "$templ=site_docs.htm;\r\n$obj_name=pnd_docs;\r\n$onPage=15;\r\n" WHERE `_sys_cat`.`cat_id` = "docs"; +UPDATE `_sys_cat` SET `_sys_cat`.`data` = "$templ=site_docs.htm;\r\n$obj_name=pnd_docs;\r\n$onPage=10;\r\n" WHERE `_sys_cat`.`cat_id` = "docs"; diff --git a/app/engine/www/bladetpl/cache/1d502d1deb6e56c2f6e52fd070ad87a5bd2bd5b5.bladec b/app/engine/www/bladetpl/cache/1d502d1deb6e56c2f6e52fd070ad87a5bd2bd5b5.bladec new file mode 100644 index 0000000..e69de29 diff --git a/app/engine/www/bladetpl/cache/50036abbb1938ff83691969b9fa9449dce53ca25.bladec b/app/engine/www/bladetpl/cache/50036abbb1938ff83691969b9fa9449dce53ca25.bladec new file mode 100644 index 0000000..71fd4ec --- /dev/null +++ b/app/engine/www/bladetpl/cache/50036abbb1938ff83691969b9fa9449dce53ca25.bladec @@ -0,0 +1,10 @@ +
+ Ошибка +
+
+

+ Не удалось определить участок.
+ Попробуйте ввести другой адрес. +

+ +
diff --git a/app/engine/www/bladetpl/cache/db96a3dc7e7cb5fa7e5c21f03ac1e1d5bc9cfdeb.bladec b/app/engine/www/bladetpl/cache/db96a3dc7e7cb5fa7e5c21f03ac1e1d5bc9cfdeb.bladec index 996542d..fcadda7 100644 --- a/app/engine/www/bladetpl/cache/db96a3dc7e7cb5fa7e5c21f03ac1e1d5bc9cfdeb.bladec +++ b/app/engine/www/bladetpl/cache/db96a3dc7e7cb5fa7e5c21f03ac1e1d5bc9cfdeb.bladec @@ -1,57 +1,39 @@
-

Ваш участок обслуживания

-
- Адрес: ул. Примерная, дом 12 -
+

Ваш участок обслуживания

+

-
-
+addLoop($__currentLoopData);$this->getFirstLoop(); + foreach($__currentLoopData as $doc): $loop = $this->incrementLoopIndices(); ?> +
+
+

- Терапевт участка + +

-
- 🩺 +
+
+
- Иванова Мария Сергеевна
- Врач-терапевт высшей категории
- Кабинет: 208
+
+ + +
+ + + + Кабинет:
+
Расписание приема
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Понедельник09:00 — 17:00
Вторник12:00 — 20:00
Среда09:00 — 17:00
Четверг12:00 — 20:00
Пятница09:00 — 15:00
СубботаВыходной
ВоскресеньеВыходной
+
Расписание не указано
+ +
-
+popLoop(); $loop = $this->getFirstLoop(); ?> diff --git a/app/engine/www/bladetpl/cache/decf3914d3856b1a7f37474c63abd946c9c06fb9.bladec b/app/engine/www/bladetpl/cache/decf3914d3856b1a7f37474c63abd946c9c06fb9.bladec index 1c5b064..9829f47 100644 --- a/app/engine/www/bladetpl/cache/decf3914d3856b1a7f37474c63abd946c9c06fb9.bladec +++ b/app/engine/www/bladetpl/cache/decf3914d3856b1a7f37474c63abd946c9c06fb9.bladec @@ -3,7 +3,7 @@