Assets de Módulos
Cada módulo guarda CSS, JS e imagens em app/modules/{nome}/views/assets/. Use plugin_src() para gerar a URL — sem copiar para public/.
Estrutura
app/modules/shop/
├─ views/
│ ├─ shopping.mucrm.php
│ └─ assets/
│ ├─ css/shop.css
│ ├─ js/shop.js
│ └─ images/icon.png
└─ handlers/plugin_src()
Gera a URL pública de um arquivo do módulo:
<link rel="stylesheet" href="<?= e(plugin_src('Shop', 'css/shop.css')) ?>">
<script src="<?= e(plugin_src('Shop', 'js/shop.js')) ?>"></script>Com stacks no layout
O jeito recomendado: empilhe na view do módulo e deixe o layout imprimir tudo no lugar certo.
<?php
// Forma mais simples — gera as tags automaticamente:
plug_style('shop', 'css/shop.css');
plug_script('shop', 'js/shop.js', ['defer' => 'defer']);
?>Ou manualmente:
<?php
// Na view do módulo — HTML manual:
push_style('<link rel="stylesheet" href="' . plugin_src('Shop', 'css/shop.css') . '">');
push_script('<script src="' . plugin_src('Shop', 'js/shop.js') . '"></script>');
?>No layout:
<head>
<link rel="stylesheet" href="<?= src('css/app.css') ?>">
<link rel="stylesheet" href="<?= theme_src('css/theme.css') ?>">
<?= stack_styles() ?>
</head>
<body>
...
<?= stack_scripts() ?>
</body>Veja Layouts eHelpers de URL.