Drupal 9表格

admin 提交于 周五, 01/14/2022 - 10:51

1. 渲染表格

最简单的表格代码如下(如果不知道$form是什么,请先学习examples里的form_api_example) 

    $form['table'] = [
      '#type' => 'table',
      '#header' => $header,
      '#rows' => $rows,
      '#empty' => '暂无记录',
    ];

其中$header是表头数组,$rows是每一行数据。

2. 排序功能

如果我们希望表格能根据表头排序,那么$header可以从简单的一维数组变成复杂的二维数组:

标签

Drupal 9 Services

admin 提交于 周三, 01/05/2022 - 11:40

Drupal 9的设计大量依赖于service。sevices的核心是让依赖的逻辑写在初始化阶段,这样可以让实际逻辑大大简化,并且可维护性更好。所有\Drupal的写法都是Drupal对面向过程写法的兼容,被视为违反设计模式。不确定会不会在后续Drupal版本(例如Drupal 10)里不能用。下面是一个在Form里如何用Drupal 9 service的方式实现\Drupal::configFactory()功能的例子。就单一功能来说,例子的写法似乎更复杂了。但就整个复杂的系统来说,这样做是简化了,当我们熟悉了初始化service的方式,那些初始化的代码基本都是复制粘贴的。

<?php

namespace Drupal\utility\Form\SystemConsole\ConfigForm;

标签

Drupal 9文件操作指南

admin 提交于 周二, 01/04/2022 - 09:49

1. Drupal的文件目录分类

Drupal的文件API分为unmanaged file和managed file两种类型,managed file会在数据库中记录文件的信息及引用记录。

Drupal文件对象有一个uri属性,它的形式如public://myfile.jpg,通过file_create_url($file->uri)可以把uri转换成web可访问的路径,如http://howto.eguidedog.net/sites/default/files/myfile.jpg

Drupal内建了public、private和temporary流报装器(stream wrapper),PHP文件操作函数可以直接操作这些uri,例如我们可以通过filesize(‘public://myfile.jpg')获取文件大小,而不需要先转换成本地文件的地址。

Drupal中的private目录应该是放在一个不能直接从Web访问的目录,其内容通过PHP返回(这里有一个副作用是增加了系统开销)。

2. 怎样保存managed file类型文件

 

藏语

admin 提交于 周四, 12/23/2021 - 09:47

藏语有三大方言:卫藏(U-Tsang)、康巴(kham)、安多(amdo)

藏文有点类似韩语,把拼音组合成一个藏文字。但是一个藏文字可由多个字符组成,并且代表声调的字符会和前一个字符共享一块空间。

藏文规则

Drupal站点子目录无法被访问的解决方法

admin 提交于 周四, 11/25/2021 - 11:25

参考:https://www.drupal.org/node/30334

在Drupal的.htaccess似乎禁用了子目录,在.htaccess里增加以下几行可以允许指定目录被访问:

  RewriteEngine on
  #
  # stuff to let through (ignore)
  RewriteCond %{REQUEST_URI} "/folder1/" [OR]
  RewriteCond %{REQUEST_URI} "/folder2/"
  RewriteRule (.*) $1 [L]

标签