K

kosolapus

toppor.ru
+23
Репутация
0
Рейтинг
#1 Instant CMS 2 - проблемы 28 июля 2014 в 15:18


А как изменить дату в новостях или другом контенте?

ДЖЕЙК

Если просто, то в БД, если интересно — то удалить запись и создать снова)
#2 Instant CMS 2 - проблемы 22 июля 2014 в 16:06
У самого возникла проблема — не отрабатывает задание по крону. Это печальное известие оказалось (по нему вип-объявления должны были считаться).
Хостер сказал — все гуд, все работает. Поковырялся в файлике — подгружается bootstrap.php и все становится грустно. Никто не сталкивался с чем-то подобным? Хотя бы подскажите, в какую сторону копать, чтоб сам вопрос не выглядел таким поверхностным, что проверить?
З.Ы. Задания вручную отрабатывают
#3 Instant CMS 2 - проблемы 21 июля 2014 в 21:37


И ещё вопрос — в перечне городов заметил что город указан с ошибкой — как его можно исправить?

СергейП

В БД таблица cms_geo_cities
А что за город, если не секрет? У себя тоже поправлю
#4 Instant CMS 2 - проблемы 21 июля 2014 в 20:25


Замечен баг?! zstВерсия инстана — 201, контент — новости. Добавил в новости подрубрики и в них по несколько новостей. Потом решил что подрубрики не нужны. Перенёс новости в корень и удалил подрубрики. Всё было нормально — НО, захотел отредактировать новость (вставить ссылку) — при сохранении пишет ошибку — найдены ошибки в форме и не даёт сохранить изменения… Может я что то делаю не так? zst

PS Выбор редакторов на результат не влияет.

СергейП
Шаг номер раз: Админка->типы контента-> Новости. Выставляем галку "Разрешить размещение в корневой категории", если нет
Шаг 2: При редактировании выбираем "Корневая категория"
Шаг 3 — Profit!

Должно сработать. Но на всякий случай вопрос (если не сработало) — а как Вы новости переносили?
#5 Instant CMS 2 - проблемы 18 июля 2014 в 16:23


Привет всем. Решил первый раз поставить версию 2. Скачал с сайта, установил, правда не хватало одного модуля на сервере мемкеше называется, вроде всё отлично встало, перехожу на сайт а там ошибка с базой связана

  1. Warning: mysqli::mysqli() [mysqli.mysqli]: (28000/1045): Access denied for user 'p87876_koshkin2'@'91.218.228.14' (using password: YES) in /home/p87876/www/сайт.ру/system/core/database.php on line 31
  2. что произошло?
  3.  

Tisat

Перевожу. Доступ запрещен для пользователя p87876_koshkin2@91.218.228.14
Скорее всего, проблема в неправильном имени/неправильном названии БД/неправильном пароле для БД

Посмотрите, что лежит в файлике
/system/core/database.php
и сравните это с тем, что давал хостер. В идеале, должны быть расхождения (есть шанс, что в качестве сервера mysql стоило указать localhost, если это простой хостинг без лишних замудрений)
#6 Сайты на инстант 2.0 15 июля 2014 в 18:52


kosolapus, спасибо. Все получилось.
Теперь осталось в базу запросов насовать, чтобы заполнить созданное поле.

Adjuster

Можно пост- или гет- запросами играться — это работает)
#7 Сайты на инстант 2.0 9 июля 2014 в 19:10


Сделал изменения в файлах.
Где и как вывести кнопку в фильтр?
Можно измененные файлы архивчиком получить?

Adjuster
Да там, по сути, 2 файлика. Один я привел, второй пока не безопасен — уж извини, в открытый доступ не кину, пока не добью (для своих нужд видоизменял добавление объявления, там ща все плохо. Если скажешь, где можно почитать про оформление дополнений к инстанту — с уовольствием запакую).
Вывести в фильтр. Есть 3 способа. Простой (Читерский), умный и обычный. Обычный — добавить в БД запись о фильтре. Умный — найти типы полейй, разрешенных для фильтрации и добавить туда город. Читерский (как я делал).
1. Создаешь поле для фильтра. Любое
2. Открываешь исходный код страницы (в хроме, например, отладчик со скрина)
3. Меняешь у любого поля value на city
4. Сохраняем. Профит! Естественно, поле должно "отображать в фильтре". Однако, есть нюанс. Для отображения в списке надо брать значения из БД. Т.е., если хочешь, скажем, не только фильтровать контент по городу, но и выводить город для каждого элемента контента, то тебе потребуется что-то вроде
  1.  
  2. if($field['name']=='city'){
  3. echo cmsCore::getCity($item['city']);
  4. }
  5.  
где
  1.  
  2. public static function getCity($id){
  3. $sql="SELECT `name` FROM `cms_geo_cities` WHERE `id`='$id'";
  4. $inDB = cmsDatabase::getInstance();
  5. $sql=$inDB->query($sql);
  6. $sql=mysqli_fetch_array($sql);
  7. return $sql['name'];
  8. }
также лежит в core.php

Вообще, решение не самое красивое, но пока подробной документации нет, будем делать чтоб ходя бы работало

Вдруг понадобится. geo.widget.tpl (У меня всего одна страна, поэтому смысла ее выбирать не вижу — здесь, собственно, только выбор региона оставлен)
  1.  
  2. <div id="geo_window">
  3.  
  4. <div class="wrapper container" style="padding:10px 15px">
  5. <div id="sizecity" style="width:200px;height: 100px"></div>
  6. <form data-items-url="<?php echo $this->href_to('get_items'); ?>">
  7. <div class="list" style="display:none" >
  8. <?php echo html_select('countries', $countries, 3159, array('onchange'=>"icms.geo.changeParent(this, 'regions')", 'rel'=>'regions','id'=>'country_main')); ?>
  9. </div>
  10. <script type="text/javascript">
  11. $(document).ready(function (){
  12. var obj=$('#country_main');
  13. icms.geo.changeParent(obj, 'regions');
  14. $("#sizecity").css({"display":"none"});//после отключения отрисованного окна со страной стал грустить размер окошка - не пересчитывается и все тут. как всегда, решение топорное, зато рабочее
  15.  
  16. });
  17. </script>
  18.  
  19. <div class="list">
  20. <?php echo html_select('regions', $regions, $region_id, array('onchange'=>"icms.geo.changeParent(this, 'cities')", 'rel'=>'cities')); ?>
  21. </div>
  22.  
  23. <div class="list" <?php if (!$city_id){?>style="display:none"<?php } ?>>
  24. <?php echo html_select('cities', $cities, $city_id, array('onchange'=>"icms.geo.changeCity(this)")); ?>
  25. </div>
  26.  
  27. </form>
  28.  
  29. <div class="buttons" <?php if (!$city_id){?>style="display:none"<?php } ?>>
  30. <?php echo html_button(LANG_SELECT, 'select', "icms.geo.selectCity('{$field_id}')"); ?>
  31. </div>
  32.  
  33. </div>
  34.  
  35. </div>
  36.  
Прикрепленный файл
Untitled1_pvkmp.png 93 Кб
#8 Сайты на инстант 2.0 8 июля 2014 в 15:09
смотри, я его поправлял по ночам — исходники могут быть ужасными, тк с инстантом возиться начал месяца 2 назад.

1. Стандартный фильтр по городам (ну который из коробки). В нем произошли некоторые изменения:
-Кнопк "Выбрать" больше не прячется, если выбран хотя бы регион
-Если выбран регион, но не выбран город, то возвращать id не города, но региона (соответственно, в поле фильтра меняем id поля с citiy на region)


Изменения здесь:
  1.  
  2. if (id != 0 && child_list_id=='cities') {
  3. $('.buttons', geo_window).show();
  4. }
  5.  
и здесь соответственно:
  1.  
  2. if(id==0){
  3. var list = $('#geo_window form select[name=regions]');
  4. var id = list.val();
  5. $('.city-id', widget).attr('name','region');
  6. }
  7.  
Весь файлик:
  1.  
  2. var icms = icms || {};
  3.  
  4. icms.geo = (function ($) {
  5.  
  6. //====================================================================//
  7.  
  8. this.changeParent = function(list, child_list_id) {
  9.  
  10. var geo_window = $('#geo_window');
  11. var geo_form = $('form', geo_window);
  12.  
  13. var id = $(list).val();
  14. console.log(id);
  15. var child_list = $('select[name='+child_list_id+']', geo_form);
  16.  
  17. if (id == 0 && child_list_id=='regions') {
  18. child_list.parent('.list').hide();
  19. if (child_list_id=='regions'){
  20. $('select[name=cities]', geo_form).parent('.list').hide();
  21. }
  22.  
  23. $('.buttons', geo_window).hide();
  24. return false;
  25. }
  26. if (id != 0 && child_list_id=='cities') {
  27. $('.buttons', geo_window).show();
  28. }
  29.  
  30.  
  31. var url = geo_form.data( 'items-url' );
  32.  
  33. $.post(url, {type: child_list_id, parent_id: id}, function(result){
  34.  
  35. if (result.error) { return false; }
  36.  
  37. child_list.html('');
  38.  
  39. for(var item_id in result.items){
  40.  
  41. var item_name = result.items[item_id];
  42.  
  43. child_list.append( '<option value="'+ item_id +'">' + item_name +'</option>' );
  44.  
  45. }
  46.  
  47. child_list.parent('.list').show();
  48.  
  49. if (child_list_id != 'cities'){
  50. icms.geo.changeParent(child_list, 'cities');
  51. }
  52.  
  53. }, 'json');
  54.  
  55. }
  56.  
  57. //====================================================================//
  58.  
  59. this.changeCity = function(list){
  60.  
  61. var geo_window = $('#geo_window');
  62. var geo_form = $('form', geo_window);
  63.  
  64. var id = $(list).val();
  65.  
  66. }
  67.  
  68. //====================================================================//
  69.  
  70. this.selectCity = function(target_id){
  71.  
  72. var list = $('#geo_window form select[name=cities]');
  73.  
  74. var id = list.val();
  75.  
  76. if(id==0){
  77. var list = $('#geo_window form select[name=regions]');
  78. var id = list.val();
  79. $('.city-id', widget).attr('name','region');
  80. }
  81. var name = $('option:selected', list).html();
  82.  
  83. if (!id){ return false; }
  84.  
  85. var widget = $('#geo-widget-'+target_id);
  86. console.log(id);
  87. $('.city-id', widget).val(id);
  88.  
  89. $('.city-name', widget).html(name).show();
  90.  
  91. icms.modal.close();
  92.  
  93. }
  94.  
  95. //====================================================================//
  96.  
  97. return this;
  98.  
  99. }).call(icms.geo || {},jQuery);
  100.  
2. В БД добавил поле к объявлениям, назвал, как ни странно, region (Пробовал прикол с расчетом всех городов в процессе фильтрации с плясками от id региона, но забил — нуу оочень много расчетов, мне не нравится, хотя можно было при фильтрации устроить что-то вроде "foreach($cities as $city){$items_all[]=$items->filter($city);}" — точный синтаксис не приведу, не делал, но смысл, думаю, понятен)

3. Для того, чтоб поле региона заполнялось, написал простенькую функцию вычисления региона по городу. Возможно, зря, но закинул ее в core.php.


После строки
  1.  
  2. $item = $this->model->addContentItem($ctype, $item, $fields);
  3.  
в создании добавил такую конструкцию:
  1.  
  2. //Регион для объявлений
  3. if($item['city']){
  4. $region=cmsCore::getRegion($item['city']);
  5. $this->model->update('con_board', $item['id'], array(
  6. 'region' => $region
  7. ));
  8. }
  9.  
Сама функция (положил в кору, скорее всего можно как-то упростить, но сейчас вопрос не в красоте кода, к сожалению — со временем доработаю)
  1.  
  2. public static function getRegion($id){
  3. $sql="SELECT `region_id` FROM `cms_geo_cities` WHERE `id`='$id'";
  4. $inDB = cmsDatabase::getInstance();
  5. $sql=$inDB->query($sql);
  6. $sql=mysqli_fetch_array($sql);
  7.  
  8. return $sql['region_id'];
  9. }
  10.  
Если интересно, могу намутить то же самое, но без доп.полей — чисто на переборе в процессе фильтрации. Будет нагрузка больше значительно, но зато -1 поле в бд.
#9 Сайты на инстант 2.0 8 июля 2014 в 05:04


Как зачинишь фильтр по городу — пиши! Как раз над этим работаю.

Adjuster

Немного поправил доску — теперь работает фильтр по городам и регионам. С поисковиком немного хуже — по сути, в бд хранятся только индексы городов, так что найти их ооочень непросто таким образом. Другой вопрос, что можно засовывать название города, скажем, в облако тегов — это решит сразу несколько вопросов. Но мне как-то без необходимости пока)
#10 Сайты на инстант 2.0 25 июня 2014 в 11:05


Как зачинишь фильтр по городу — пиши! Как раз над этим работаю.

Adjuster

В принципе, оно даже работает. Иногда. Ща есть фильтрация по городам/регионам, но стандартный виджет не радует ни разу — конечно, удобный, но страшненький какой-то… да и поломал я его чутка…
#11 Сайты на инстант 2.0 25 июня 2014 в 11:03


Топпорняк, с айфона вид гаувно.

SpaceSel

Спс, дизайн пока не трогал, мобильную версию буду чуть позже пилить. Не дезигнер я… а вот кодить любо — после opencart'a такая красота с MVC smile
#12 Пересчет тегов по крону в двойке 24 июня 2014 в 19:52
По идее, все просто
компонент — tags
хук — recount

Задачу отрабатывает, но насколько верно — не могу проверить, маловато тегов пока что.
К слову, у Вас нормально крон пашет?
#13 Сайты на инстант 2.0 24 июня 2014 в 19:20
toppor.ru/
Пока что на дефолтном шаблоне, играюсь с функционалом, в основном работа идет над доской объявлений
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.