Giter Site home page Giter Site logo

Comments (7)

Ibochkarev avatar Ibochkarev commented on July 29, 2024

@EMDM45 А если шаблон указывать с нижним подчеркиванием в названии?
Так {include 'template:template_name'}

from pdotools.

EMDM45 avatar EMDM45 commented on July 29, 2024

@EMDM45 А если шаблон указывать с нижним подчеркиванием в названии?
Так {include 'template:template_name'}

Без разницы. Даже если вообще одним словом написать. Всё равно хэш и runtime.

from pdotools.

EMDM45 avatar EMDM45 commented on July 29, 2024

Заметил, что хэш всегда один и тот же, даже если написать {$.tpl.name} в чанках, которые внутри шаблона.

from pdotools.

sergant210 avatar sergant210 commented on July 29, 2024

Напомню ещё раз. Василий начал прикручивать Fenom в парадигме MODX. Т.е. затачивал его на элементы базы данных. Только позже он с моей подачи добавил возможность работы с файлами. Т.е. вместо того, чтобы с боку прикрутить работу с элементами из БД, он заставил феном работать с базой, а потом с боку прикрутил работу с файлами. Поэтому имеем то, что имеем.

// Должно было быть так 
{include 'some/path/to/file.tpl'} - изначально работаем с файлом
{include 'db:chunk_name'} - для работы с базой добавляем модификатор
// А имеем так
{include 'file:some/path/to/file.tpl'} - для работы с файлом нужно добавить модификатор
{include 'chunk_name'} - без модификатора поиск элемента в базе данных

Я об это рассказывал когда объяснял разницу подходов в pdoTools и ZoomX.

П.С. Кстати, даже Коля Ланец в то время сделал свой компонент на шаблонизаторе Smarty подобным образом. Тогда никто не думал о файловых элементах.

from pdotools.

EMDM45 avatar EMDM45 commented on July 29, 2024

Поэтому имеем то, что имеем

Эт понятно. Просто, мне кажется, нужно либо из документации убрать информацию, либо исправить по возможности.
Сам я пока не разобрался из-за чего он выводит этот хэш и как всё исправить.

Даже если создать свой провайдер типа {include 'block:test'}, то всё равно хэш лезет из $.tpl.name.

// Должно было быть так
{include 'some/path/to/file.tpl'} - изначально работаем с файлом
{include 'db:chunk_name'} - для работы с базой добавляем модификатор
// А имеем так
{include 'file:some/path/to/file.tpl'} - для работы с файлом нужно добавить модификатор
{include 'chunk_name'} - без модификатора поиск элемента в базе данных

Насколько смог разобраться и понять, там при создании экземпляра Fenom просто указывается провайдер по умолчанию:

$provider = new modChunkProvider($pdoTools);
parent::__construct($provider);

Т.е. это стандартная возможность Fenom. В итоге Fenom по умолчанию работает с базой и чанками.
А проблема судя по всему где-то в файлах pdoparser.php или pdotools.php, которые и передают этот хэш Феному. И, как я понял, хэш в названии нужен либо когда "@inline чанки", т.е. без названия, либо для создания кэша средствами modx.
runtime - это значение по умолчанию у фенома в файле Render.php, видимо поэтому $.tpl.basename и выводит его, т.к. другого не задано...

from pdotools.

EMDM45 avatar EMDM45 commented on July 29, 2024

Даже если создать свой провайдер типа {include 'block:test'}, то всё равно хэш лезет из $.tpl.name.

А самое главное с моим провайдером block Феном отрабатывает всё отлично! Значит он правильно распознает basename (в данном случае - это test)! ! Но именно в массив {$.tpl} откуда-то попадает хэш и runtime...

from pdotools.

EMDM45 avatar EMDM45 commented on July 29, 2024

Вообщем, либо я не правильно понимаю как должен отрабатываться массив {$.tpl}, либо он работает действительно не правильно. Возможно он и должен брать данные именно от шаблона (от родителя), а не от каждого чанка. А так как у нас первым идёт шаблон modx из базы, соответственно он и берёт хэш.

from pdotools.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.