No Name

No Name

+86
Репутация
-98
Рейтинг
#1 Запрос смена группы пользователя 30 ноября 2023 в 07:54

 Fuze, большое спасибо, прочитав ваши рекомендации получи вот такой код, думаю теперь все норм ?

  1. <?php
  2. if ($_SERVER["REQUEST_METHOD"] == "POST") {
  3.  
  4. $model_users = cmsCore::getModel('users');
  5.  
  6. $sql_data_podderski = $_POST["data_podderski"];
  7. $sql_id_user = $_POST["id_user"];
  8. $sql_id_user_gruup = $_POST["user_gruup"];
  9.  
  10. $model_users->updateUser($sql_id_user, [
  11. 'data_podderska' => $sql_data_podderski,
  12. 'lock_until' => null
  13. ]);
  14. $model_users->updateUser($sql_id_user, [
  15. 'groups' => [$sql_id_user_gruup],
  16. 'lock_until' => null
  17. ]);
  18. header("Location: ".$_SERVER["HTTP_REFERER"]);
  19. }
  20. ?>
#2 Запрос смена группы пользователя 29 ноября 2023 в 12:49

Спасибо

А вот из $_POST сразу в базу я бы не рекомендовал писать. Надо хоть как-то проверять полученные данные.

Loadырь

ну там 2 поля всего, одно по маске проверяется, там только цифры, второе чек бокс на выбор группы, так что думаю это не должно повлиять на безопасность, как думаете вы ?

#3 Запрос смена группы пользователя 29 ноября 2023 в 11:41

щас тестирую пишет вот такую ошибку 

Error updating record: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'groups='--- — 7 ' WHERE id=4' at line 1

Добавлено спустя 18 минут

прописал так — $sql =    «UPDATE `cms_users` SET `groups` = '$str', `lock_until` = NULL 
WHERE `cms_users`.`id` = $sql_id_user;»;  

всё заработало! спасибо

Добавлено спустя 45 минут

так же такой вопрос

делаю запрос так

$model_users = cmsCore::getModel('users');
 
 $sql_data_podderski = $_POST[«data_podderski»];
 $sql_id_user = $_POST[«id_user»]; 
 $str = cmsModel::arrayToYaml([$_POST[«user_gruup»]]);
 
 $sql3 = «UPDATE `cms_users` SET `lock_until` = NULL, `data_podderska` = '$sql_data_podderski' 
 WHERE `cms_users`.`id` = $sql_id_user;»;
 $sql4 = «UPDATE `cms_users` SET `groups` = '$str', `lock_until` = NULL 
 WHERE `cms_users`.`id` = $sql_id_user;»;
 $result = $model_users->db->query($sql3);
 $result2 = $model_users->db->query($sql4);

тоесть по сути 2 запроса, можно ли как то объединить в один ?

и нужно ли закрывать в конце (отключатся от базы данных ) типа так — $mysqli->close();    -  или уже сам метод Model это делает за нас ?

#1 Запрос смена группы пользователя 29 ноября 2023 в 10:05

В списке пользователей, делаю кнопку, по нажатию выскакивает модалка и там редактирование данного пользователя, все поля работают для редактирования, а вот группу пользователя не могу сменить, видимо из за того что базе лежит массив, как правильно прописать запрос на обновление группы пользователя ?

щас пишу так - 
$sql .=    «UPDATE cms_users SET groups='$str' WHERE id=$sql_id_user»;

вот что именно мне нужно написать в $str'? что бы например поменять группу на группу с id 7? как то нужно использовать — cmsCore::arrayToYaml  ?

#4 [ЕСТЬ РЕШЕНИЕ] Form input как добавить системную маску ввода 29 ноября 2023 в 09:33

 Loadырь, спасибо, получилось

#1 [ЕСТЬ РЕШЕНИЕ] Form input как добавить системную маску ввода 29 ноября 2023 в 05:53

Всем мира, добавил в своем файле в тег form и там  input, подскажите какой скрип туда добавить что бы было как в системе в полях маска для ввода, пока просто для этого поля прописал скрипт —
<script>
            $('.mask-date').mask('99.99.9999');
            </script> 

но видимо нужно какие-то еще системные скрипты подключить? и какие? и так же чтобы при тыканьи в это поле курсор как в системе ставился в начало поля?

#1 получение данных через поле список Таблица базы данных (без префикса) 22 октября 2023 в 12:39

последняя версия движка

создал поле список и там Таблица базы данных (без префикса)
в базе сделал таблицу фото прилагаю
получаю всё нормально поле name_dolshost и вывожу в шаблоне, но как вывести второе значение (china_dolsnost) из этой таблицы :?(отдельный запрос делать? )? первое значение я без запроса получаю (просто вывод поля), так же хочется получить второе значение,? в поле есть настройка — Условия выборки  может как то через неё ?, можно как то по id ?
Изображение

#5 [ЕСТЬ РЕШЕНИЕ] ошибка при добавления поля в типе контента 9 октября 2023 в 09:45

 Fuze, большое спасибо, помогли

#1 [ЕСТЬ РЕШЕНИЕ] ошибка при добавления поля в типе контента 9 октября 2023 в 09:20

вот такая ошибка при добавлении нового поля в типе контента, как можно её победить ?
Ошибка в запросе БД: Слишком большой размер записи. Максимальный размер строки, исключая поля BLOB, — 65535. Возможно, вам следует изменить тип некоторых полей на BLOB
ALTER TABLE cms_con_person ADD `testtest1` varchar(255) NULL DEFAULT NULL

#1 Подскажите как можно реализовать логику скрипта 22 сентября 2023 в 15:16

есть поле строковое, туда добавляется строка из нескольких слов в форме добавления новости, затем строку я забираю и отправляю метом post на нужную мне страницу, на этой странице есть документ куда я вставляю эту строку, всё работает хорошо!
но в новом документе эту сроку нужно вставить распределив по квадратикам (есть такие документы), эти квадратики сделаны td -ками
1. строку я циклом разделаю по символам

  1. $mesto_vidashi_pasport_mass_po_simvolam = preg_split('//u',$mesto_vidashi_pasport_sotrudnik_ver_regist,-1,PREG_SPLIT_NO_EMPTY);


2. так же циклом в каждый td я вставляю каждый символ

  1. <?php
  2. for ($i = 0; $i <= 27; $i++) {
  3. echo '<td colspan=2 class=xl10424767 align=center>
  4. <font class="font524767" face="Times New Roman" size="3">'
  5. . $mesto_vidashi_pasport_mass_po_simvolam[$i] .
  6. '</font></td>';
  7. }
  8. ?>


всё работает как нужно !
но как мне отследить что это целое слово? (для того что бы как то делать что бы одна буква от слова не оставалась на первой строке, а нужно её уже на новую, что бы целостность слова не терялась), теперь то ведь по символам ))
надеюсь объяснил понятливо ))

#6 AJAX фильтр без перезагрузки страницы 21 сентября 2023 в 15:32

код один и тот же )) понять не могу но на локалке всё работает а на хостинге ошибки — Uncaught SyntaxError: Unexpected token 'var'

Добавлено спустя 54 минуты

вроде разобрался, но просто интересно почему на локалке работало )))

#7 AJAX фильтр без перезагрузки страницы 21 сентября 2023 в 14:10

 Loadырь, рано радовался, на локалке на компе всё работает, а как перенёс на хостинг перестало работать ошибки посыпались, думаю проблема в том что мой сайт на поддомене, можно как то работать с localStorage на поддомене ?

#8 AJAX фильтр без перезагрузки страницы 18 сентября 2023 в 13:25

 Loadырь, большое спасибо, внедряю в код, пока что всё получается ))

#9 AJAX фильтр без перезагрузки страницы 17 сентября 2023 в 11:45

вот суть проблемы
есть файл шаблона, \templates\modern\content\default_list_person_in_perens.tpl.php
там выводится список работников  из типа контента работники, в этом файле при нажатии на кнопку «добавить в список» напротив каждого работника — id этого работника заносится в массив и кнопка возле работника меняется на галочку (типа добавлен — при нажатии на галочку вновь появляется надпись добавить и из массива работник удаляется), так же появляется кнопка сбоку сформировать список и при нажатии на эту кнопку method=«post» через скрипт массив с id улетает на страницу list_person.tpl.php (это шаблон виджета и этот виджет выведен на определенной странице сайта и там выводится список именно выделенных работников)
всё работает хорошо, но есть проблемы которые не могу решить:
1. так как работников много то используется стандартный фильтр и конечно при фильтрации массив обнуляется (видимо нужно как то через сессии сохранять этот массив)
2. хотелось бы вывести выделенных уже работников на самой странице где выделяем, что бы визуально было видно кто уже выделен

хотел код вставить в кнопку кода тут но что то вереска форума поехала и написало мне Слишком длинное значение (макс. длина: 65535) ошибка ))))


вот ФАЙЛ default_list_person_in_perens.tpl.php

<script>
 var arr = [];
 var butt_form = document.getElementsByClassName('my_no_botoon');
</script>


<?php
  
if( $ctype['options']['list_show_filter'] ) {
    $this->renderAsset('ui/filter-panel', [
        'css_prefix'   => $ctype['name'],
        'page_url'     => $page_url,
        'fields'       => $fields,
        'props_fields' => $props_fields,
        'props'        => $props,
        'filters'      => $filters,
        'ext_hidden_params' => $ext_hidden_params,
        'is_expanded'  => $ctype['options']['list_expand_filter']
    ]);
}
?>
<?php if (!$items){ ?>
 
    <p class=«alert alert-info mt-4 alert-list-empty»>
        <?php if(!empty($ctype['labels']['many'])){ ?>
            <?php echo sprintf(LANG_TARGET_LIST_EMPTY, $ctype['labels']['many']); ?>
        <?php } else { ?>
            <?php echo LANG_LIST_EMPTY; ?>
        <?php } ?>
    </p>
<?php return; } ?>


<?php $first_item = reset($items); ?>
<div class=«container»>
 <div class=«row»>
   <div class=«col-sm h-100 sticky-top order-2 order-sm-2 order-lg-2»>
 <!--  кнопка сформировать список  start --> 
<div style=«text-align:right;display:none;» class=«my_no_botoon»> 
 <form name=«send_mass_sotrud» method=«post» target="_blank" action="/list-person.html"> 
      <input type=hidden name='mass_list_sutrudnik' id=«id_input_form» value="">   
      <input type=«submit» value=«Сформировать документы» class=«btn btn-secondary»>
 </form> 
</div>
<?php 
var_dump(); 
?>
</div>
<!--  кнопка сформировать список end  -->


<div class=«col-sm-12 col-md-9 order-2 order-sm-2 order-lg-1»>
 
<div class=«content_list table <?php echo $ctype['name']; ?>_list table-responsive-md»>
    <table class=«table table-hover»>        
        <tbody>
        <?php foreach($items as $item){ ?> 
            <tr>
            <?php foreach($item['fields_names'] as $_field){ ?>
            <?php if ($_field['name'] != 'parent_company_id'){ ?>
                <td class=«align-middle field ft_<?php echo $_field['type']; ?> f_<?php echo $_field['name']; ?><?php if ($_field['label_pos'] === 'none') { ?> d-none d-lg-table-cell<?php } ?>»>
                    <?php if (!isset($item['fields'][$_field['name']])) { continue; } ?>
                    <?php $field = $item['fields'][$_field['name']]; ?>
                    <?php if ($field['name'] === 'title' && $ctype['options']['item_on']){ ?>
                        <h3 class=«h5 m-0»>                  
 <span class=«d-none d-md-inline-block»><?php html_svg_icon('solid', 'user'); ?></span>  
                        <a href="<?php echo href_to($ctype['name'], $item['slug'].'.html'); ?>">
                            <?php echo $item['lastname'] ;?>
 <?php html($item[$field['name']]); ?>
 <?php echo $item['surname'] ;?>
                        </a>
                        </h3>
                    <?php } else { ?>
 
                    <?php } ?>
                </td><?php } ?>
            <?php } ?>
            <?php if (!empty($item['info_bar'])){ ?>
                <td class=«align-middle d-none d-lg-table-cell»>
                    <div class=«info_bar»>
                        <?php foreach($item['info_bar'] as $bar){ ?>
                            <div class=«bar_item <?php echo !empty($bar['css'])? $bar['css']: ''; ?>» title="<?php html(!empty($bar['title'])? $bar['title']: ''); ?>">
                                <?php if (!empty($bar['icon'])){ ?>
                                    <?php html_svg_icon('solid', $bar['icon']); ?>
                                <?php } ?>
                                <?php if (!empty($bar['href'])){ ?>
                                    <a class=«stretched-link» href="<?php echo $bar['href']; ?>">
                                        <?php echo $bar['html']; ?>
                                    </a>
                                <?php } else { ?>
                                    <?php echo $bar['html']; ?>
                                <?php } ?>
                            </div>
                        <?php } ?>
                    </div>
                </td>
<!--    показываем кнопку добавить в список если есть сотрудники --> 
 <?php if (count($items) > 0) { ?>
 <td style=«width: 200px;text-align: center;»>
 <a href="#" id=«person_add<?php html($item['id']); ?>»>
 Добавить в список
 </a>
 </td>
 <?php } ?>
<!--    показываем кнопку добавить в список если есть сотрудники --> 
 
<script> 
 document.getElementById('person_add<?php html($item['id']); ?>').addEventListener('click', function (event) {
    event.preventDefault(); //отключает переход по ссылке
 
 if(this.innerHTML == '<?php html_svg_icon('solid', 'check'); ?>'){
 
 arr.forEach((item, index, array) => { 
  
 if (item == <?php html($item['id']); ?>) {arr.splice(index, 1);} // удаляем текущий id из массива
 if(arr.length == 0){butt_form[0].classList.remove(«d-block»);} //скрываем кнопку если массив пустой
 });


 console.log(arr); 
 this.innerHTML = 'Добавить в список';
 } else { 
 
 butt_form[0].classList.add(«d-block»); // показываем кнопку формирования документа
 arr.splice(0, 0, <?php html($item['id']); ?>); // добавляем текущий id в массив
 console.log(arr);
 //<?php $_SESSION['my_arr_new'] = html($item['id']); ?>
 //var sess = <?php echo $_SESSION['my_arr_new']; ?>;
 //console.log(sess);
 
    this.innerHTML = '<?php html_svg_icon('solid', 'check'); ?>';
 console.log(arr);
 var json_upload = JSON.stringify({arr});
 console.log(json_upload); 
 }
 
   // Получаем элемент input
      const myVarInput = document.getElementById('id_input_form');


      // Устанавливаем значение
   var json_upload2 = JSON.stringify({arr});
      myVarInput.value = json_upload2;


      // Отправляем форму на сервер
     // document.querySelector('form').submit;   
 
})


</script> 
            <?php } ?>
            </tr> 
        <?php } ?>
        </tbody>
    </table> 


<script>
   
</script>


</div>


</div>
<?php echo html_pagebar($page, $perpage, $total, $page_url, $filter_query); ?>

вот файл list_person.tpl.php

<?php
 //echo $_SESSION['my_arr_new'];
 echo '------------<br>';
 $list_sotrudnik = cmsCore::getModel('content')->getContentItems('person');
 $mass_list_sutrudnik = $_POST['mass_list_sutrudnik'];
 $decoded_json = json_decode($mass_list_sutrudnik, true); 
 //var_dump($decoded_json); 
 foreach ($decoded_json['arr'] as $value) {      
  echo $list_sotrudnik[$value]['title'];
  echo ' ';
  echo $list_sotrudnik[$value]['lastname'];
  echo '<br>';
 }
?> 
#10 AJAX фильтр без перезагрузки страницы 16 сентября 2023 в 16:39

Мой массив обнуляется когда фильтрую данные по кнопке фильтра, а не когда отправляю запрос, в самом начале об этом писал

Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.