Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Помогите со скриптом обновления дат в базе, Помогите со скриптом обновления дат в базе
denmasterweb  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 10
Пользователь №: 42799
На форуме: 8 месяцев, 4 дня
Карма:




У меня сайт на джумла, есть база данных с таблицей #__content, где прописаны новости и дата их выхода. Всего есть 30 новостей. Так вот, я создал функцию, которая при наступлении какого-то числа (к примеру 1 июня) загружает новость, где столбик publish_date=1, если дата меняется, наступает 2 число, то в цикле подгружается новость, где publish_date=2, и так до 30 числа, анонсы новостей выводятся по порядку "новые сверху" вместе с датой их выхода (сегодняшнее число). Также создал функцию, которая обновляет дату сегодняшней новости до актуальной (получается, новости из месяца в месяц крутятся по кругу, и только у действующей новости сегодня сменяется дата на актуальную, ведь если ее не сменять, то выведется дата месячной давности - 1.04.2016). День вывода и дату публикации можно вывставлять в админпанели. В идеале хотел для всех новостей выставить день выхода и дату, которая соответсвует дню (к примеру новость, где день выхода выставляю 2 число, дата должна быть 02.ХХ.ХХХХ, то есть должны сменяться только месяца и года. Но появилась проблема, если на сайт заходит хотя бы один посетитель, то все работает правильно, скрипт обновляет дату у текущей новости, но если в течении суток на сайт никто не зайдет, то дата у новости останется старой, и она не обновится. Подскажите, можно ли как-то обновлять дату в БД для текущей новости, если на сайт никто не зайдет и страница не обновляется к примеру дня три?

Слышал, что в Яваскрипте есть setInterval и Ajax, но как их применить мне в моем случае? Предоставляю код функций:


public static function updateDates() {
$date = JFactory::getDate();
$day = date('d');

jimport('joomla.utilities.date');
$tz = new DateTimeZone(JFactory::getApplication()->getCfg('offset'));
$jdate = $date->setTimezone($tz);
$f = $jdate->toSql();
$e = explode("-",$f);
$current_date = $e[0]."-".$e[1]."-".$day." "."00:00:00";
$j = explode("-",$jdate);
$db =& JFactory::getDBO();
$query = $db->getQuery(true);
$q="UPDATE `#__content` SET `date_month_year` = '".$f."' WHERE `publish_date` = ".$day." ";

$db->setQuery($q);
$db->query();

}




А здесь код контроллера:



<?php
/**
*
@package Joomla.Site
*
@subpackage mod_articles_category
*
@copyright Copyright © 2005 - 2013 Open Source Matters, Inc. All rights reserved.
*
@license GNU General Public License version 2 or later; see LICENSE.txt
*/


// no direct access
defined('_JEXEC') or die;

// Include the helper functions only once
require_once dirname(__FILE__).'/helper.php';

// Prep for Normal or Dynamic Modes
$mode = $params->get('mode', 'normal');
$idbase = null;
switch($mode)
{
case 'dynamic':
$option = JRequest::getCmd('option');
$view = JRequest::getCmd('view');
if ($option === 'com_content') {
switch($view)
{
case 'category':
$idbase = JRequest::getInt('id');
break;
case 'categories':
$idbase = JRequest::getInt('id');
break;
case 'article':
if ($params->get('show_on_article_page', 1)) {
$idbase = JRequest::getInt('catid');
}
break;
}
}

break;
case 'normal':
default:
$idbase = $params->get('catid');
break;
}



$cacheid = md5(serialize(array ($idbase, $module->module)));

$cacheparams = new stdClass;
$cacheparams->cachemode = 'id';
$cacheparams->class = 'modArticlesCategoryHelper';
$cacheparams->method = 'getList';
$cacheparams->methodparams = $params;
$cacheparams->modeparams = $cacheid;

$list = JModuleHelper::moduleCache ($module, $params, $cacheparams);


if (!empty($list)) {
$grouped = false;
$article_grouping = $params->get('article_grouping', 'none');
$article_grouping_direction = $params->get('article_grouping_direction', 'ksort');
$moduleclass_sfx = htmlspecialchars($params->get('moduleclass_sfx'));
$item_heading = $params->get('item_heading');
$count = $params->get('count', 5);

if ($article_grouping !== 'none') {
$grouped = true;
switch($article_grouping)
{
case 'day':
$updateData = modArticlesCategoryHelper::updateDates();
$list = modArticlesCategoryHelper::groupByDate($list, $article_grouping, $article_grouping_direction, $params->get('month_year_format', 'F Y'), $count);
break;
case 'year':
$list = modArticlesCategoryHelper::groupByDate($list, $article_grouping, $article_grouping_direction, $params->get('month_year_format', 'F Y'));
case 'month_year':
$list = modArticlesCategoryHelper::groupByDate($list, $article_grouping, $article_grouping_direction, $params->get('month_year_format', 'F Y'));
break;
case 'author':
case 'category_title':
$list = modArticlesCategoryHelper::groupBy($list, $article_grouping, $article_grouping_direction);
break;
default:
break;
}
}

require JModuleHelper::getLayoutPath('mod_articles_category', $params->get('layout', 'default'));
}




Это сообщение отредактировал denmasterweb - 15.05.2016 - 12:35
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
redreem  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 4258
Пользователь №: 29002
На форуме: 5 лет, 4 месяца, 8 дней
Карма: 147




cron
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Если ж на сайт никто не зашел – то и новости никто не увидел. Следовательно и дату менять незачем.

user posted image
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
denmasterweb  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 10
Пользователь №: 42799
На форуме: 8 месяцев, 4 дня
Карма:




Дату менять нужно для поисковых роботов и для того, чтобы не было путаницы при выводе новости со старой датой
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3376
Пользователь №: 38635
На форуме: 2 года, 11 месяцев, 12 дней
Карма: 170




Цитата (denmasterweb @ 15.05.2016 - 13:05)
Дату менять нужно для поисковых роботов

поисковый робот в данном случае ничем не отличается от обычного посетителя, поэтому
Цитата (Guest @ 15.05.2016 - 11:04)
Если ж на сайт никто не зашел – то и новости никто не увидел. Следовательно и дату менять незачем.



--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5497
Пользователь №: 35718
На форуме: 4 года, 19 дней
Карма: 167




не надо нихрена там обновлять
можно новостям присваивать не дату, а тупо число, и проблем вообще никаких и голову ломать не надо
можно оставить и дату (вариант для "продвинутых"), но выборку делать по DAY()
WHERE DAY(NOW()) = DAY(`field_datetime`)
текущую дату нет смысла тащить из БД, хотя и такой финт можно провернуть


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса