tim21701

Показываем ВРЕМЯ создания заказа, и регистрацию клиентов.

Рекомендуемые сообщения

tim21701    497

Подумал, что, было бы не плохо, показывать кроме даты - ещё и время; во сколько был сделан тот или иной заказ. (а так же, время регистрации пользователей) Всё оказалось на много прощё...

Открываем admin/languages/russian/russian.php и в строке

 

$_['date_format_short'] = 'd.m.Y';

Пишем свой формат вывода времени: (соглавно правилам)
 

$_['date_format_short'] = 'j F (l) Y - G:i:s';

Пример:
Изображение

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
19th    210

$_['date_format_short']       = 'j F (l) Y - G:i:s';

j.m.Y (H:i)

превращается в

16.03.2011 (07:06)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
tim21701    497

16.03.2011 (07:06)

Дня недели не хватает... ИМХО восприятие лучше становится.

Вот только, бьюсь с выводом русской даты...

:( пока никак

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Acden    6

Дня недели не хватает... ИМХО восприятие лучше становится.

Вот только, бьюсь с выводом русской даты... :( пока никак

Что подразумеваете под русской датой?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
tim21701    497

Что подразумеваете под русской датой?

Название "Месяц" и "Дни недели" в PHP 5.3.6, 5.2.17 (да как и во всех остальных) выводятся на английском языке.

Изображение

Но в php есть возможность вывода даты на русском языке, вот, к примеру таким способом:

// название месяца на русском
function getRusMonth($month){
  if($month > 12 || $month < 1) return FALSE;
  $aMonth = array('января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря');
  return $aMonth[$month - 1];
}
Или таким:

function rudate($format, $timestamp = 0, $nominative_month = false)
{
if(!$timestamp) $timestamp = time();
elseif(!preg_match("/^[0-9]+$/", $timestamp)) $timestamp = strtotime($timestamp);

$F = $nominative_month ? array(1=>"Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь") : array(1=>"Января", "Февраля", "Марта", "Апреля", "Мая", "Июня", "Июля", "Августа", "Сентября", "Октября", "Ноября", "Декабря");
$M = array(1=>"Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек");
$l = array("Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота");
$D = array("Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб");

$format = str_replace("F", $F[date("n", $timestamp)], $format);
$format = str_replace("M", $M[date("n", $timestamp)], $format);
$format = str_replace("l", $l[date("w", $timestamp)], $format);
$format = str_replace("D", $D[date("w", $timestamp)], $format);

return date($format, $timestamp);
}

Осталось только "прикрутить" это в скрипты OpenCart...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
No48    1

Понимаю, тема старая и возможно вопрос уже не актуален, но решения готового не нашел и пришлось его искать самому.
 
Возможно кому-то и пригодится.
 
Принцип на примере форматирования даты в отзывах к товарам (русская локализация). 
 
Итак, в файле: catalog\language\russian\russian.php.
 
Вставить в конце перед закрывающим ?>:
 

// Month
$_['month-01'] 	= ' января ';
$_['month-02'] 	= ' февраля ';
$_['month-03'] 	= ' марта ';
$_['month-04'] 	= ' апреля ';
$_['month-05'] 	= ' мая ';
$_['month-06'] 	= ' июня ';
$_['month-07'] 	= ' июля ';
$_['month-08'] 	= ' августа ';
$_['month-09'] 	= ' сентября ';
$_['month-10'] 	= ' октября ';
$_['month-11'] 	= ' ноября ';
$_['month-12'] 	= ' декабря ';

В файле: catalog\controller\product\product.php
 
В нашем случае ищем функцию формирующую значения 'date_added' (перменная $review['date_added'] отвечает за вывод даты написания отзыва). 
Вот нужный нам кусок кода:

foreach ($results as $result) {
	$this->data['reviews'][] = array(
		'author'     => $result['author'],
		'text'       => $result['text'],
		'rating'     => (int)$result['rating'],
		'reviews'    => sprintf($this->language->get('text_reviews'), (int)$review_total),
		'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added']))
	);
}

 
Меняем его на: 
 

foreach ($results as $result) {
        $int = date('m', strtotime($result['date_added'])); /* Получаем порядковый номер месяца */
	$this->data['reviews'][] = array(
		'author'     => $result['author'],
		'text'       => $result['text'],
		'rating'     => (int)$result['rating'],
		'reviews'    => sprintf($this->language->get('text_reviews'), (int)$review_total),
                'date_added' => date('d', strtotime($result['date_added'])).$this->language->get("month-$int").date('Y', strtotime($result['date_added'])).' г.' /* Формируем дату в требуемом формате */
	);
}	

 
Вуаля! На выводе получаем дату в формате:
 
31 декабря 2014 г.
 
P.S. При копировании не забываем удалять номера строк из кода.
 
P.P.S. Есно в языковом файле можно названия месяцев хоть на суахили написать.
 
~ Реализовано на ocStore 1.5.5.1.2 ~

Изменено пользователем No48

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
afwollis    1 097

No48, один нюанс - названия месяцев и все подобные данные могут понадобиться и в других местах.

поэтому добавлять их надо в главный языковой файл.

в вашем случае - catalog/language/russian/russian.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
No48    1

To afwollis.
С замечанием согласен - исправил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Похожий контент

    • От tim21701
      Часто задают этот вопрос, что бы не скидывать всем ссылки - вывожу её в отдельную тему.

      =========================================================================
      -----------------НЕ ЗАБЫВАЕМ ПРО РЕЗЕРВНОЕ КОПИРОВАНИЕ ФАЙЛОВ!-----------------
      =========================================================================

      Итак, открываем файл: catalog/view/theme/ВАША_ТЕМА/stylesheet/stylesheet.css и находим строки:
      #menu { background: #585858; border-bottom: 1px solid #000000; height: 37px; margin-bottom: 15px; -webkit-border-radius: 5px 5px 5px 5px; -moz-border-radius: 5px 5px 5px 5px; -khtml-border-radius: 5px 5px 5px 5px; border-radius: 5px 5px 5px 5px; -webkit-box-shadow: 0px 2px 2px #DDDDDD; -moz-box-shadow: 0px 2px 2px #DDDDDD; box-shadow: 0px 2px 2px #DDDDDD; padding: 0px 5px; } Добавляем туда строку (в любое место):
      text-align:center; Чуть ниже, (в этом же файле) находим:
      #menu ul { list-style: none; margin: 0; padding: 0; } Меняем на эти строки:
      #menu ul { list-style: none; margin:auto; padding: 0; display:inline-block; margin-bottom:-4px; text-align:left; } До:

      После:

      Расширяем возможности горизонтального меню...
       
    • От tim21701
      Если кому пригодится, то вот способ - как разместить на главной странице любой модуль.
      (для примера я взял три модуля; "Рекомендуем", "Хиты продаж" и "Слайд-шоу".)

      Вот результат:




      Итак, открываем файл catalog/controller/common/home.php и находим строку:
       
      $this->children[] = 'common/header'; Добаваляем после неё то - что хотим видеть на главной:
       
      $this->children[] = 'module/featured';$this->children[] = 'module/bestseller';$this->children[] = 'module/sidebarslideshow'; Далее, открываем catalog/view/theme/default/template/common/home.tpl и находим:
       
      <?php foreach ($modules as $module) { ?><?php echo ${$module['code']}; ?><?php } ?> И ниже добавляем своё:
       
      <?php echo $featured; ?><?php echo $bestseller'; ?><?php echo $sidebarslideshow'; ?> Затем, открываем catalog/view/theme/default/stylesheet/stylesheet.css и вместо блока (он в самом низу):
       
      #content .middle .box {float: left;margin: 0 6px 10px 6px;min-height: 0px;}#content .middle .box .middle {width: 158px;min-height: 0px;} Ставим свой:
       
      #content .box {float: left;margin: 0 6px 10px 6px;min-height: 0px;}#content .box .middle {width: 158px;min-height: 0px;} Таким способом, можно продублировать любой модуль на главной странице.
       
    • От tim21701
      Итак, если Вы не установили изображение для Категории товаров, берём случайное (из товара) и выводим его...

      Пример:



      Для этого, открываем /catalog/controller/product/category.php и находим строки:
       
      if ($category_info['image']) {$image = $category_info['image'];} else {$image = '';} После них, вставляем:

      if ($category_info['image']) {$image = $category_info['image'];} else {$image = '';// Use random image from products in the category$rndImgQry = "SELECT p.image AS image FROM product AS p JOIN product_to_category AS c ON p.product_id = c.product_id ". "WHERE c.category_id = " . $category_info['category_id'] . " AND p.image NOT LIKE 'no_image.jpg'";$rndImgRslt = mysql_query($rndImgQry) or die (mysql_error());if (mysql_num_rows($rndImgRslt) > 0){$imgRows = array();while($imgRow = mysql_fetch_array($rndImgRslt)){$imgRows[] = $imgRow['image'];}$image = $imgRows[array_rand($imgRows)];}} Ниже, находим блок:

      if ($result['image']) {$image = $result['image'];} else {$image = 'no_image.jpg';} После него вставляем:

      if ($result['image']) {$image = $result['image'];} else {$image = 'no_image.jpg';// Use random image from products in the category$rndImgQry = "SELECT p.image AS image FROM product AS p JOIN product_to_category AS c ON p.product_id = c.product_id ". "WHERE c.category_id = " . $result['category_id'] . " AND p.image NOT LIKE 'no_image.jpg'";$rndImgRslt = mysql_query($rndImgQry) or die (mysql_error());if (mysql_num_rows($rndImgRslt) > 0){$imgRows = array();while($imgRow = mysql_fetch_array($rndImgRslt)){$imgRows[] = $imgRow['image'];}$image = $imgRows[array_rand($imgRows)];}} Всё.
       
    • От tim21701
      Если Вы хотите, что бы на странице товара, при нажатии на вкладки "Описание", "Фото", "Отзывы", "Рекомендуем" они открывались "плавно" (эффект fade),
      откройте файл catalog/view/javascript/jquery/tab.js и найдите строку:
       
      $($(this).attr('tab')).css('display', 'block'); Добавьте ПЕРЕД ней эту:
       
      $($(this).attr('tab')).fadeIn(); Сохраните и посмотрите что получилось.
       
    • От tim21701
      Для любителей отображения меню списком "дерево" в стиле Windows XP, предлагаю такой вариант:



      Используемые значки:

      В модуле нет заменяемых файлов, только новые.
      Установка: Копируем папки из архива и включаем меню в админке.

      Внимание.
      Данный мод не заменяет основное меню Категорий, у Вас появится ещё одно меню с Категориями!
      (Которое можно использовать как дополнительное... Если захотите отставить только его - отключите "Основное").

      Tree Category.zip
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу