M

mymiit

+11
Репутация
0
Рейтинг
#1 Редизайн вашего проекта бесплатно. 7 апреля 2017 в 17:29
Претендент на редизайн http://mymiit.ru — заказывали у вас летом 2014-го...
Адаптивность бы. Это первая ветка v1.10.4
#2 [ЕСТЬ РЕШЕНИЕ] Как добавить условие выборки sql в module.php? 17 февраля 2017 в 12:49


mymiit, на 19-й строчке:

  1. $inDB->where("con.showlatest = 1 AND canrate = 1");

Странник

Спасибо!
#1 [ЕСТЬ РЕШЕНИЕ] Как добавить условие выборки sql в module.php? 16 февраля 2017 в 17:26
Приветствую! InstantCMS v1.10.4

Есть модуль (слайдер выводящий последние новости — они же статьи).
В параметрах публикации есть опция Разрешить рейтинг — в таблице БД она записана как canrate.
Слайдер сейчас выводит все последние 7 новостей из рубрики, включая подрубрики.
Мне нужно добавить фильтр — условие if canrate==1 (если рейтинг разрешен — выводи в слайдер).

Подскажите правильный код синтаксиса и куда его вставить? cry

  1. $model = new cms_model_content();
  2.  
  3. if (!isset($cfg['subs'])) { $cfg['subs'] = 1; }
  4. if (!isset($cfg['cat_id'])) { $cfg['cat_id'] = 1; }
  5. if (!isset($cfg['newscount'])) { $cfg['newscount'] = 6; }
  6. if($cfg['cat_id']){
  7. if (!$cfg['subs']){
  8. //выбираем из категории
  9. $model->whereCatIs($cfg['cat_id']);
  10. } else {
  11.  
  12. //выбираем из категории и подкатегорий
  13. $rootcat = $inDB->getNsCategory('cms_category', $cfg['cat_id']);
  14. if(!$rootcat) { return false; }
  15. $model->whereThisAndNestedCats($rootcat['NSLeft'], $rootcat['NSRight']);
  16. }
  17. }
  18.  
  19. $inDB->where("con.showlatest = 1");
  20. $inDB->orderBy('con.pubdate', 'DESC');
  21. $inDB->limit($cfg['newscount']);
  22. $content_list = $model->getArticlesList();
#4 [ЕСТЬ РЕШЕНИЕ] Сравнить дату сознания поста в блоге с текущей 21 октября 2016 в 11:17
Всем спасибо! v
#5 [ЕСТЬ РЕШЕНИЕ] Сравнить дату сознания поста в блоге с текущей 21 октября 2016 в 11:16


mymiit,
Какого пыхапэ?
Это смарти. Шаблонизатор.
Я проверил то, что написал. Это работает.
Приведите код, который Вы написали. Только под спойлер длинные простыни убирайте, пожалуйста.

Ris

  1. {if {$post.pubdate}>{($smarty.now-345600)|date_format:"%Y-%m-%d %H:%M:%S"}}
Вот прям это и вставил в шаблон. Очистил КЭШ в админке и открыл главную — не открылась. Ошибка...
#6 [ЕСТЬ РЕШЕНИЕ] Сравнить дату сознания поста в блоге с текущей 21 октября 2016 в 11:13


Ну тогда как то так.
module.php

  1. foreach($posts as $key=> $val){$data = $val['pubdate'];
  2. $a[$key]=floor((time() - strtotime($data))/60/60/24);
  3. }
В шаблоне
  1. {$a[$tid]}

Lora

Спасибо, Lora!
#7 [ЕСТЬ РЕШЕНИЕ] Сравнить дату сознания поста в блоге с текущей 20 октября 2016 в 17:48


Файл module.php

  1. foreach($posts as $val){$data = $val['pubdate'];
  2. $a=floor((time() - strtotime($data))/60/60/24);
  3. echo $a; //Здесь ваша разница в днях. Дальше делайте с ней, что хотите.
  4. }

Lora

Даты вычитает верно, но в TPL передаётся только последнее значение...
Иллюстрация
Ris, месяца на русском важны.

А можно ли вместо foreach проверить только первое (самую свежую дату)?

#8 [ЕСТЬ РЕШЕНИЕ] Сравнить дату сознания поста в блоге с текущей 20 октября 2016 в 16:00
  1. $posts = $inBlog->getPosts(false, $model);
  2. if(!$posts){ return false; }
  3.  
  4. foreach ($posts as $val){
  5. $three_day_later = date("Y-m-d ",mktime(0, 0, 0, date("m") , date("d")-3, date("Y")));
  6. $d = cmsCore::dateFormat($three_day_later);
  7. $dif = $d-$val['fpubdate'];
  8.  
  9. echo $three_day_later.'<br>';
  10. echo $d.'<br>';
  11. echo $val['fpubdate'].'<br>';
  12. echo ($d-$val['fpubdate']).'<br>';
  13. }
  14. cmsPage::initTemplate('modules', 'mod_blogs')->
  15. assign('posts', $posts)->
  16. assign('cfg', $cfg)->
  17. assign('dif', $dif)->

2016-10-17
17 октября 2016
сегодня в 15:40
17
2016-10-17
17 октября 2016
14 октября 2016
3
2016-10-17
17 октября 2016
11 октября 2016
6
2016-10-17
17 октября 2016
7 октября 2016
10
2016-10-17
17 октября 2016
1 сентября 2016
16
2016-10-17
17 октября 2016
10 июня 2016
7


  1. {foreach key=tid item=post from=$posts}
  2. {if $dif < 4}
Разницу в днях считает неверно, если пост от текущего дня или в прошлом месяце — тоже.
Но пост от 14 октября 2016 возвращает разницу 3, что соответствует условию, но выводит всё равно с CSS-оформлением от else
#9 [ЕСТЬ РЕШЕНИЕ] Сравнить дату сознания поста в блоге с текущей 20 октября 2016 в 14:42
  1. {foreach key=tid item=post from=$posts}
  2. {php}print_r($post['fpubdate']);{/php} //тут ничего не выводит
  3. {$dif} //тут ВСЕГДА 8
  4.  
  5. {if $dif < 3}
  6. <div class="mod_latest_entry ramaf">
  7. <div class="mod_latest_image">
  8. <a href="{profile_url login=$post.login}" title="{$post.author|escape:'html'}"><img border="0" class="usr_img_small" src="{$post.author_avatar}" /></a>
  9. </div>
  10.  
  11. <a class="mod_latest_blog_title" href="{$post.url}" title="{$post.title|escape:'html'}">{$post.title|truncate:70}</a>
  12.  
  13. <div class="mod_latest_date">
  14. {$post.fpubdate} - <a href="{$post.blog_url}">{$post.blog_title}</a> - <a href="{$post.url}#c" title="{$post.comments_count|spellcount:$LANG.COMMENT1:$LANG.COMMENT2:$LANG.COMMENT10}" class="mod_latest_comments">{$post.comments_count}</a> - <span class="mod_latest_rating">{$post.rating|rating}</span>
  15. </div>
  16.  
  17. </div>
  18. {else}
  19. <div class="mod_latest_entry rama">
  20.  
  21. <div class="mod_latest_image">
  22. <a href="{profile_url login=$post.login}" title="{$post.author|escape:'html'}"><img border="0" class="usr_img_small" src="{$post.author_avatar}" /></a>
  23. </div>
  24.  
  25. <a class="mod_latest_blog_title" href="{$post.url}" title="{$post.title|escape:'html'}">{$post.title|truncate:70}</a>
  26.  
  27. <div class="mod_latest_date">
  28. {$post.fpubdate} - <a href="{$post.blog_url}">{$post.blog_title}</a> - <a href="{$post.url}#c" title="{$post.comments_count|spellcount:$LANG.COMMENT1:$LANG.COMMENT2:$LANG.COMMENT10}" class="mod_latest_comments">{$post.comments_count}</a> - <span class="mod_latest_rating">{$post.rating|rating}</span>
  29. </div>
  30.  
  31. </div>
  32. {/if}
  33. {/foreach}
Иллюстрация
#10 [ЕСТЬ РЕШЕНИЕ] Сравнить дату сознания поста в блоге с текущей 20 октября 2016 в 13:13
/modules/mod_blogs/module.php
  1. $posts = $inBlog->getPosts(false, $model);
  2. if(!$posts){ return false; }
  3.  
  4. foreach ($posts as $val){
  5. $data = $val['fpubdate'];
  6. $three_day_later = date("Y-m-d ",mktime(0, 0, 0, date("m") , date("d")-3, date("Y")));
  7. $d = cmsCore::dateFormat($three_day_later);
  8. $dif = $d-$data;
  9. }
  10. cmsPage::initTemplate('modules', 'mod_blogs')->
  11. assign('posts', $posts)->
  12. assign('cfg', $cfg)->
  13. assign('dif', $dif)->
  14. display('mod_blogs.tpl');
mod_blogs.tpl
  1. {foreach key=tid item=post from=$posts}
  2. {php}echo $dif;{/php} //ничего не выводит
  3.  
  4. {if $dif < 3}
Цель: выделить "свежую" запись в Блогах mymiit.ru

$dif не правильно высчитывается или не передается вообще.
#11 [ЕСТЬ РЕШЕНИЕ] Сравнить дату сознания поста в блоге с текущей 19 октября 2016 в 17:49
Попробовал strtotime, но не помогло.
  1. {php}
  2. $tdd2 = date("d:m:Y", strtotime($post.fpubdate));
  3. echo $tdd2; // выводит 01:01:1970
  4. {/php}
  1. {php}
  2. $tdd2 = date("d:m:Y", strtotime($post.pubdate));
  3. echo $tdd2; // тоже выводит 01:01:1970
  4. {/php}
#12 [ЕСТЬ РЕШЕНИЕ] Сравнить дату сознания поста в блоге с текущей 19 октября 2016 в 17:35


date("Y:m:d", strtotime("now +3 days"))

Ris

  1. {php}
  2. $tdd = date("d:m:Y", strtotime("now -3 days"));
  3. echo $tdd; // 16:10:2016
  4. {/php}
  5.  
  6. {foreach key=tid item=post from=$posts}
  7. {if $post.fpubdate > $tdd} // а $post.fpubdate выводится как 14 октября 2016
  8. <div class="mod_latest_entry ramaf">
  9. ...
  10. {$post.fpubdate} - <a href="{$post.blog_url}">{$post.blog_title}</a>
  11. ...
  12. </div>
  13. {else}
Как я понимаю тут {if $post.fpubdate > $tdd} разные типы/форматы дат. И сравниваются они некорректно.Сейчас всегда срабатывается первое условие. Хотя должно только {else}.

*В БД pubdate имеет тип datetime с примеру: 2014-08-07 13:30:17
#1 [ЕСТЬ РЕШЕНИЕ] Сравнить дату сознания поста в блоге с текущей 18 октября 2016 в 17:32
InstantCMS v1.10.4

mod_blogs.tpl
  1. {foreach key=tid item=post from=$posts}
  2. {if $post.fpubdate > ВОТ_ТУТ_ЧТО_НАПИСАТЬ} // если дата публикации БОЛЬШЕ (сегодняшняя дата МИНУС 3 дня)
  3. <div class="mod_latest_entry new">
  4. ...
  5. {else}
  6. <div class="mod_latest_entry old">
  7. ...
  8.  
  9. {/if}
ВОТ_ТУТ_ЧТО_НАПИСАТЬ — условие: если запись опубликована не более 3 дней назад
#1 Вывод "поиска по тегам" 12 сентября 2014 в 18:13
Привет!
В УК автоматом выводится ссылка на поиск по тегам вида
  1. /catalog/1002/tag/БЛА-БЛА-БЛА
А как вывести сразу содержимое/результат этого поиска на станицы. Типо "похожие записи" для карточек УК?
Кто-нибудь делал подобное? У меня дальше просмотра файлов frontend.php и com_catalog_search.tpl дело не пошло))
#1 Перелистывание страниц в ленте новостей 24 апреля 2014 в 11:59
Здравствуйте, помогите сделать ленту новостей mymiit.ru/news.html удобнее.
Дело в том, что когда листаешь станицы, фокус остается внизу (на последних новостях), а нужно сделать автоскроллинг вверх к следующим по дате новостям.


InstantCMS v1.9
Illusion free (3)
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.