Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Как вывести itemprop="position" content="" в XSLT?

Автор makarov2979Раздел Шаблоны XSLT

Ответов: 0
Просмотров: 1554
Последний ответ 15 Ноября 2018, 09:30:06
от makarov2979
Как вывести для разных доменов разных адресатов

Автор SumrakrndРаздел Шаблоны XSLT

Ответов: 14
Просмотров: 3945
Последний ответ 17 Февраля 2017, 20:20:12
от Sumrakrnd
Вывести цену для группы "элитных" пользователей

Автор SeweryssРаздел Настройка системы и модулей

Ответов: 3
Просмотров: 3119
Последний ответ 12 Ноября 2013, 23:27:00
от Seweryss
Вывести сумму заказа на странице "Заказ поступил в обработку"

Автор AxiomateriaРаздел Шаблоны XSLT

Ответов: 2
Просмотров: 3779
Последний ответ 07 Ноября 2014, 23:46:49
от Axiomateria
Как вывести название групп характеристики объекта каталога на разных языках

Автор tkalyuginaРаздел XSLT сайт в 20 шагов на основе demodizzy

Ответов: 0
Просмотров: 2950
Последний ответ 16 Марта 2018, 09:52:24
от tkalyugina

0 Пользователей и 2 Гостей просматривают эту тему.

*

serhio

  • *
  • 7
  • +0/-0
    • Просмотр профиля
Добрый день, нашел вот такой скрипт
		  public function getyear($id)
{
$select_year=getRequest('year');
$hierarchy=umiHierarchy::getInstance();
$childs=$hierarchy->getChilds($id);//получаем все новости ленты
$parent=$hierarchy->getElement($id);
$path=$parent->getAltName();//получаем путь к ленте новостей
$flag=true;
$result = '';
$year_array = array();
foreach ($childs as $key1 => $value1) //формируем массив всех годов, в которых есть новости
{
$element=$hierarchy->getElement($key1);
$date_news=$element->getValue('publish_time');
$temp=$date_news->getFormattedDate('Y');
$year_array[$temp]=1;
if ($flag)
{
$first=$temp;
$last=$temp;
$flag=false;
}
if ($first>$temp) $first=$temp;
if ($last<$temp) $last=$temp;
}
for($i = $last; $i >= $first; $i--) //формируем ссылки архива
{
if ($i==$select_year) $result.= "<span>$i</span>";
else if (!empty($year_array[$i])) $result.="<a href=\"/$path/?year=$i\">";
}
return $result;
}
Подскажите пожалуйста как дописать скрипт что бы ссылки выводились таким образом

март 2013
апрель 2013
январь 2013
ноябрь 2012

и т.д.

Заранее спасибо, а то всю голову уже сломал

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Если вы вместо сформированного списка годов, хотите получить список месяцев к каждому году. То это все делается на уровне php. То есть так же как сейчас php перебирает все новости
foreach ($childs as $key1 => $value1) ...

вы также оставляете эту часть меняя только внутренний блок, в котором помимо года начинаете вытягивать и собирать в какой-нибудь массив месяца. Дата каждой новости вы получаете благодаря строчке
$date_news=$element->getValue('publish_time');
, которая возвращает время в unix-timestamp формате

Единственное, что вам может понадобиться как знание umi/ Это то, как сформировать ссылку которая будет выводить новости за определенный год или месяц....
Если сейчас в вашем скрипте ссылка формируется с параметром ?year (<a href=\"/$path/?year=$i\">), который и указывает что вам нужны новости за опреденный год, то для вывода новостей за определенный год-месяц, вам надо использовать параметр month. То есть, ссылка для вывода новостей за март 2013 года будет выглядеть как (адрес_к_новостной_ленте?year=2013&month=3

у вас вопрос в том ключе как это сделать на php? или вам необходимы какие то

*

serhio

  • *
  • 7
  • +0/-0
    • Просмотр профиля
У меня вопрос как именно подправить этот скрипт что-бы он ещё и месяца дергал

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
в написании php скрипта уже не помогу) это вопрос относиться полность к php, для этого есть много других ресурсов в сети