Прототип релиза

  • 102 Ответов
  • 10002 Просмотров

Neon

  • Сообщений: 665
    • Просмотр профиля
    • Danneo CMS
Прототип релиза
« : 07 Мая 2016, 16:42:08 »
Выложил на tools:
http://tools.danneo.ru/down/open/danneo-cms-v1-5-0-pre-release1.html

Более подробное описание, чуть позже добавлю.
DANNEO ™

AndreyA

  • Сообщений: 3
    • Просмотр профиля
Re: Прототип релиза
« Ответ #1 : 08 Мая 2016, 01:30:45 »
Спасибо!

На Денвере (Win) поймалось из админки -

При изменении параметров блоков:
Fatal error: Class 'DN\Cache\CacheBlock' not found in Z:\home\danneo150\www\admin\system\block\index.php on line 1140

При изменении настройки сайта -> Общие настройки:
Fatal error: Class 'DN\Cache\CacheLogin' not found in Z:\home\danneo150\www\admin\system\options\index.php on line 145

Neon

  • Сообщений: 665
    • Просмотр профиля
    • Danneo CMS
Re: Прототип релиза
« Ответ #2 : 08 Мая 2016, 09:12:11 »
Да, да... спасибо.
Надо пути корректировать с учетом файловой системы Windows.
Кроме подключения классов, еще возможно где-то выплывет. Отдельным заходом исправим.
Забыл предупредить, что на вин не тестировалось.
DANNEO ™

Neon

  • Сообщений: 665
    • Просмотр профиля
    • Danneo CMS
Re: Прототип релиза
« Ответ #3 : 08 Мая 2016, 11:01:41 »
Описание отличий от предпоследней сборки Danneo CMS v1.5.0 (revision 4)
http://tools.danneo.ru/news/read/prototip-reliza-danneo-cms-v105.html
DANNEO ™

Neon

  • Сообщений: 665
    • Просмотр профиля
    • Danneo CMS
Re: Прототип релиза
« Ответ #4 : 08 Мая 2016, 15:52:29 »
Цитировать
На Денвере (Win) поймалось из админки
Исправлено, патч в архиве.
/admin/init.php
/admin/core/Loader.php

Архив сборки обновлен.
DANNEO ™

AndreyA

  • Сообщений: 3
    • Просмотр профиля
Re: Прототип релиза
« Ответ #5 : 08 Мая 2016, 16:24:06 »
Исправлено, патч в архиве.

Архив сборки обновлен.

Теперь нормально.
---
Работает ли RSS ?
В редактировании категорий статей и новостей, включив RSS - ничего не меняется.

Neon

  • Сообщений: 665
    • Просмотр профиля
    • Danneo CMS
Re: Прототип релиза
« Ответ #6 : 08 Мая 2016, 18:02:06 »
В любом случае RSS работает. Из категорий выводит как положено.
Просто публикации без категорий не выводит.

Чтобы выводились без категории нужно изменить запрос.
Откройте файл: /mod/news/rss.php
В комментариях есть
// WHERE (a.act = 'yes' AND b.rss = 'yes') OR (a.act = 'yes' AND a.catid = 0)
В запросе
WHERE a.act = 'yes' AND b.rss = 'yes'
нужно заменить на тот, что в комментарии

п:с/
Если новость находится во вложенной категории, то настраивать rss нужно именно в этой категории, а не в родительской.
« Последнее редактирование: 08 Мая 2016, 18:06:35 от Neon »
DANNEO ™

AndreyA

  • Сообщений: 3
    • Просмотр профиля
Re: Прототип релиза
« Ответ #7 : 08 Мая 2016, 20:03:06 »
Нашел RSS. Да, всё работает.

Чтобы были на виду — добавил в top.tpl шаблона:

<link rel="alternate" type="application/rss+xml" href="/article/rss" />
<link rel="alternate" type="application/rss+xml" href="/news/rss" />

Neon

  • Сообщений: 665
    • Просмотр профиля
    • Danneo CMS
Re: Прототип релиза
« Ответ #8 : 10 Мая 2016, 19:24:16 »
Форматирование даты в шаблонах оформления.
Доработан метод
$tm->parse();
В шаблон передается метка времени в UNIX, в чистом виде, без преобразований, и с параметрами выводим нужный формат даты.
Вместо
$api->sitetime($item['public'], 1)
Передаем
'date' => $item['public']
Ключ даты в шаблоне {date}
Параметры вводятся через разделитель ":"
К примеру:
{date:r} - выведет дату в формате RFC 2822 для атрибута datetime тега <time> (Thu, 21 Dec 2000 16:01:07 +0200)
{date:c} - в формате ISO 8601 для того же атрибута (2004-02-12T15:19:21+00:00)

Для публичного отображения даты используем синтаксис метода $api->sitetime()
К примеру:
{date} - выведет дату согласно системным настройкам, которые определены в "Управление системой" => "Настройки сайта" => "Время ⁄ Cookies",
но без часов и минут, пример: 10 Май, 2016
{date:1:1} - выведет: 10 Мая, 2016 07:20 (первый параметр включает склонение в рус. и второй часы, минуты).
{date:ru} - выведет дату в Российском формате - 10.05.2016
И так далее...
Полный список параметров вы можете найти внутри метода $api->sitetime()

Если в коде скрипта в шаблон передаются старые данные
$api->sitetime($item['public'], 1)
дата обрабатывается в старом режиме.
В общем, сохранена полная обратная совместимость.

Просьба к программистам, поиграться и высказать свои соображения или предложения.
Обработка дат в шаблонах назрела уже давно, и её нужно вводить.
DANNEO ™

Staf4

  • Сообщений: 240
    • Просмотр профиля
    • viastyle.org
Re: Прототип релиза
« Ответ #9 : 11 Мая 2016, 00:21:08 »
Хотели мнения? Получайте мнение.

Я считаю, что нужно избавляться от шаблонизатора, сделав поддержку выполнения php прямо в шаблоне.
Это решит очень многие проблемы, включая и вывод даты в нужном формате, и вывод своих языковых переменных (без правки файлов модуля), добавит возможность обработки выходных данных (если есть такая необходимость).

По моему скромному многолетнему опыту, шаблонизаторы (любые) - говно.  Говно они потому что:
1. они обязывают изучить дополнительный синтаксис для работы с системой, где-то больше, где-то меньше.
2. они сковывают программера.  куда удобнее сделать все необходимые операции через пхп, чем писать костыли на всяких шаблонизаторах аля смарти.. гуглить на зарубежных форумах, как же выйти из гребаного цикла в популярном (чтоб он сука загнулся завтра) джанго, и с удивлением узнавать, что прервать цикл в шаблонизаторе джанги нельзя, ожидай когда весь цикл пройдет..
3. они в любом случае будут медленнее нативного выполнения пхп - простой вывод переменной через напрямую из пхп всегда будет быстрее вывода этой же переменной через шаблонизатор.
Про шаблонизатор даннео я вообще молчу - это просто пара десятков переменных (конфликтующих кстати между основным шаблоном и шаблоном модулей), которые просто нужно человеку знать.  а не знаешь - лезь в модуль, ищи где цепляется шаблон, и смотри, что можно подставить.  даже print_r не сделать в шаблоне, чтоб узнать че хоть вообще можно вывести - полезай в модуль и там принте_рь.
А если хочешь добавить какую-то свою переменную или логику - тут без изменения модуля вообще никуда..  а потом начинаются вопросы "я тут обновился, и все похерилось, как исправить"?

Надеюсь ясно выразил свою т.з.  В кратце: нужно внедрить в шаблоны поддержку пхп и вырезать к песьим мухам все {title}, {hrenitle}..
Пингвины ходят голышом

Sir_G

  • Сообщений: 55
    • Просмотр профиля
Re: Прототип релиза
« Ответ #10 : 11 Мая 2016, 12:46:50 »
Хотели мнения? Получайте мнение.
вот это поворот..

Neon

  • Сообщений: 665
    • Просмотр профиля
    • Danneo CMS
Re: Прототип релиза
« Ответ #11 : 11 Мая 2016, 13:01:44 »
Все нормально, просто наболевшее у программиста ))

Staf4, вопрос то не в программистах, а в верстальщиках.
Если программист пишет систему для себя, то ему вообще не нужно ничего ни куда выводить, хоть в PHP, хоть в HTML.
Зачем подключать дополнительные файлы и тратить на это ресурсы системы, если можно просто, вставить в нужном месте ECHO и добавить оформление?
Это будет еще быстрее чем то, что ты предлагаешь.

Отделение представления от кода, нужно именно для тех кто не знает, и не должен знать на каком языке веб-программирования работает функционал PHP, Perl, Python, Ruby или .NET
И основным принципом отделения верстки от кода, является то, что любые изменения в шаблоне оформления, не должны вызывать ошибки сервера.
Просто потому, что это HTML.
DANNEO ™

Staf4

  • Сообщений: 240
    • Просмотр профиля
    • viastyle.org
Re: Прототип релиза
« Ответ #12 : 11 Мая 2016, 13:29:02 »
вот это поворот..
за кулисами перед этим общались, тут продолжение)

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

ладно, фиг с ним.  но как только ты решишь сделать поддержку циклов, условий, наследования - меня опять понесет)

по датам.  не тестил, не до этого, но идея хорошая, внедряй конечно.  детали уже потом будем обсуждать, дебажить, предложения дополнительные может какие выдавать.
Пингвины ходят голышом

Neon

  • Сообщений: 665
    • Просмотр профиля
    • Danneo CMS
Re: Прототип релиза
« Ответ #13 : 11 Мая 2016, 15:27:38 »
Цитировать
за кулисами перед этим общались, тут продолжение)
Ну да, с пьяным Неоном, который совсем не стеснялся в выражениях -)

По поводу циклов, сравнений, фильтров и пр., я против подобных расширений. Иначе, это опять шаблонизатор для программистов.
Конструкции типа:
{% for i in 0..10 %}
    * {{ i }}
{% endfor %}
или
{% if kenny.sick %}
    Kenny is sick.
{% elseif kenny.dead %}
    You killed Kenny! You bastard!!!
{% else %}
    Kenny looks okay --- so far
{% endif %}
могут ввести в ступор даже опытного верстальщика, не говоря уже о начинающем, освоившим азы HTML.
Примеры из Twig.

Считаю, что основных шаблонов с переменными, плюс вложенных шаблонов, плюс возможность форматирования дат в шаблонах, вполне достаточно.
Все остальное, не оправданное усложнение.

В предыдущей версии у нас в коде оставались некоторые не доработки, и даже ошибки.
К примеру, при удалении в шаблоне вложенных шаблонов
<!--buffer:rows:0--><!--buffer-->
приводило к ошибке на стороне сервера.
Теперь этого нет.
Верстальщик бог и главный командир в HTML, если он решил что-то удалить значит он знает, что делает, и не нужно ему выдавать ни каких предупреждений. Просто вывод исчезнет и все.
В функциональных файлах, вначале кода объявляем пустые $tm->manuale(), также как мы объявляем переменные, массивы и те же $tm->unmanule().
/**
 * Вложенные шаблоны
 */
$tm->manuale = array
(
'cat' => null,
'icon' => null,
'tags' => null,
'thumb' => null,
'pagesout' => null
);
Это предотвратит подобные ошибки.

В шаблонах модов добавлен файл: index.tpl
В данный шаблон передаются основные блоки с контентом, а также дополнительные.
К примеру, раньше подзаголовки выводились непосредственно в коде, и переместить, удалить или добавить оформление можно было только в функциональном файле. Теперь они находятся в шаблоне, а также форма поиска, листинг страниц. Можно управлять ими не заглядывая в функционал.
Располагать в любом месте, добавлять оформление или просто удалить.

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

Разделители хлебных крошек
<span>&#187;</span>
убраны из кода.
Теперь в breadcrumb передается массив из отдельных частей, а в $tm->header() разбирается и разделители подставляются автоматом.
Сами разделители можно изменить в настройках системы.
Управление системой => Настройки системы => Общие настройки
Поле - Разделитель хлебных крошек
По умолчанию включены
<i>»</i>
В общем, теперь представление полностью отделено от кода.
Осталось добавить форматирование дат непосредственно в шаблоне.
Поэтому и предложил такой вариант, который полностью совпадает с синтаксисом который мы уже использовали в PHP, только теперь в шаблоне.
Кроме того, можно использовать старый вывод дат, ошибок ни каких не будет.
DANNEO ™

Staf4

  • Сообщений: 240
    • Просмотр профиля
    • viastyle.org
Re: Прототип релиза
« Ответ #14 : 11 Мая 2016, 15:40:01 »
Считаю, что основных шаблонов с переменными, плюс вложенных шаблонов, плюс возможность форматирования дат в шаблонах, вполне достаточно.
Все остальное, не оправданное усложнение.
Да, все верно. Согласен.

Вывод комментариев и форму теперь можно располагать произвольно.
наконец-то)

Теперь в breadcrumb передается массив из отдельных частей
ДА! ЕДРИТЬ! ура. спасибо)  давно я просил сделать это в системе)  у себя делал - лишь положительные воспоминания.
но где-то по-любому косяки есть, нужно будет отдельно проходиться, искать.  беглый осмотр показал, что в файле:
d:\OpenServer\domains\dn151.ru\www\mod\media\index.php
передается строка вместо массива:
$global['insert']['breadcrumb'] = '<a href="'.$ro->seo('index.php?dn='.WORKMOD).'">'.$global['modname'].'</a>';



Далее.
Уже обсуждали, но еще раз обращу внимание.  Я считаю, что поле "h1" нужно отделить от поля "название".  Название должно использоваться в автогенерируемых меню и крошках, а h1 уже на своем месте.
отдельное поле h2 - сомнительная хрень.  это уже в теле страницы должно быть.
Кстати, "тинимсе" думаю надо вообще вырезать, как дырявое ЗЛО, заменив на банально простой самописный виз-редактор.  Это уменьшит общий вес системы, уменьшит кол-во файлов системы и уменьшит дыры.

Мелкий глюк, генерация чпу криво работает: http://c2n.me/3xUGeQd.png .  Сам не разбирался, просто заметил, сообщаю.
Пингвины ходят голышом