Еще одна проблема с доской объявлений версия 1.9

#16 7 июня 2012 в 23:47
В общем, вот так вот получилось. Помучался с мистикой немного ) Устанавливаю в БД is_vip=1, обновляю страницу, в БД устанавливается на ноль. Оказывается есть проверка по дате. Не важно, в общем. На локалхосте работает.
В файле /components/board/frontend.php после строки примерно 116
  1. $items = $model->getAdverts($is_moder, true);
Вставляем следующий код
  1.  
  2. function getSubCatsItems($cat_id, $items){
  3. $inCore = cmsCore::getInstance();
  4. $inCore->loadModel('board');
  5. $model = new cms_model_board();
  6.  
  7. $sub_cats =array();
  8. $sub_cats = $model->getSubCats($cat_id);
  9. if($sub_cats){
  10. foreach($sub_cats as $value){
  11. $model->whereCatIs($value['id']);
  12. $sub_items = $model->getAdverts($is_moder, true);
  13. if($sub_items){
  14. $items = array_merge($items, $sub_items);
  15. }
  16.  
  17.  
  18.  
  19. $items = getSubCatsItems($value['id'], $items);
  20.  
  21.  
  22. }
  23. }
  24. return $items;
  25. }
  26. if ($category['id'] != $model->root_cat['id']){
  27. $items = getSubCatsItems($category['id'], $items);
  28. }
  29. //поднимаем vip объявления
  30. function cmp($a, $b) {
  31. if ($a['is_vip'] == $b['is_vip']) {
  32. return 0;
  33. }
  34. return ($a['is_vip'] < $b['is_vip']) ? 1 : -1;
  35. }
  36. uasort( $items, cmp);
  37.  
Делалось по принципу удобности внесения изменений. Только в одном файле и только в одном месте. Поэтому при больших количествах категорий возможна большая нагрузка на БД. Не оптимизировано.
#17 8 июня 2012 в 16:47


В общем, вот так вот получилось. Помучался с мистикой немного ) Устанавливаю в БД is_vip=1, обновляю страницу, в БД устанавливается на ноль. Оказывается есть проверка по дате. Не важно, в общем. На локалхосте работает.
В файле /components/board/frontend.php после строки примерно 116

  1. $items = $model->getAdverts($is_moder, true);
Вставляем следующий код
  1.  
  2. function getSubCatsItems($cat_id, $items){
  3. $inCore = cmsCore::getInstance();
  4. $inCore->loadModel('board');
  5. $model = new cms_model_board();
  6.  
  7. $sub_cats =array();
  8. $sub_cats = $model->getSubCats($cat_id);
  9. if($sub_cats){
  10. foreach($sub_cats as $value){
  11. $model->whereCatIs($value['id']);
  12. $sub_items = $model->getAdverts($is_moder, true);
  13. if($sub_items){
  14. $items = array_merge($items, $sub_items);
  15. }
  16.  
  17.  
  18.  
  19. $items = getSubCatsItems($value['id'], $items);
  20.  
  21.  
  22. }
  23. }
  24. return $items;
  25. }
  26. if ($category['id'] != $model->root_cat['id']){
  27. $items = getSubCatsItems($category['id'], $items);
  28. }
  29. //поднимаем vip объявления
  30. function cmp($a, $b) {
  31. if ($a['is_vip'] == $b['is_vip']) {
  32. return 0;
  33. }
  34. return ($a['is_vip'] < $b['is_vip']) ? 1 : -1;
  35. }
  36. uasort( $items, cmp);
  37.  
Делалось по принципу удобности внесения изменений. Только в одном файле и только в одном месте. Поэтому при больших количествах категорий возможна большая нагрузка на БД. Не оптимизировано.

Марат

к сожалению не помогло? 😥
#18 8 июня 2012 в 17:21

к сожалению не помогло? sad

d68915002
что именно не так? подробнее пожалуйста. Может не так вставили? Вроде бы всё должно работать как нужно. Или я неправильно понял задачу?
#19 10 июня 2012 в 09:58


к сожалению не помогло? sad

d68915002
что именно не так? подробнее пожалуйста. Может не так вставили? Вроде бы всё должно работать как нужно. Или я неправильно понял задачу?

Марат

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