PyroCMS主题定制导航结构

时间:2016-11-27 10:06:41

标签: php twig pyrocms

我到处搜索但似乎无法在文档或其他任何地方找到任何内容。我已经创建了自己的自定义主题,从PyroCMS附带的Starter主题中复制内容。在我的导航部分中有这个twig指令:

FATAL EXCEPTION: main
Process: flix.yudi.penilaian, PID: 28524
java.lang.RuntimeException: Unable to start activity ComponentInfo{flix.yudi.penilaian/flix.yudi.penilaian.Pertanyaan}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2423)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2483)
at android.app.ActivityThread.access$900(ActivityThread.java:153)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5441)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at flix.yudi.penilaian.Pertanyaan.onCreate(Pertanyaan.java:45)
at android.app.Activity.performCreate(Activity.java:6303)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2376)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2483) 
at android.app.ActivityThread.access$900(ActivityThread.java:153) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5441) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)

这在使用Bootstrap框架时有效。我正在使用Purecss.io,我想分配不同的类并将类分配给更多的元素。我的导航应该如下所示:

{{ structure()
            .linkAttributesDropdown({'data-toggle': 'dropdown'})
            .listClass('nav navbar-nav navbar-right')
            .childListClass('dropdown-menu')
            .render()|raw }}

我已尝试过我的偏见:

<ul class="pure-menu-list">
    <li class="pure-menu-item pure-menu-selected">
        <a href="http://local.dev" class="pure-menu-link" >Home</a>
    </li>
    <li class="pure-menu-item pure-menu-has-children pure-menu-allow-hover">
        <a href="http://local.dev/products" class="pure-menu-link">Item with children</a>
    <ul class="pure-menu-children">
        <li class="pure-menu-item">
            <a href="http://local.dev/products/child1" class="pure-menu-link">Child 1</a>
        </li>
        <li class="pure-menu-item">
            <a href="http://local.dev/products/chil2" class="pure-menu-link">Child 2</a>
        </li>
    </ul>
    </li>
 </ul>

但这并不能解决问题。

我将如何做到这一点?我在哪里可以找到使用过的函数structure(),listClass()等的文档?

提前致谢!

2 个答案:

答案 0 :(得分:2)

不幸的是,系统的这一部分仍在开发中,但我可以向您展示宏以及如何与它进行交互:

https://github.com/anomalylabs/pages-module/blob/master/resources/views/macro.twig

您看到的链接是如何设置选项,以便structure().fooBar(value)在选项集合中将foo_bar选项设置为value

对于elementClass,您可能正在寻找linkClass。另外不要忘记与|raw逃脱!

看起来这会为您提供所需的标记:

{{ structure()
        .currentClass('pure-menu-selected')
        .dropdownClass('pure-menu-has-children pure-menu-allow-hover')
        .linkAttributesDropdown({'class': 'pure-menu-item pure-menu-has-children pure-menu-allow-hover'})
        .listClass('pure-menu-list')
        .itemClass('pure-menu-item')
        .linkClass('pure-menu-link')
        .childListClass('pure-menu-children')
        .render()|raw }}

答案 1 :(得分:1)

以下是一些信息:

非常基本的默认设置如下所示,将创建包含所有现有页面的无序列表。如果您已将页面设置/切换为,则它将不会显示。

{{ structure()|raw }}

更改列表元素的类
{{ structure().list_class('navigation')|raw }}

将列表标记更改为无序列表以外的其他内容: {{ structure().list_tag('dl')|raw }}

更改列表元素

{{ structure().link_tag('dt')|raw }}

仅显示特定页面的子项

{{ structure().root('/my-page')|raw }}或page-id {{ structure().root('9')|raw }}

为具有子项的元素设置类

{{ structure().dropdown_class('has-children')|raw }}

为每个li项设置一个类:

{{ structure().item_class('has-children')|raw }}

将类设置为链接

{{ structure().link_class('my-class')|raw }}

为链接添加title属性

{{ structure().link_attributes({'title':'Title attribute'})|raw }}