Ошибка при редактировании материала

InstantCMS 2.X
#1 17 марта 2018 в 16:50
Обновился до 2.9.0
Приредактировании одного из типов материалов в режиме отладки появляется:
  1.  
  2. Неизвестный столбец 'i.name' в 'where clause'
  3.  
  4. SELECT i.*, u.nickname as user_nickname, f.title as folder_title
  5. FROM cms_con_pages i
  6. FORCE INDEX (date_pub)
  7. INNER JOIN cms_users as u FORCE INDEX (PRIMARY) ON u.id = i.user_id
  8. LEFT JOIN cms_content_folders as f ON f.id = i.folder_id
  9. WHERE (i.name IN ('reference')) AND (i.is_private = '0') AND (i.is_approved = '1') AND (i.is_deleted IS NULL) AND (i.is_pub = '1')
  10. ORDER BY i.date_pub desc
  11. LIMIT 1000
  12.  
А страница вся перекошена:
#2 18 марта 2018 в 15:44
Ау! Гуры Мускула, где вы?!
#3 23 марта 2018 в 10:00
Ошибка возникает при редактировании или добавлении любого материала, где есть поле "связаный контент". Жду помощи!
  1.  
  2. Ошибка в запросе БД:
  3. Неизвестный столбец 'i.name' в 'where clause'
  4.  
  5. SELECT i.*, u.nickname as user_nickname, f.title as folder_title
  6. FROM cms_con_pages i
  7. FORCE INDEX (date_pub)
  8. INNER JOIN cms_users as u FORCE INDEX (PRIMARY) ON u.id = i.user_id
  9. LEFT JOIN cms_content_folders as f ON f.id = i.folder_id
  10. WHERE (i.name IN ('reference')) AND (i.is_private = '0') AND (i.is_approved = '1') AND (i.is_deleted IS NULL) AND (i.is_pub = '1')
  11. ORDER BY i.date_pub desc
  12. LIMIT 1000
  13. Последние вызовы:
  14.  
  15. cmsModel->get() @ /system\controllers\content\model.php : 2312
  16. modelContent->getContentItems() @ /templates\default\assets\fields\related.tpl.php : 30
  17. include() @ /system\core\template.php : 1698
  18. cmsTemplate->renderFormField() @ /system\core\formfield.php : 358
  19. cmsFormField->getInput() @ /templates\bariped\assets\ui\form.tpl.php : 137
  20. include() @ /system\core\template.php : 1422
  21. cmsTemplate->renderForm() @ /templates\bariped\controllers\content\item_form.tpl.php : 75
  22. include() @ /system\core\template.php : 1348
  23. cmsTemplate->processRender() @ /system\core\template.php : 1324
  24. cmsTemplate->render() @ /system\controllers\content\actions\item_edit.php : 316
  25. actionContentItemEdit->run()
  26.  
#4 23 марта 2018 в 10:18
Интересное решение — из файла шаблона /templates\default\assets\fields\related.tpl.php идёт обращение к БД.
Тут надо смотреть код этого файла.
#5 23 марта 2018 в 10:41
Не помню откуда этот файл, но когда его не было отладка ругалась на его отсутствие.
  1.  
  2. <?php if ($field->title) { ?><label for="<?php echo $field->id; ?>"><?php echo $field->title; ?></label><?php } ?>
  3.  
  4. <?php
  5.  
  6. $content_model = cmsCore::getModel('content');
  7.  
  8. $content_model->setTablePrefix('');
  9.  
  10. $ctypes = $field->options['ctypes'];
  11.  
  12. $ctypes = $content_model->filterIn('name', $ctypes)->getContentTypes();
  13.  
  14. if($value) { $value = cmsModel::yamlToArray($value); } else { $value = array(); }
  15.  
  16. if(isset($value['main'])) {
  17.  
  18. $main = $value['main'];
  19.  
  20. unset($value['main']);
  21.  
  22. }
  23.  
  24. ?>
  25.  
  26. <div id="related_content_<?php echo $field->id; ?>">
  27. <?php echo html_radio("{$field->name}[main]", (!isset($main)) ? true : false, 0, array('title'=>'Без главного материала')); ?> - без главного материала
  28. <ul>
  29. <?php $i = 1; foreach($ctypes as $ctype) { ?>
  30. <?php $content_model->setTablePrefix('con_'); ?>
  31. <?php $items = $content_model->getContentItems($ctype['name']); ?>
  32. <?php if($items) { ?>
  33. <li<?php if($i == 1) { ?> class="active"<?php } ?>>
  34. <?php echo $ctype['title']; ?>
  35. <ul>
  36. <?php $ii = 1; foreach($items as $item) { ?>
  37. <li>
  38. <?php echo html_checkbox("{$field->name}['".$ctype['name']."'][]", isset($value[$ctype['name']]) ? in_array($item['id'], $value[$ctype['name']]) : false, $item['id'], array('id'=>$ctype['name'].$item['id'])); ?>
  39. <label for="<?php echo $ctype['name'].$item['id']; ?>"><?php echo $item['title']; ?></label>
  40. <?php echo html_radio("{$field->name}[main]", (isset($main) && $main == $ctype['name'].'-'.$item['id']) ? true : false, $ctype['name'].'-'.$item['id'], array('title'=>'Главный материал')); ?>
  41. </li>
  42. <?php $ii++; } ?>
  43. </ul>
  44. </li>
  45. <?php } ?>
  46. <?php } ?>
  47. </ul>
  48. </div>
  49.  
  50. <script>
  51. $('#related_content_<?php echo $field->id; ?> > ul > li > ul').click(function(event){
  52. event.stopPropagation();
  53. }).filter(':not(:first)').hide();
  54.  
  55. $('#related_content_<?php echo $field->id; ?> > ul > li').click(function(){
  56. var selfClick = $(this).find('ul:first').is(':visible');
  57. if(!selfClick) {
  58. $(this).parent().find('> li ul:visible').slideToggle();
  59. }
  60. $(this).find('ul:first').stop(true, true).slideToggle();
  61. });
  62. </script>
  63.  
  64. <style>
  65. #related_content_<?php echo $field->id; ?> {
  66. }
  67. #related_content_<?php echo $field->id; ?> li{
  68. cursor: pointer;
  69. background:url(accordion_bg.png) repeat-x;
  70. font-weight:bold;
  71. color:#015287;
  72. border:1px solid #b2b2b2;
  73. margin-bottom:2px;
  74. list-style-image:none;
  75. list-style-position:outside;
  76. list-style-type:none;
  77. -moz-border-radius: 4px;
  78. -webkit-border-radius: 4px;
  79. padding: 4px 8px;
  80. }
  81. #related_content_<?php echo $field->id; ?> ul{
  82. padding:0;
  83. margin:0;
  84. }
  85. #related_content_<?php echo $field->id; ?> li.active{
  86. color:#D15600
  87. }
  88. #related_content_<?php echo $field->id; ?> li ul{
  89. padding:0;
  90. margin:10px 0 0 0;
  91. }
  92.  
  93. #related_content_<?php echo $field->id; ?> li.active li{
  94. text-indent:0;
  95. }
  96. #related_content_<?php echo $field->id; ?> li li{
  97. font-weight: normal;
  98. background:none;
  99. border:0;
  100. }
  101. #related_content_<?php echo $field->id; ?> label{
  102. display:inline;
  103. }
  104. </style>
  105.  
  106.  
#6 23 марта 2018 в 10:52
В этом листинге в 23 строке добавьте
  1. $content_model->resetFilters();
Про оптимизацию автор наверное "не, не слышал"
#7 23 марта 2018 в 14:14


В этом листинге в 23 строке добавьте

  1. $content_model->resetFilters();
Про оптимизацию автор наверное "не, не слышал"

Loadырь

Не помогло cry
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.