1: <?php
2: /**
3: * xoImgUrl Smarty compiler plug-in
4: *
5: * See the enclosed file LICENSE for licensing information. If you did not
6: * receive this file, get it at http://www.gnu.org/licenses/gpl-2.0.html
7: *
8: * @copyright (c) 2000-2022 XOOPS Project (https://xoops.org)
9: * @license GNU GPL 2 or later (https://www.gnu.org/licenses/gpl-2.0.html)
10: * @author Skalpa Keo <skalpa@xoops.org>
11: * @package xos_opal
12: * @subpackage xos_opal_Smarty
13: * @since 2.0.14
14: */
15:
16: /**
17: * Inserts the URL of a file resource customizable by themes
18: *
19: * This plug-in works like the {@link smarty_compiler_xoAppUrl() xoAppUrl} plug-in,
20: * except that it is intended to generate the URL of resource files customizable by
21: * themes.
22: *
23: * Here the current theme is asked to check if a custom version of the requested file exists, and
24: * if one is found its URL is returned. Otherwise, the request will be passed to the
25: * theme parents one by one. Ultimately, if no custom version has been found, the resource
26: * default URL location will be returned.
27: *
28: * <b>Note:</b> the themes inheritance system can generate many filesystem accesses depending
29: * on your themes configuration. Because of this, the use of the dynamic syntax with this plug-in
30: * is not possible right now.
31: *
32: * @param string[] $params
33: * @param Smarty $smarty
34: * @return string
35: */
36:
37: function smarty_compiler_xoImgUrl($params, Smarty $smarty)
38: {
39: global $xoops, $xoTheme;
40: $arg = reset($params);
41: $arg = trim($arg, " '\"\t\n\r\0\x0B");
42: $path = (isset($xoTheme) && is_object($xoTheme)) ? $xoTheme->resourcePath($arg) : $arg;
43: //$xoops->events()->triggerEvent('debug.log', $path);
44: return "<?php echo '" . addslashes($xoops->url($path)) . "'; ?>";
45: }
46: