插件目录大致如下图所示
start.php 是一个插件的入口跟识别文件
建立相关文件之后 进入admin管理后台 -plugin 设置中激活 helloworld插件。
pages目录跟views目录分别充当着控制器跟视图的角色
代码如下:
<?php
/**
** hello world 插件
*start.php
*/
elgg_register_event_handler('init', 'system', 'hello_word_init');
function hello_word_init() {
elgg_register_page_handler('hello', 'hello_page_handler');
$item = new ElggMenuItem('hello', 'Hello', 'hello/world');
elgg_register_menu_item('site', $item);
elgg_register_menu_item('page', array(
'name' => 'world',
'text' => 'Hello world',
'href' => 'hello/world',
'contexts' => array('hello'),
));
elgg_register_menu_item('page', array(
'name' => 'dolly',
'text' => 'Hello dolly',
'href' => 'hello/dolly',
'contexts' => array('hello'),
));
}
function hello_page_handler($page, $identifier) {
$plugin_path = elgg_get_plugins_path();
$base_path = $plugin_path . 'hello_world/pages/hello_world';
switch ($page[0]) {
case 'world':
require "$base_path/world.php";
break;
case 'dolly':
require "$base_path/dolly.php";
break;
default:
echo "request for $identifier $page[0]";
break;
}
// return true to let Elgg know that a page was sent to browser
return true;
}
//end file of start.php
<?php
/**
* dolly.php
*/
$user = elgg_get_logged_in_user_entity();
$title = "My second page";
$content = 'hello dolly';
$vars = array(
'content' => $content,
);
$body = elgg_view_layout('one_sidebar', $vars);
echo elgg_view_page($title, $body);
//end file of dolly.php
<?php
/**
* world.php
*/
$time=date('Y-m-d H:i:s',time());
$title = "My first page";
//$content = "Hello, World! <br>".$time;
$content=elgg_echo('hello:word');
$vars = array(
'content' => $content,
);
$body = elgg_view_layout('one_sidebar', $vars);
echo elgg_view_page($title, $body);
//end file of wolrd.php
<?php
/**
* 语言包
*/
$english = array(
'hello:word'=>'您好!!',
);
add_translation("en", $english);
?>
- 大小: 3.5 KB
分享到:
相关推荐
在本文中,我们将深入探讨如何使用C#进行ActiveX控件的开发,以及与之相关的文档源码。ActiveX是一种技术,允许开发人员创建可重用的组件,这些组件可以在不同的应用程序之间共享,特别是在Web应用中。C#,作为.NET...
默认情况下,Android Studio会自动生成一个简单的"Hello, World!"程序,包含一个MainActivity.java文件。在这里,你会看到一个标准的Android生命周期方法,如onCreate(),这是每个Activity首次创建时被调用的地方。 ...
德尔福发动机管理系统 德尔福集团公司是全球规模最大、产品种类最丰富的汽车零部件、系统和模块供应商。 德尔福曾为美国通用汽车公司的零部件部门。1998年脱离通用汽车公司,成为独立的上市公司,并于1999年2月在...
德尔福防盗系统培训手册 德尔福智能型发动机锁止防盗控制器(Immobilizer)的优点如下: 1. 新一代安全可靠的汽车电子防盗系统 2. 是全球主要汽车制造厂的标准配置,包括了通用、福特、奥迪、大众、欧宝、奔 驰、...
该映像基于基本Ubuntu映像,并提供了用于运行Google Cloud Functions的环境,以进行开发和测试。 在上可用。 用法 在哪里放置云功能代码 Cloud Functions应该放置在/root/functions目录中,其中每个子目录都包含...
例如,当碳氢化合物(HC)排放超过0.40g/km,一氧化碳(CO)超过3.20g/km,氮氧化物(NOx)超过0.60g/km时,装有EOBD系统的车辆必须点亮故障指示灯(MIL)并记录下诊断故障码(DTC)。需要注意的是,这些排放限值是...
车内can数据文件 通讯矩阵 一般都是汽车厂的重要机密文件 可以大大节省破解原车数据的时间! 新手也可以了解车内总线信息, 加深对汽车的理解
在Android平台上,开发游戏是许多开发者热衷的领域,这些小游戏源码的分析将帮助我们深入理解游戏开发的原理和技巧。"三款经典android小游戏源码分析.7z"这个压缩包包含了三款不同风格的游戏:简单的贪吃蛇、三颗牌...
几乎所有程序员的第一堂课都是学习helloworld程序,下面我们先来重温一下经典的C语言helloworl 代码如下: /* hello.c */ #include int main() { printf(“hello world!\n”); return 0; } 这...
简单的贪吃蛇源码 一:实现原理 通过自定义view,然后根据小蛇的移动速度来不停的更新,绘制界面。 二:效果如下 三:核心实现 1:小蛇的位置是由很多点来绘制完成的,里面的点全部装在里面ArrayList里面。 2:在...
Ajax请求跨域问题一直是Web开发中的常见挑战,由于浏览器的安全机制——同源策略,使得不同源的脚本无法互相操作。本文将深入探讨Ajax请求跨域的原理,并提供两种有效的解决方案。 首先,理解同源策略至关重要。...
基于Kotlin的Dropwizard原型如何使用dropwizard创建Kotlin项目(交互模式) mvn archetype:generate -...请确保使用诸如HelloWorld类的驼峰单词,因为它用于生成Configuration和Application类,例如HelloWorl
概括 :fire: 的 。 安装 npm install reason-loadable --save 然后在“ bsconfig.json”中添加“ reason-loadable”: " bs-dependencies " : [ " reason-loadable " ] 您现在可以使用“ ... /* HelloWorl
1. Android系统架构:理解Linux内核、库层、应用程序框架层以及应用程序层之间的关系,知道每一层的主要职责。 2. Activity生命周期:深入理解Activity的各个状态(如暂停、停止、运行等)及其转换过程,并能编写...
这个程序可能是在一个简单的图形用户界面(GUI)或文本模式下运行,例如DOS环境。 首先,我们要理解汇编语言的基本概念。每条汇编指令都代表一条特定的机器语言命令。程序员使用助记符来编写代码,这些助记符比二...
Kvaser是一家知名的CAN接口设备和软件供应商,其产品广泛应用于CAN网络的开发和测试。 描述中提到,这个工具能够"查看 dbc 文件"并"对规范的 can_通讯矩阵的查看编辑"。这表明DbEdit3软件提供了一个用户界面,允许...
个人征信系统是现代金融体系中的重要组成部分,它帮助金融机构评估客户的信用状况,从而做出合理的信贷决策。在中国,个人征信行业正逐步从央行主导的传统模式转变为市场化运作,这一变革将对社会经济产生深远影响。...
JavaScript是一种高级的编程语言,它广泛应用于网页开发中,用于增强网页的动态效果和用户交互功能。在JavaScript中,字符串处理是常见的需求之一,而字符串的截取是处理字符串的基本操作之一。本文将详细介绍...