OctoberCMS在Api / Web服务中获取主题设置数据

时间:2016-11-22 11:52:36

标签: api octobercms

我创建了一个十分有效的OctoberCMS主题。我有我当前激活的 theme.yaml 这样的。

theme.yaml

name: 5P Group
description: '5P Group OctoberCMS theme. A client website that contains preconfigured pages for static pages, a blog and client area..'
author: Technobrave
homepage: 'http://technobrave.com/'
code: ''
form:
    fields:
        site_logo:
            label: Site Logo
            comment: The website logo as it should appear on the front-end
            type: fileupload
            mode: image
            imageHeight: 32
            imageWidth: 443

正如您所看到的,我添加了一个网站徽标标签,管理员可以通过该标签上传徽标,我会在前面展示,这样工作正常,因为我可以在前面区域展示徽标像这样。

menu.htm

{% if this.theme.site_logo  %}
<img src="{{ this.theme.site_logo.path }}" width="100%" height="auto"/>
{% else %}
<img src="{{ 'assets/images/logo.png'|theme }}" width="100%" height="auto"/>
{% endif %}

但问题是我也在创建一个api,我想在那个api做同样的事情。这就是我想要的。

routes.php文件

    use System\Classes\SettingsManager;

    /* API to get Website Logo Dynamically Starts */

    Route::post('/getWebsiteLogo', function () 
    {
        $settings = Settings::instance();

        print_r($settings);



    });
    /* API to get Website Logo Dynamically Ends */

但我说错误

  

未找到“设置”类

有人可以指导我或建议我如何完成同样的事情,或者说如何在我的apis中获取动态网站徽标?

由于

1 个答案:

答案 0 :(得分:3)

好的,谢谢你的支持..最终我已经解决了这个问题。

<强> routes.php文件

<?php 
use Cms\Classes\ComponentBase;
use RainLab\Pages\Classes\Router;
use Cms\Classes\Theme;

/* API to get Website Logo Dynamically Starts */
Route::post('/getWebsiteLogo', function () 
{
    $theme = Theme::getActiveTheme();
    $logo_url = '';
    if($theme->site_logo['attributes']['disk_name'])
    {
        echo $theme->site_logo->path; 
    }
}
?>

感谢您的帮助和支持。非常感谢。