我是Drupal的新手,我非常喜欢它。我正在自己学习,但现在我遇到了问题。
我创建了一个显示标题和链接列表的自定义块。因此,该块中的唯一字段是类型链接。它是我的页脚区域的一个块。因此,当用户点击时,它会在新标签页中打开一个新网站。
我想改变这个块类型的html输出,所以我拿出了这个主题建议: 场 - 嵌段 - 含量 - 场链接 - 页脚-links.html.twig
我的问题是如何为每个>>> l1[2::3], l2[2::3] = l2[2::3], l1[2::3]
>>> l1, l2
([1, 2, 'c', 4, 5, 'f'], ['a', 'b', 3, 'd', 'e', 6])
标记添加一个类?
我尝试使用模块'链接类'。它有效。它只在安装模块之前读取css中已存在的类。它不会读取安装模块后创建的新类。我尝试了不同的东西,多次清理缓存但很奇怪。必须有一种更好的方法来添加没有模块的类。
有人可以帮助我并向我展示向我的<a>
代码添加课程的最佳方法吗?
谢谢:)
这是
的默认模板<a>
答案 0 :(得分:5)
将{{item.content}}替换为硬编码链接:
<a href="{{ item.content['#url']|render }}" {% if item.content['#options']['external'] %} target="_blank" {% endif %} class="some class here">{{ item.content['#title'] }}</a>
或者如果您愿意,可以合并课程选项:
{{ item.content|merge({'#options': {'attributes': {'class': ['some', 'class', 'here']}}}) }}
答案 1 :(得分:2)
对于那些喜欢使用php构建html渲染元素的人。 一个非常典型的链接:
$elements[$delta] = [
'#type' => 'link',
'#title' => $value,
'#url' => Url::fromUri('mailto:' . $value),
'#attributes' => [
'class' => ['myClass']
]
];
答案 2 :(得分:0)
这取决于您如何构建该自定义块。但是就像你说的那样,为了添加一些类而创建一个新模板有点过分。
所以这里有一些关于如何创建链接的好答案,以及如何向类添加类等属性: https://drupal.stackexchange.com/questions/144992/how-do-i-create-a-link
对于不同的情况,答案略有不同,所以请自行寻找最适合您情况的答案。
答案 3 :(得分:0)
我也无法在Drupal 8中扩展Links。 菜单链接,评论表单链接,实时Drupal想要呈现系统链接值。
我的尝试通常是这样的: 1.尝试在使用字段时使用字段覆盖在视图中添加类。
如果不可能,请检查主题挂钩,通过属性添加类。 (Chrome Drupal模板助手扩展程序有帮助。)我能够将一个类添加到父UL,但不是A的。
检查树枝模板中的键并使用{{var.name [#url]}}显式呈现。 (Bootstrap Drupal主题在他们的menu.html.twig中执行此操作!)示例:
a href="{{ item.url }}" class="dropdown-toggle" data-target="#" data-toggle="dropdown">{{ item.title }}
如果这3次尝试失败......我通过Javascript添加属性。
的jQuery( '注释的禁止的。 ')的父()addClass(' 一览无样式');
我尝试在node.html.twig中向节点链接(登录或注册以发布评论)添加类,并且出现错误提示:
$variables['content']['links']['#attributes']['class'][] = 'list-unstyled';
指定#lazy_builder回调时,不存在任何属性;所有属性必须由#lazy_builder回调生成。您指定了以下属性:#attributes。在Drupal \ Core \ Render \ Renderer-&gt; doRender()
中