`
gegewu0825
  • 浏览: 47445 次
社区版块
存档分类
最新评论

简单的elgg 开源系统下的helloworl插件开发

 
阅读更多

插件目录大致如下图所示


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程序及文档源码

    在本文中,我们将深入探讨如何使用C#进行ActiveX控件的开发,以及与之相关的文档源码。ActiveX是一种技术,允许开发人员创建可重用的组件,这些组件可以在不同的应用程序之间共享,特别是在Web应用中。C#,作为.NET...

    003_android之 第一个helloWorld程序

    默认情况下,Android Studio会自动生成一个简单的"Hello, World!"程序,包含一个MainActivity.java文件。在这里,你会看到一个标准的Android生命周期方法,如onCreate(),这是每个Activity首次创建时被调用的地方。 ...

    德尔福发动机管理系统.pdf

    德尔福发动机管理系统 德尔福集团公司是全球规模最大、产品种类最丰富的汽车零部件、系统和模块供应商。 德尔福曾为美国通用汽车公司的零部件部门。1998年脱离通用汽车公司,成为独立的上市公司,并于1999年2月在...

    10.德尔福防盗系统培训手册version4.pdf

    德尔福防盗系统培训手册 德尔福智能型发动机锁止防盗控制器(Immobilizer)的优点如下: 1. 新一代安全可靠的汽车电子防盗系统 2. 是全球主要汽车制造厂的标准配置,包括了通用、福特、奥迪、大众、欧宝、奔 驰、...

    docker-google-cloud-functions-emulator:用于开发和测试目的的用于运行Google Cloud Functions的Docker映像

    该映像基于基本Ubuntu映像,并提供了用于运行Google Cloud Functions的环境,以进行开发和测试。 在上可用。 用法 在哪里放置云功能代码 Cloud Functions应该放置在/root/functions目录中,其中每个子目录都包含...

    德尔福-OBD介绍.pdf

    例如,当碳氢化合物(HC)排放超过0.40g/km,一氧化碳(CO)超过3.20g/km,氮氧化物(NOx)超过0.60g/km时,装有EOBD系统的车辆必须点亮故障指示灯(MIL)并记录下诊断故障码(DTC)。需要注意的是,这些排放限值是...

    凯迪拉克 ct6 动力系统 通讯矩阵.dbc

    车内can数据文件 通讯矩阵 一般都是汽车厂的重要机密文件 可以大大节省破解原车数据的时间! 新手也可以了解车内总线信息, 加深对汽车的理解

    三款经典android小游戏源码分析.7z

    在Android平台上,开发游戏是许多开发者热衷的领域,这些小游戏源码的分析将帮助我们深入理解游戏开发的原理和技巧。"三款经典android小游戏源码分析.7z"这个压缩包包含了三款不同风格的游戏:简单的贪吃蛇、三颗牌...

    C语言之没有main函数的helloworld示例

    几乎所有程序员的第一堂课都是学习helloworld程序,下面我们先来重温一下经典的C语言helloworl 代码如下: /* hello.c */  #include     int main()  {   printf(“hello world!\n”);   return 0;  }  这...

    简单的贪吃蛇源码.zip

    简单的贪吃蛇源码 一:实现原理 通过自定义view,然后根据小蛇的移动速度来不停的更新,绘制界面。 二:效果如下 三:核心实现 1:小蛇的位置是由很多点来绘制完成的,里面的点全部装在里面ArrayList里面。 2:在...

    Ajax请求跨域问题解决方案分析

    Ajax请求跨域问题一直是Web开发中的常见挑战,由于浏览器的安全机制——同源策略,使得不同源的脚本无法互相操作。本文将深入探讨Ajax请求跨域的原理,并提供两种有效的解决方案。 首先,理解同源策略至关重要。...

    archetype-dropwizard-kotlin:基于Kotlin的Dropwizard应用程序的Maven原型

    基于Kotlin的Dropwizard原型如何使用dropwizard创建Kotlin项目(交互模式) mvn archetype:generate -...请确保使用诸如HelloWorld类的驼峰单词,因为它用于生成Configuration和Application类,例如HelloWorl

    reason-loadable:sp SuspenseLazy for ReasonReact

    概括 :fire: 的 。 安装 npm install reason-loadable --save 然后在“ bsconfig.json”中添加“ reason-loadable”: " bs-dependencies " : [ " reason-loadable " ] 您现在可以使用“ ... /* HelloWorl

    方正_安卓面试题.7z

    1. Android系统架构:理解Linux内核、库层、应用程序框架层以及应用程序层之间的关系,知道每一层的主要职责。 2. Activity生命周期:深入理解Activity的各个状态(如暂停、停止、运行等)及其转换过程,并能编写...

    汇编语言实例--案例10显示彩色矩形块

    这个程序可能是在一个简单的图形用户界面(GUI)或文本模式下运行,例如DOS环境。 首先,我们要理解汇编语言的基本概念。每条汇编指令都代表一条特定的机器语言命令。程序员使用助记符来编写代码,这些助记符比二...

    Kvaser_can_dbc_文件查看编辑器.7z

    Kvaser是一家知名的CAN接口设备和软件供应商,其产品广泛应用于CAN网络的开发和测试。 描述中提到,这个工具能够"查看 dbc 文件"并"对规范的 can_通讯矩阵的查看编辑"。这表明DbEdit3软件提供了一个用户界面,允许...

    中国个人征信行业报告—应时而生、雏形初现、任重道远.pdf

    个人征信系统是现代金融体系中的重要组成部分,它帮助金融机构评估客户的信用状况,从而做出合理的信贷决策。在中国,个人征信行业正逐步从央行主导的传统模式转变为市场化运作,这一变革将对社会经济产生深远影响。...

    js字符串截取函数substr substring slice使用对比

    JavaScript是一种高级的编程语言,它广泛应用于网页开发中,用于增强网页的动态效果和用户交互功能。在JavaScript中,字符串处理是常见的需求之一,而字符串的截取是处理字符串的基本操作之一。本文将详细介绍...

Global site tag (gtag.js) - Google Analytics