Heim Web-Frontend HTML-Tutorial Drupal 7 模块开发 建立模块 第一个页面(hook_menu)_html/css_WEB-ITnose

Drupal 7 模块开发 建立模块 第一个页面(hook_menu)_html/css_WEB-ITnose

Jun 24, 2016 am 11:50 AM

建立模块请参考 《Drupal 7 模块开发 建立》

如果你要支持中文,文件格式必须保存为 UTF-8,NO BOM

------------------------------

hook_menu 定义菜单项和页面反馈。

我们要用自己模块名替换 hook。在这里我们建立一个 my_first_module_menu() 在 my_first_module.module文件里

<?phpfunction my_first_module_menu() {  $items = array();    $items['mypage'] = array(    'title' => '第一个模块 ?? 页面', //菜单项的名称    'description' => '我的第一个模块页面', //当鼠标移动到菜单项,显示菜单的说明    'page callback' => 'my_page_view', //产生页面内容    'access callback' => TRUE, //所有人都能访问    'type' => MENU_NORMAL_ITEM, //菜单项显示类型  );    return $items;}function my_page_view() {  $output = t('这是模块做的第一个页面。');  return $output;}
Nach dem Login kopieren

注意:结尾不要写 ?>

清空Cache,然后访问 http://www.mysite.com/?q=mypage ,会看到下图

(事实上,这时你访问任何 http://www.mysite.com/?q=mypage/aaa/bbb 都会访问到这个page)

$items[] 路径

  • $items先在 [ ] 里定义路径,在访问 /mypage 页面时候,去调用 my_page_view 函数产生页面
  • 每一个$items都是对应一个路径,写在 [ ] 里。当item用一样路径时候,就调用后写那个$items的。(有文章说和$items里参数weight有关,我测试weight不会影响先后次序)

  • [ ] 里也可以用通配符,譬如: [node/%/edit]。详细参见:function hook_menu 里的Wildcards in Paths一段

  • title 必须

    未翻译的主题

    title callback

    产生主题的函数。默认是 t()。如果你不想翻译,就设置FALSE (所以我们不必再写 'title' => t('第一个表单'))

    title arguments

    传递到 t() 或者 你自定义函数 的参数。可以和路径组件结合
    参考:Menu item title and description callbacks, localization

    description

    未翻译的说明描述。

    page callback

    当用户访问页面路径的时候,调用一个显示网页的函数。

    如果不写,父菜单的回调函数将代替执行。也就是说 $items['mypage'] 和 $items['mypage/child'] 会执行一样内容。

    有一个特别回调函数 drupal_get_form(),这个将在后面 Drupal 7 模块开发 建立、验证、提交表单(Form) 具体讲

    page arguments

    传递给 page callback 函数的一串参数数组,上面例子没用用到,我们稍加修改:

  • 修改一下 $items,路径成为 $items['mypage/%/edit'],意思是当访问 mypage/1/edit,或者 mypage/2/edit 等,执行此函数
  • 添加 page arguments:'page arguments' => array('hello', 1),
    ‘hello' 作为一个常量传给 $arg1
    1 表示路径mypage后面第一层:当你访问 mypage/1/edit 时候,返回就是 1;如果你访问 mypage/world/edit,返回就是world
  • 给函数 my_page_view增加传递参数, function my_page_view($arg1, $arg2)
  • 修改后,完整代码如下:

    <?phpfunction my_first_module_menu() {  $items = array();    $items['mypage/%/edit'] = array( //修改路径    'title' => '第一个模块 ?? 页面',    'description' => '我的第一个模块页面',    'page callback' => 'my_page_view',    'page arguments' => array('hello', 1), //添加参数    'access callback' => TRUE,    'type' => MENU_NORMAL_ITEM,  );    return $items;}function my_page_view($arg1, $arg2) { //添加参数传递  $output = t('这是模块做的第一个页面。');  $output .= '<br />' . $arg1 . ' ' . $arg2; //打印参数  return $output;}
    Nach dem Login kopieren


    清空Cache,然后访问 http://www.mysite.com/?q=mypage/world/edit ,会看到下图

    access callback

    如果有访问这页权限,就要返回TRUE,否则就FALSE(如果不写,默认是FALSE)。如果false,页面就会出现 Access denied 提示。

    type

    描述菜单项属性的代码。许多快捷代码的常量在 menu.inc 里。

    我们这里用了默认项 MENU_NORMAL_ITEM,所以$items里可以不写 'type' => MENU_NORMAL_ITEM,

    常用几种:

  • MENU_NORMAL_ITEM,显示在Navigation菜单列表下,管理员可以拖动或隐藏
  • MENU_SUGGESTED_ITEM,和MENU_NORMAL_ITEM一样,只是默认状态是Disabled的,需要管理员去手工Enabled
  • MENU_CALLBACK 不会产生菜单和面包屑(Breadcrumbs)。只是简单注册一个路径,当路径被访问时,执行相应功能。通常是被API调用。
  • MENU_LOCAL_ACTION 在父菜单里,显示一个link,引导下步操作。譬如:添加一个菜单
  • MENU_LOCAL_TASK 也是作为一个link,不过通常是以标签(TAB)格式显示
  • MENU_DEFAULT_LOCAL_TASK 和 MENU_LOCAL_TASK 一样是标签(TAB),不过是默认标签,和父菜单路径一样(这个itmes的路径只是表达是父菜单)
  • 想深入了解,可以打开目录下 /modules/menu/menu.modules文件,然后结合http://www.yoursite.com/?q=admin/structure/menu/manage/navigation,帮助你了解

    menu_name

    如果你不要把这个菜单项放在Navigation下,就可以在这里指定。譬如:'menu_name' => 'main-menu',这样就会和Home一起出现在主菜单上

    (更多参数,慢慢完善)

    ??

    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

    Heiße KI -Werkzeuge

    Undresser.AI Undress

    Undresser.AI Undress

    KI-gestützte App zum Erstellen realistischer Aktfotos

    AI Clothes Remover

    AI Clothes Remover

    Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

    Undress AI Tool

    Undress AI Tool

    Ausziehbilder kostenlos

    Clothoff.io

    Clothoff.io

    KI-Kleiderentferner

    Video Face Swap

    Video Face Swap

    Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

    Heißer Artikel

    <🎜>: Bubble Gum Simulator Infinity - So erhalten und verwenden Sie Royal Keys
    1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
    Nordhold: Fusionssystem, erklärt
    1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
    Mandragora: Flüstern des Hexenbaum
    4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

    Heiße Werkzeuge

    Notepad++7.3.1

    Notepad++7.3.1

    Einfach zu bedienender und kostenloser Code-Editor

    SublimeText3 chinesische Version

    SublimeText3 chinesische Version

    Chinesische Version, sehr einfach zu bedienen

    Senden Sie Studio 13.0.1

    Senden Sie Studio 13.0.1

    Leistungsstarke integrierte PHP-Entwicklungsumgebung

    Dreamweaver CS6

    Dreamweaver CS6

    Visuelle Webentwicklungstools

    SublimeText3 Mac-Version

    SublimeText3 Mac-Version

    Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

    Heiße Themen

    Java-Tutorial
    1677
    14
    PHP-Tutorial
    1280
    29
    C#-Tutorial
    1257
    24
    HTML: Die Struktur, CSS: Der Stil, JavaScript: Das Verhalten HTML: Die Struktur, CSS: Der Stil, JavaScript: Das Verhalten Apr 18, 2025 am 12:09 AM

    Die Rollen von HTML, CSS und JavaScript in der Webentwicklung sind: 1. HTML definiert die Webseitenstruktur, 2. CSS steuert den Webseitenstil, und 3. JavaScript fügt ein dynamisches Verhalten hinzu. Zusammen bauen sie den Rahmen, die Ästhetik und die Interaktivität moderner Websites auf.

    Die Zukunft von HTML, CSS und JavaScript: Webentwicklungstrends Die Zukunft von HTML, CSS und JavaScript: Webentwicklungstrends Apr 19, 2025 am 12:02 AM

    Die zukünftigen Trends von HTML sind Semantik und Webkomponenten, die zukünftigen Trends von CSS sind CSS-in-JS und CssShudini, und die zukünftigen Trends von JavaScript sind WebAssembly und serverlos. 1. HTML -Semantik verbessern die Zugänglichkeits- und SEO -Effekte sowie Webkomponenten die Entwicklungseffizienz, aber der Browserkompatibilität sollte die Aufmerksamkeit geschenkt werden. 2. CSS-in-JS verbessert die Flexibilität des Stilmanagements, kann jedoch die Dateigröße erhöhen. CssShudini ermöglicht den direkten Betrieb des CSS -Renderings. 3.Webassembly optimiert die Browser -Anwendungsleistung, verfügt jedoch über eine steile Lernkurve, und serverloses vereinfacht die Entwicklung, erfordert jedoch eine Optimierung von Kaltstartproblemen.

    Die Zukunft von HTML: Evolution und Trends im Webdesign Die Zukunft von HTML: Evolution und Trends im Webdesign Apr 17, 2025 am 12:12 AM

    Die Zukunft von HTML ist voller unendlicher Möglichkeiten. 1) Neue Funktionen und Standards umfassen mehr semantische Tags und die Beliebtheit von Webcomponenten. 2) Der Webdesign -Trend entwickelt sich weiterhin für reaktionsschnelles und zugängliches Design. 3) Die Leistungsoptimierung verbessert die Benutzererfahrung durch reaktionsschnelle Bildlade- und faulen Ladetechnologien.

    HTML vs. CSS vs. JavaScript: Ein vergleichender Überblick HTML vs. CSS vs. JavaScript: Ein vergleichender Überblick Apr 16, 2025 am 12:04 AM

    Die Rollen von HTML, CSS und JavaScript in der Webentwicklung sind: HTML ist für die Inhaltsstruktur verantwortlich, CSS ist für den Stil verantwortlich und JavaScript ist für dynamisches Verhalten verantwortlich. 1. HTML definiert die Webseitenstruktur und den Inhalt durch Tags, um die Semantik zu gewährleisten. 2. CSS steuert den Webseitenstil über Selektoren und Attribute, um es schön und einfach zu lesen. 3. JavaScript steuert das Verhalten von Webseiten über Skripte, um dynamische und interaktive Funktionen zu erzielen.

    HTML vs. CSS und JavaScript: Vergleich von Webtechnologien HTML vs. CSS und JavaScript: Vergleich von Webtechnologien Apr 23, 2025 am 12:05 AM

    HTML, CSS und JavaScript sind die Kerntechnologien zum Erstellen moderner Webseiten: 1. HTML Definiert die Webseitenstruktur, 2. CSS ist für das Erscheinen der Webseite verantwortlich.

    Jenseits von HTML: Wesentliche Technologien für die Webentwicklung Jenseits von HTML: Wesentliche Technologien für die Webentwicklung Apr 26, 2025 am 12:04 AM

    Um eine Website mit leistungsstarken Funktionen und guten Benutzererfahrungen zu erstellen, reicht HTML allein nicht aus. Die folgende Technologie ist auch erforderlich: JavaScript verleiht Webseiten dynamisch und interaktiv, und Echtzeitänderungen werden durch den Betrieb von DOM erreicht. CSS ist für den Stil und das Layout der Webseite verantwortlich, um die Ästhetik und die Benutzererfahrung zu verbessern. Moderne Frameworks und Bibliotheken wie React, Vue.js und Angular verbessern die Entwicklungseffizienz und die Struktur der Codeorganisation.

    Was ist der Unterschied zwischen & lt; stark & ​​gt;, & lt; b & gt; Tags und & lt; em & gt;, & lt; i & gt; Tags? Was ist der Unterschied zwischen & lt; stark & ​​gt;, & lt; b & gt; Tags und & lt; em & gt;, & lt; i & gt; Tags? Apr 28, 2025 pm 05:42 PM

    Der Artikel erörtert die Unterschiede zwischen HTML -Tags, und sich auf ihre semantischen und präsentierenden Verwendungen und ihre Auswirkungen auf SEO und Barrierefreiheit konzentrieren.

    HTML als Markup -Sprache: seine Funktion und ihren Zweck HTML als Markup -Sprache: seine Funktion und ihren Zweck Apr 22, 2025 am 12:02 AM

    Die Funktion von HTML besteht darin, die Struktur und den Inhalt einer Webseite zu definieren, und der Zweck besteht darin, eine standardisierte Möglichkeit zur Anzeige von Informationen bereitzustellen. 1) HTML organisiert verschiedene Teile der Webseite über Tags und Attribute wie Titel und Absätze. 2) Es unterstützt die Trennung von Inhalten und Leistung und verbessert die Wartungseffizienz. 3) HTML ist erweiterbar, sodass benutzerdefinierte Tags SEO verbessern können.

    See all articles