Вывод даты в Instantcms 1

#16 27 февраля 2016 в 17:14

А что не так-то с датой?
Просветите.

Sonat

Например дата в Инстанте указывается вот так {$photo.pubdate}, добавляем к нему верный формат: {$photo.pubdate|date_format:'%Y-%m-%d'} Далее весь контент показывается что добавлен сейчас и сегодня. То есть показывает текущую дату. Это ошибка, а убирать нельзя, ибо надо указывать поисковику и дату добавления и дату редактирования.


Такой же бардак по сути с системой рейтинга, тоже желательно переделать.

Желательно желающим сделать озвучить цену вопроса.
#17 27 февраля 2016 в 21:01
Вопрос очень серьёзный на самом деле. Недавно внедрял буквально микроразметку на сайт интернет магазин, уже в выдаче и цена и наличие товара в сниппете, неплохо было бы и рейтинг туда внедрить, да и даты поправить, а то нелогично все материалы сегодняшним днем. Жду предложений по реализации.
#18 27 февраля 2016 в 21:06
поддерживаю letsgo, предлагаю складчину

условия — пошаговая инструкция как все переделать в релизе 1.10.6

принцип — правильная ИСО реализация даты и ввод 2 переменных для вывода даты в человекочитаемой форме:
— полной, типа 10 февраля 2015 года (возможно время)
— краткой, типа 10.02.2015 (возможно время)

так же должна быть инструкция, как сменить тип у этих переменных, чтобы менять форматы в случае необходимости
#19 28 февраля 2016 в 11:07
Вот интересно а затронет это сортировку по дате?!
#20 28 февраля 2016 в 20:42

Вот интересно а затронет это сортировку по дате?

Gumoff

Думаю все поправимо.
#21 29 февраля 2016 в 11:57

Жду предложений по реализации

Предложение уже было.

Вот интересно а затронет это сортировку по дате?

Нет конечно.

предлагаю складчину

Blackman-st, предлагаю все-таки вникнуть в суть того что вы просите:

1. В базе данных даты и так хранятся в правильном формате и они не требуют никакого вмешательства.
2. Ядро на вывод даты никак не влияет, в нем просто есть метод который при желании может быть использован или не использован в том или ином коде.
3. Дописывать запросы всех компонентов и модулей ради получения еще одного формата даты как минимум глупо и нецелесообразно ибо добраться до запросов сторонних разработок можно далеко не всегда, а все то же самое можно сделать и при помощи php.
4. Теперь возьмем для примера какой-нибудь модуль, его разработчик знать не знал ни о каких нужных вам форматах и поэтому вывел дату так как считал нужным, вернее из базы то он ее вытащил в стандартном формате, но потом (в коде модуля) использовал метод ядра dateFormat и преобразовал ее например в вид "1 января 2016 года".
5. Для того что бы вывести в шаблон еще один формат нам нужно открыть логику этого самого модуля и в довесок к существующему формату (ведь он нам нужен для сохранения изначального внешнего вида) добавить туда еще одну строку кода (назовем это функцией) которая будет брать вытащенное из базы значение в виде Y-m-d и возвращать его в формате ISO.
6. Полученную ISO дату нам нужно передать в шаблон… То есть цепочка получается такая: БД->запрос->форматирование->вывод
7. Так зачем же выносить мозг и вносить изменения во все контроллеры дописывая туда по сути одну и ту же строку кода если ровно ту же самую строку кода можно оформить в виде модификатора и корректировать формат прямо в шаблоне? Иными словами вызываем практически ту же самаую функцию, но не в контроллере, а в шаблоне.
----------
Получается примерно как в фильме по Калиостро, когда шли переговоры о ремонте кареты… Я вам объясняю что все делается за 30 минут на уровне шаблона, а вы упорно хотите сделать по сути то же самое, но за 2 дня и на уровне контроллеров. Причем в последнем случае вы все равно будете вынуждены редактировать файлы шаблонов + совершенно не учитываете ни одну разработку не входящую в состав коробочной версии. Вот вам это реально интересно?
#22 29 февраля 2016 в 14:23
Pasha, я так понимаю, что хранились бы они в правильном формате, то тема бы не возникла.

Иллюстрация
и

Sonat:
А разве pubdate типа "2016-02-27 10:19:17" это не iso?
Не, там как-то так оно будет — 2016-02-27T10:19:17+00:00

Pasha

как-то совсем разные вещи

поэтому делать надо на уровне стандарта в ядре, тратить 2 дня и потом от этого плясать.
да, сторонние разработки придется перепиливать, а может и не придется, потому что они все используют переменную pubdate в основном, поэтому, думаю, достаточно будет формировать эту переменную в ядре, а как предлагал, можно формировать 2 переменных, для 2 типов вывода даты, а для спорных моментов и нужна инструкция, как все сделать ручками.

Это как революционный переход с 1.10.3 на 1.10.6… тоже ведь проще было перенести базу с контентом, чем бесконечные апгрейды с сомнительным результатом.
#23 29 февраля 2016 в 16:07

Pasha, я так понимаю, что хранились бы они в правильном формате, то тема бы не возникла.

Blackman-st
Blackman-st, не занимайтесь профанацией. Даты хранятся в правильно формате, менять их хранение НЕ нужно.

Нужно ВСЕГО ЛИШЬ пройтись по шаблонам, где выводятся даты и сделать их вывод по другому. Все.
Например, для InstantCMS2 все решается вот такой простой правкой (хотя это и лишнее, но раз хочется, мне не жалко)
github.com/instantsoft/icms2/commit/4d505fae5e42b8ecf4b7c3721e3d1e7de344339f

Кроме этого, вы, вероятно, не понимаете сути того, что просите. И не только вы. А все потому что слышали звон как говорится...
Поисковики просят (не требуют) отдавать дату в формате ISO 8601 (при чем вполне можно и микроразметкой это делать), это например вот так выглядит: "2015-12-07T10:52:40+03:00". НО поисковики прекрасно понимают и другие форматы дат, в ТОМ числе и буквенные и даже на русском языке и уж тем более даты вида 2015-12-07.

Но если так уж хочется, то нужно прежде всего сначала изучить вопрос. А не писать, что "надо что-то делать с датами".

Самое простое и правильное, на мой взгляд (потому что опробовано не на одном сайте), решение это выводить вот так:

  1. <time datetime="2015-12-07T10:52:40+03:00">07.12.2015</time>
При чем вместо 07.12.2015 можно смело писать "седьмое декабря две тысячи пятнадцатого года". И все это решается добавлением функции smarty. О каком ядре вообще речь вы ведете, мне неведомо. Вывод даты и форматирование даты задача ШАБЛОНА. В базе даты хранятся как положено, НИЧЕГО там менять не нужно.

p.s. немного эмоционально получилось, но уже устал читать всякий бред.
p.p.s. вам Pasha предложил помочь, в чем проблема? уверен, он сделает как положено.
#24 29 февраля 2016 в 23:50
Абсолютно согласен с автором предыдущего сообщения. Храните дату хоть в бинарном виде, и ничто вам не мешает выводить её, как вам хочется, если только лень.
#25 1 марта 2016 в 11:38

Например, для InstantCMS2

Fuze

Например тема называется — вывод даты в Instantcms 1 и просьба в теме одна: кто может сделать платно или бесплатно вывод даты именно так. Надо сделать скидку, что не все освоили php и где то могут ошибаться в плане высказывания, что где хранится.

p.p.s. вам Pasha предложил помочь, в чем проблема? уверен, он сделает как положено.

Fuze

Так никто же не против, если сделает. Только рады все будут.

Самое простое и правильное, на мой взгляд (потому что опробовано не на одном сайте), решение это выводить вот так:

Fuze

Давайте на примере рассмотрим кода, раз только файлы шаблона требуют вмешательства. Например

  1. <span itemprop="datePublished" content="{$article.pubdate|date_format:'%Y-%m-%d'}" class="con_pubdate">
  2. {if !$article.published}<span style="color:#CC0000">{$LANG.NO_PUBLISHED}</span>{else}{$article.pubdate}{/if}
  3. </span>
  4. <meta itemprop="dateModified" content="{$article.pubdate|date_format:'%Y-%m-%d'}"/>
Как здесь вызвать дату правильно в com_content_read.tpl? То что внедрено вызывает просто вызов сегодняшней даты. Здесь указана дата создания и дата изменения, как сделать её правильно?
#26 1 марта 2016 в 13:16

Например тема называется — вывод даты в Instantcms 1

letsgo
Была показана аналогия. И например, я у себя "дома".

вывод даты именно так

letsgo
как?

Так никто же не против, если сделает. Только рады все будут.

letsgo
Он написал, обращайтесь. Я так понимаю, никто и не обратился.

Как здесь вызвать дату правильно в com_content_read.tpl

letsgo
Я алгоритм описал выше. У тебя вроде бы вагон программистов-разработчиков — никто не может выполнить такую простую задачу?
Приведенный код неверный, потому что, насколько я помню в {$article.pubdate} приходит уже отформатированная в русский язык фраза (да, это архитектурная ошибка). Нужно просто в /components/content/frontend.php убрать строку
  1. $article['pubdate'] = cmsCore::dateFormat($article['pubdate']);
И, повторюсь, это форматирование не iso 8601.
Не знаю, понял ли что я написал, но далее тебе что-то объяснять желания совсем нет (угадай почему). В теме есть конкретные предложения помочь по сабжу. Что и как сделать описано, даже с примерами.
#27 1 марта 2016 в 13:44

И например, я у себя "дома".

Fuze

Я знаю. Это же хорошо.

Он написал, обращайтесь. Я так понимаю, никто и не обратился.

Fuze

Да, я напишу ему, есть момент, что не обратился. Решение нужно многим, думал здесь в теме обсудим и решим. Напишу еще отдельно.

Я алгоритм описал выше. У тебя вроде бы вагон программистов-разработчиков — никто не может выполнить такую простую задачу?

Fuze

Ну раз за 7 лет существования Instantcms еще никто не решил, видимо вагона маловато)))


Нужно просто в /components/content/frontend.php убрать строку

Fuze

Спасибо. Видимо туда надо вставить другую строку для вызова другого вида даты? Или просто убрать?

Не знаю, понял ли что я написал, но далее тебе что-то объяснять желания совсем нет

Fuze

Дело то в том, что я еще не писал, но уже знал, что отсутствие желание у тебя возникнет. Ты и в тему вошел сразу с возмущением. Но дата то нужна для всех, кто работает с Инстантом, в том числе и для 2 версии после этой темы пошли уже изменения в дате — что тоже плюс.

Позитив то есть от темы и спасибо тебе за изменения, да и вообще что 1 ветку довел до практически близкого к идеальному состояния… Если в 1 еще доработаем дату и рейтинг, то вообще будет здорово.
#28 1 марта 2016 в 14:30

Ну раз за 7 лет существования Instantcms еще никто не решил, видимо вагона маловато

letsgo
А при чем тут 7 лет и instantcms? Я про твоих разработчиков-товарищей, почему к одному из них не обратился?
Да и решать то нечего, даты прекрасно индексируются и соответствуют "формату", правда что такое "формат" видимо знаешь только ты.

Но важно понимать, что никто не против перевести вывод дат на html5 и с iso форматом. С формулировками у тебя беда, впрочем неудивительно.

Если в 1 еще доработаем дату и рейтинг, то вообще будет здорово.

letsgo
Я тебя умоляю. Как возникнет идея-фикс, так начинается "ужас, все пропало, куда вы все смотрите, все не так, я только знаю как".
#29 1 марта 2016 в 14:39

Как возникнет идея-фикс, так начинается "ужас, все пропало, куда вы все смотрите, все не так, я только знаю как".

Fuze

Та нет идеи-фикс. Просто есть момент, который бы хотелось решить. Может таки поможешь с решением хотя бы с одним на примере уже попробую другие сделать. Поисковики просят вводить микроразметку, там параметр даты не проходит такой как есть сейчас, естественно хочется переделать. Вот и весь вопрос темы.

Да и решать то нечего, даты прекрасно индексируются и соответствуют "формату", правда что такое "формат" видимо знаешь только ты.

Fuze

Я где то так писал? Может без переиначивания моих слов обойдемся? Уже не первый раз замечаю, что слова мои переворачиваешь.
Давай на пустом месте спорить не будем, просто попробуем сделать если есть время и всё.

Вердикт: Спасибо Паше. На днях опубликую решение по микроразметке в статьях сайта, с нормальной датой. Суть в том, что дата как таковая прописывается в каждом компоненте и модуле, относительно контента. Надо было написать модификатор и затем обработать каждый компонент, изменив дату с добавлением (по модификатору Pasha) | iso. Думаю тему создали не зря, результат есть.
#30 1 марта 2016 в 22:41

умаю тему создали не зря, результат есть.

letsgo
Когда берётся Pasha, он всегда есть (как правило, результат превосходит ожидания)
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.