Замена числовой составляющей даты словом — различия между версиями
Материал из Umicms
Mad grant (обсуждение | вклад) |
Sdarks (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | '''Актуально для версии | + | '''Актуально для версии 18 ревизия 85081''' |
Задание: нам требуется чтобы дата публикации новости отражалась не в формате 21.12.2012, а, например, в формате | Задание: нам требуется чтобы дата публикации новости отражалась не в формате 21.12.2012, а, например, в формате | ||
"21 декабря". | "21 декабря". | ||
− | Решение рассматривается для шаблона современный интернет магазин (demodizzy) | + | Решение рассматривается для шаблона современный интернет магазин (demodizzy). |
− | Для начала, поместим следующий код в файл classes/modules/custom.php | + | Для начала, поместим следующий код в файл classes/modules/custom.php или classes/components/custom.php, в зависимости от используемой реализации модулей. |
<source lang="php"> | <source lang="php"> | ||
public function getDay($timestamp) { | public function getDay($timestamp) { | ||
Строка 42: | Строка 42: | ||
} | } | ||
</source> | </source> | ||
− | Теперь отредактируем шаблон / | + | Теперь отредактируем шаблон /xslt/modules/news/news-list.xsl |
Содержимое | Содержимое |
Версия 09:24, 29 мая 2018
Актуально для версии 18 ревизия 85081
Задание: нам требуется чтобы дата публикации новости отражалась не в формате 21.12.2012, а, например, в формате "21 декабря".
Решение рассматривается для шаблона современный интернет магазин (demodizzy).
Для начала, поместим следующий код в файл classes/modules/custom.php или classes/components/custom.php, в зависимости от используемой реализации модулей.
public function getDay($timestamp) {
$pre_lang = cmsController::getInstance()->getModule("content")->pre_lang;
if ($pre_lang != "" && $pre_lang != "/ru") {
return date("F", $timestamp);
}
$d = date("d", $timestamp);
return "$d ";
}
public function getMonth($timestamp) {
$pre_lang = cmsController::getInstance()->getModule("content")->pre_lang;
if ($pre_lang != "" && $pre_lang != "/ru") {
return date("F", $timestamp);
}
$m = date("m", $timestamp);
switch ($m) {
case "01": return "января";
case "02": return "февраля";
case "03": return "марта";
case "04": return "апреля";
case "05": return "мая";
case "06": return "июня";
case "07": return "июля";
case "08": return "августа";
case "09": return "сентября";
case "10": return "октября";
case "11": return "ноября";
case "12": return "декабря";
}
return "";
}
Теперь отредактируем шаблон /xslt/modules/news/news-list.xsl
Содержимое
<div class="date" umi:field-name="publish_time" umi:empty="&empty-page-date;"></div>
нужно будет заменить на
<xsl:value-of select="document(concat('udata://custom/getDay/', @publish_time, '/'))" />
<xsl:value-of select="document(concat('udata://custom/getMonth/', @publish_time, '/'))" />