в ATK4, как я могу использовать шаблон для создания типа файла, отличного от html?

Последняя оставшаяся часть моего оригинального приложения, которое не использует atk4, — это динамические файлы css, созданные в php и выводящие заголовок css. Ширина определяется на основе данных в mysql и необходима для обеспечения постоянного изменения размера экрана при перетаскивании заметок.

С чего мне начать, если я хочу создать файл .css со структурой шаблона, аналогичной шаблонам html, поэтому я могу использовать определение css, например

.fullwidth {
   width:<?$width?>; 
}

Заранее спасибо.


person Trevor North    schedule 17.10.2011    source источник


Ответы (1)


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

RewriteRule ^css/dynamic\.css$  index.php?page=css

Затем создайте класс внутри страницы/css.php

class page_css extends Page {
    function init(){
        parent::init();
        echo ".fullwidth { ... } ";
        exit;
    }
}

В этом случае шаблоны не очень помогают, но если вы хотите их использовать, не забудьте повторить команду echo $template->render(); и выход.

person romaninsh    schedule 17.10.2011
comment
Если я добавлю defaultTemplate на эту страницу, будет ли она заполнена? И как я могу обратиться к странице css, могу ли я включить ее с помощью $this-›api-›template-›append('css_include', '‹link type=text/css href='.$this-›api-› locateURL('css','dynamic.css').' rel=stylesheet /›'.\n); - person Trevor North; 17.10.2011
comment
defaultTemplate визуализируется рекурсивным рендерингом, который происходит после инициализации. Если вы выйдете раньше, этого никогда не произойдет: agiletoolkit.org/learn/understand/api/exec Что касается включения CSS, я уже добавил статический JavaScript, но не являются статическими включениями для таблиц стилей. Специальная функция будет добавлена ​​в версии 4.1.3, а пока используйте опубликованный вами код. За исключением того, что locateURL не будет работать, так как такого файла не будет. - person romaninsh; 17.10.2011
comment
ОК — я добавил ‹?$css_include?› в свой файл shared.html прямо над существующим js_include, поэтому я могу добавить CSS, но держать его отдельно от javascript, так что я попробую. Спасибо - person Trevor North; 17.10.2011