-
Notifications
You must be signed in to change notification settings - Fork 87
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Fenom] Не корректно работает $.tpl.name #364
Comments
@EMDM45 А если шаблон указывать с нижним подчеркиванием в названии? |
Без разницы. Даже если вообще одним словом написать. Всё равно хэш и runtime. |
Заметил, что хэш всегда один и тот же, даже если написать |
Напомню ещё раз. Василий начал прикручивать Fenom в парадигме MODX. Т.е. затачивал его на элементы базы данных. Только позже он с моей подачи добавил возможность работы с файлами. Т.е. вместо того, чтобы с боку прикрутить работу с элементами из БД, он заставил феном работать с базой, а потом с боку прикрутил работу с файлами. Поэтому имеем то, что имеем.
Я об это рассказывал когда объяснял разницу подходов в pdoTools и ZoomX. П.С. Кстати, даже Коля Ланец в то время сделал свой компонент на шаблонизаторе Smarty подобным образом. Тогда никто не думал о файловых элементах. |
Эт понятно. Просто, мне кажется, нужно либо из документации убрать информацию, либо исправить по возможности. Даже если создать свой провайдер типа
Насколько смог разобраться и понять, там при создании экземпляра Fenom просто указывается провайдер по умолчанию: $provider = new modChunkProvider($pdoTools);
parent::__construct($provider); Т.е. это стандартная возможность Fenom. В итоге Fenom по умолчанию работает с базой и чанками. |
А самое главное с моим провайдером block Феном отрабатывает всё отлично! Значит он правильно распознает basename (в данном случае - это test)! ! Но именно в массив {$.tpl} откуда-то попадает хэш и runtime... |
Вообщем, либо я не правильно понимаю как должен отрабатываться массив {$.tpl}, либо он работает действительно не правильно. Возможно он и должен брать данные именно от шаблона (от родителя), а не от каждого чанка. А так как у нас первым идёт шаблон modx из базы, соответственно он и берёт хэш. |
В документации к Fenom (да и в документации к pdoTools) написано:
По факту выводится строка вот такого типа:
b767705ef12761f570abcc3ecc302fdd
(как понимаю md5-хэш содержимого шаблона).Но должно выводиться:
template:template-name
, если шаблон вставляется так:{include 'template:template-name'}
Тоже само и с $.tpl.basename
Выводит:
runtime
, а должен:template-name
.Если написать
{$.fetch('template:template-name')}
, тогда всё работает. Видимо в таком случае пропускается обработка на уровне pdoTools.Было проверено на:
MODX 3.0.3-pl
pdoTools 3.0.2-pl
и на:
MODX 2.8.4-pl
pdoTools 2.13.2-pl
The text was updated successfully, but these errors were encountered: