会员登录

联系我们

电话:18921289006

传真:0510-88804819

EMAIL: 这个 E-mail 受所垃圾邮件程序保护,您需要启用 JavaScript 才能查看。

手记

最近刚写了一个joomla网站的移动模板插件,就试着用phonegap生成一个安卓应用试试,打开http://phonegap.com/download/#下载 phonegap套件,然后去http://developer.android.com/sdk/index.html 下载安卓开发套件。

下载好两个套件后解压,打开安卓开发套件,发现eclipse目录,打开eclipse.exe,

在eclipse 顶部菜单第一个File点击打开看到下面有一个Import,点击打开,打开Android,

->Existing Android Code Into Workspace,点击打开后

第一行browse打开刚刚phonegap 解压的目录,例:phonegap-2.9.0\lib\android\example,找到example目录点击,

看到下面的列表里会出现选择项,点击下面的finish,这样演示效果的project 导入成功。

在左边的工作台看到

Example工作树:点击打开libs,选择cordova-2.9.0.jar点击右键,打开选择

build Path.

然后直接打开刚刚example的目录,找到assets-> www里面的index.html文件进行编辑,把代码替换成

你的网址换成你的网站的网址。保存。再回到eclipse,左边点击选择example工作树根目录,把你的安卓手机连上电脑,用金山卫士或者豌豆荚装好驱动后,确认已开启USB调试模式后。点击上面的调试图标,或者run菜单 , ctrl+F11进行调试,选择andriod application选择你连接的的手机,测试,应用将会自动安装到你手机上.

打开手机点击你的应用。一切Ok。

阅读全文:用phonegap打包Joomla网站移动模板生成安卓应用手记

类别:开发手记 发布于 2013-07-03, 周三 16:39 作者 Super User 点击数:5519

 

<p>这篇文章主要是针对那些不太了解PHP,HMTL和JavaScriptr的人,告诉你如何轻松的用Joomla1.5 API calls将JavaScript添加到模板中去.<br /> 用以下代码将 javascript库文件  路径为/media/system/js/sample.js添加到模板中去:</p>
<hr id="system-readmore" />
<p><br /> <br /></p>
<pre>&lt;?php
$document = &amp;JFactory::getDocument();
$document-&gt;addScript( '/media/system/js/sample.js' );
?&gt;</pre>
<p>你也可以用JHTML方法来添加一个JavaScript文件:</p>
<pre>&lt;?php
   $filename = 'filename.js';
   $path = 'path/to/file/'; // add the path parameter if the path is different than : 'media/system/js/'
   JHTML::script($filename, $path);
?&gt;</pre>
<p>下面多了第三个参数,是个布尔值,如果你想载入MooTools(是一个简洁,模块化,面向对象的JavaScript框架。它能够帮助你更快,更简单地编写可扩展和兼容性强的JavaScript代码)就设该值为TRUE.</p>
<pre>&lt;?php
   $filename = 'filename.js';
   $path = 'path/to/file/'; // add the path parameter if the path is different than : 'media/system/js/'
   JHTML::script($filename, $path, true); // MooTools will load if it is not already loaded
 
?&gt;</pre>
<p>注意:1.6版本可能会有所不同</p>

阅读全文:如何添加JavaScript到模板中去

类别:开发手记 发布于 2013-01-25, 周五 16:46 作者 Super User 点击数:5056

框架(Framework)是整个或部分系统的可重要设计.表现为一组抽象类(abstract classes)和程序实例间交互的方法.一个程序框架包括了支持程序组,代码库和脚 本语言或者其他程序帮助开发及整合该项目程序的不同组件.框架的不同部分可以通过应用程序接口(API)陈列出来.

阅读全文:Joomla 框架

类别:开发手记 发布于 2013-01-25, 周五 16:44 作者 Super User 点击数:6366

为了确保你的模板完全的国际化,必须确保XML 元素被完全翻译并且语言文件清单被定义到templateDetails.xml文件中去.
temlpateDetails.xml文件中的几个元素在模板管理中被使用.

名称 模板名, 例如Beez
描述 模板的描述.

这两个字段在模板安装时也会显示.
添加语言定义文件到templateDetails.XML
所以的语言文件必须在templateDtails.xml文件中声明,每个语言文件有两个<language>元素,一个是前台的,一个是后台的.相关例如下:

<?xml version=”1.0encoding=”utf-8?>
<install version=”1.5type=”template”>
 
     .........
 
    <languages>
        <language tag=”en-GB”>en-GB.tpl_beez.ini</language>
        <language tag=”zh-CN”>zh-CN.tpl_beez.ini</language>     </languages>
 
     .........
 
    <administration>
        <languages folder=”admin”>
            <language tag=”en-GB”>en-GB.tpl_beez.ini</language>
            <language tag=”zh-CN”>zh-CN.tpl_beez.ini</language>
        </languages>
    </administration>
 
</install>

上面的这装了两种语言文件,一个是英文一个是中文,
<administration>....</administration>之间的那个语言文件 是装在后台,与上面的前台设置略有不同.


 

阅读全文:改善templateDetails.xml文件

类别:开发手记 发布于 2013-01-25, 周五 16:42 作者 Super User 点击数:3624

在joomla!里,实现一个MVC模式的组件需要用到JModel, JView and JController类,在这个简单的组件我们需要五个文件:

  • hello.php - 这是组件的入口
  • controller.php - 这个文件包含了基本的控制
  • views/hello/view.html.php -这个文件将必要的数据发布到模板上
  • views/hello/tmpl/default.php - 这是输出的模板
  • hello.xml - 这个XML文件是用来安装组件.

组件入口文件必须和组件同名,如果你将你的组件命名为:kaka,安装该组件时,joomla将在组件文件夹里新建一个com_kaka的文件包,而里面也必须有kaka.php文件,否则将不会起作用.注意不要使用特殊字符如下划线来命名你的组件名和里面的文件名.
建立一个入口文件
joomla!都是通过一个单独的入口文件访问:前台应用是通过/index.php,后台是administrator/index.php,然后再载入组件,以一个'opition' 的值在URL和POST提交的数据里.例如这个组件的URL就应该是:

index.php?option=com_hello&view=hello

这个URL将载入该组件的主体文件,该组件唯一的入口文件:components/com_hello/hello.php.
该文件的典型代码如下:

<?php
/**
* @package Joomla.Tutorials
* @subpackage Components
* components/com_hello/hello.php
* @link http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_1
* @license GNU/GPL
*/
//安全检查 defined( '_JEXEC' ) or die( 'Restricted access' ); // 载入一个控制器文件 require_once( JPATH_COMPONENT.DS.'controller.php' ); // 检查是否需要特定的控制器 if($controller = JRequest::getWord('controller')) { $path = JPATH_COMPONENT.DS.'controllers'.DS.$controller.'.php'; if (file_exists($path)) { require_once $path; } else { $controller = ''; } } // 建立一个控制器 $classname = 'HelloController'.$controller; $controller = new $classname( ); // 完成请求任务 $controller->execute( JRequest::getVar( 'task' ) ); // 页面转向 $controller->redirect();


第一步的声明是用来安全检查的. 如果就可以保证只能从joomla的index.php入口文件访问,而直接访问将被禁止.
JPATH_COMPONENT是现在的组件的绝对路径,这里表意为components/com_hello, 如果你要特定的用到前台组件或者后台组件,可以分别使用 JPATH_COMPONENT_SITE和JPATH_COMPONENT_ADMINISTRATOR.
DS 是你系统的分隔符:  '/' 或者是 '\'. 这是自动设置的,所以开发者不必担心网站所在的服务器操作系统不同分隔符不同的问题. DS 一般都是用在涉及到服务器上某个文件时.
在载入控制器文件后,检查是否需要特殊的控制器,在这个组件里,目前只有一个控制器,这里设置目的是以备不时之需.
JRequest:getVar() 在URL或POST数据里寻找变量. 因此如果我们的URL是index.php?option=com_hello&controller=controller_name, 我们可以使用: echo JRequest::getVar('controller');在组件得控制器的名称.
现在我们有了基本的控制器HelloController在 com_hello/controller.php文件里.如果需要可以再添加诸如:HelloControllerController1的控制器到com_hello/controllers/controller1.php.使用{Componentname}{Controller}{Controllername}'这个标准的命名方法将使N多事变的容易起来.
在控制器建立后,我们命令控制器执行任务,像这样在URL里面定义: index.php?option=com_hello&task=sometask.如果没有任务被设置,将默认为正常的的"display"任务,当"display"开始作用,"view"变量将决定显示哪块区域.其他的一般任务如"保存,新建.......
在例如"保存"的任务被执行后, 控制器决定了转向页面,最后的指令执行了页面的转向.
入口文件(hello.php)实际是通过控制"控制器"来实现完成特定的页面请求.
注意我们没有使用关闭的php代码?>,原因是我们不想输出一些不必要的空白PHP代码,从joomla1.5开始,这成了一种约定俗成,将被使用到纯的PHP代码文件里.
建立一个控制器
这个组件仅仅只有一个任务-世界你好,因此,控制器将会非常简单,不需要任何的数据处理.仅仅是需要一个适当的显示被载入即可.在这个控制器中只有生个方法display();大部分的需要的功能都已内建进JController类,所以我们只需要调用JController::display() 方法即可.
基本的控制器代码如下:

<?php
/**
* @package Joomla.Tutorials
* @subpackage Components
* @link http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_1
* @license GNU/GPL
*/
// No direct access defined( '_JEXEC' ) or die( 'Restricted access' ); jimport('joomla.application.component.controller'); /**
* Hello World Component Controller
*
* @package Joomla.Tutorials
* @subpackage Components
*/
class HelloController extends JController { /**
* Method to display the view
*
* @access public
*/
function display() { parent::display(); } }

JController构造函数都默认注册为display(),除非特别指定其他方法(用registerDefaultTask() 方法),这样将被设为 正常的任务. 其实在个display()方法,根本就没有必要,因为在继承了父类后,父的类的函数一起被调用了,这么 为了让你更直观的了解控制器.   JController::display() 方法决定了显示的名称和来自于页面请求的布局并且上载这个视图并设置布 当你为你的组件新建一个菜单项目时,菜单管理里面将允许管理员用菜单链接选择想要的视图和特定的布局,一个视图 通常是相关于一组数据如:一组车的清单,一辆车的信息等等,布局就如显示的方式,就如文章组件里面的,列表显示 这个组件里将将会有一个视图(view):hello,和一个布局(layout):default .

新建一个视 图 :
视图的任务非常简单,检索要被显示的数据然后将到显示到模板上即可.显示到模板使用JView::assignRef()方法.代码如下:

<?php
/**
* @package Joomla.Tutorials
* @subpackage Components
* @link http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_1
* @license GNU/GPL
*/
// no direct access defined( '_JEXEC' ) or die( 'Restricted access' ); jimport( 'joomla.application.component.view'); /**
* HTML View class for the HelloWorld Component
*
* @package HelloWorld
*/
class HelloViewHello extends JView { function display($tpl = null) { $greeting = "Hello World!"; $this->assignRef( 'greeting', $greeting ); parent::display($tpl); } }


建立一个模板
Joomla模板或者称之为布局是规则的PHP文件用来以特定的风格来布局来自视图的数据.这些变量通过 JView::assignRef 方法进行分配,可以使用  $this->{propertyname} 从模板进行存取.(示例如下).
这个模板非常简单,仅仅是显示了一句问候语:

<?php
 
// No direct access
 
defined('_JEXEC') or die('Restricted access'); ?>
<h1><?php echo $this->greeting; ?></h1>

将以上文件全部打包压缩,建立 Creating the hello.xml 文件:
安装一个组件可以使用FTP上传文件,修改数据库表即可,而对于一般人来说,这有点困难.而这个是一个更

有效的建立一个文件夹来让JOOMLA的安装来自动安装.这个压缩的文件将包含有一个信息变量如下:

  • 组件的基本描述(例如组件名), 可选项, 描述, 版权 和许可信息.
  • 一组需要安装的文件清单.
  • 可选项, 一些附加的安装和卸载操作.
  • 可选项, 数据库的数据查询语句和根据安装和卸载的一些数据执行命令.
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<install type="component" version="1.5.0">
 <name>Hello</name>
 <!-- The following elements are optional and free of formatting conttraints -->
 <creationDate>2007-02-22</creationDate>
 <author>John Doe</author>
 <authorEmail>
 这个 E-mail 受所垃圾邮件程序保护,您需要启用 JavaScript 才能查看。
 </authorEmail>
 <authorUrl>http://www.example.org</authorUrl>
 <copyright>Copyright Info</copyright>
 <license>License Info</license>
 <!--  The version string is recorded in the components table -->
 <version>1.01</version>
 <!-- The description is optional and defaults to the name -->
 <description>Description of the component ...</description>
 
 <!-- Site Main File Copy Section -->
 <!-- Note the folder attribute: This attribute describes the folder
to copy FROM in the package to install therefore files copied
in this section are copied from /site/ in the package -->
<files folder="site"> <filename>controller.php</filename> <filename>hello.php</filename> <filename>index.html</filename> <filename>views/index.html</filename> <filename>views/hello/index.html</filename> <filename>views/hello/view.html.php</filename> <filename>views/hello/tmpl/default.php</filename> <filename>views/hello/tmpl/index.html</filename> </files> <administration> <!-- Administration Menu Section --> <menu>Hello World!</menu> <!-- Administration Main File Copy Section --> <files folder="admin"> <filename>hello.php</filename> <filename>index.html</filename> </files> </administration> </install>


还有一些文件是要被安装的,如index.html,这个文件一定要放在第一个文件夹里以防止那些人可以通过直接访问文件包来得到文件清单,如果没有该文件,一些服务器会列出文件夹的文件清单,这样就太不安全了.
这个文件可以只需包括这样一句代码如下:
<html><body bgcolor="#FFFFFF"></body></html>
显示一个简单的空白页面.

阅读全文:开发一个基于MVC模式的简单的组件一

类别:开发手记 发布于 2013-01-25, 周五 16:42 作者 Super User 点击数:2997

如果要自定义一个模块样式(module chrome),必须先在当前模板的html文件夹里新建一个modules.php文件,列如:templates/TEMPLATE_NAME(默认模板)/html/modules.php。
在这个文件里你必须定义一个叫modChrome_STYLE的函数,STYLE也就是你样式的名称,这个函数有个三个变量参数,$module, &$params, 和&$attribs,例如:

阅读全文:自定义joomla模块的样式(module chrome)

类别:开发手记 发布于 2013-01-25, 周五 16:41 作者 Super User 点击数:4264


在第一部分里用Joomla1.5的框架建立了一个简单的视图-控制器的组件,在第一部分建的组件视图
部分就是一句问候.没有完全基于MVC模式,主要是由于视图是故意仅仅是显示一组数据而不是包含它.第二部分将介绍如何将些移出视图而把它放在模型中去.在下面我们将会意识到这种设计模式强大的功能和灵活性.
建立一个模型
模型(Model)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“模型”有对数据直接访问的权利,例如对数据库的访问。“模型 ”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何被操作。但是模型中数据的变化一般会通过一种刷新机制被公布。为了实现这种机 制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可以了解在数据模型上发生的改变。
在joomla框架里模型的命名约定俗成类的名字和该组件的名字一起作为开始在前面(例如这个示例的组件名"hello",就是hello后面在跟着模型名,所以我们该类的名字就应该叫:HelloModleHello.

这里,我们只有一个模型的行为,就是检索返回问候.于是我们就有一个方法:getGreeting(),它将非常简单的返回字符串"Hello World".
代码如下:

<?php
/**
* Hello Model for Hello World Component
*
* @package Joomla.Tutorials
* @subpackage Components
* @link http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_2
* @license GNU/GPL
*/
// No direct access defined( '_JEXEC' ) or die( 'Restricted access' ); jimport( 'joomla.application.component.model' ); /**
* Hello Model
*
* @package Joomla.Tutorials
* @subpackage Components
*/
class HelloModelHello extends JModel { /**
* Gets the greeting
* @return string The greeting to be displayed to the user
*/
function getGreeting() { return 'Hello, World!'; } }

你应该会注意到开始有一行带有jimport,jimport函数是用来载入joomla的框架来满足该组件的需求.
这个特殊的声明将载入/libraries/joomla/application/component/model.php文件,'.'点是文件夹的分隔符,最后一个就是要载入的文件.所有与libraries文件夹相关的文件都被载入.这个特别的文件包含了JModel 类的定义.我们的模型的类必须要继续该类.
现在我们人模型已经建立好了,我们必须修改视图文件来获得这个问候.
使用模型
joomla的框架是这样的一个流程,控制器将会自动的载入与view视图同名的model模型,然后将数据在发送到视图,我们的视图叫"hello",我们的叫"hello"的模型将会被自动的载入然后发到视图.因此我们可以轻松的用JView::getModel()从我们的模型里返回一个引用.(如果这个模型没有按照这个约定,我们必须指定一个名字给JView::getModel());
我们之前的代码包含了这样一行:

$greeting = "Hello World!";</pre>
为了利用模型 ,我们可更改为:
$model =& $this->getModel();
$greeting = $model->getGreeting();
完整的视图代码应该像这样: <pre> <?php /**
* @package Joomla.Tutorials
* @subpackage Components
* @link http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_2
* @license GNU/GPL
*/
// No direct access defined( '_JEXEC' ) or die( 'Restricted access' ); jimport( 'joomla.application.component.view'); /**
* HTML View class for the HelloWorld Component
*
* @package HelloWorld
*/
class HelloViewHello extends JView { function display($tpl = null) { $model =& $this->getModel(); $greeting = $model->getGreeting(); $this->assignRef( 'greeting', $greeting ); parent::display($tpl); } }

添加文件到安装包里: 添加一个条目到XML文件里去以让我们的新的模型文件在安装时被复制安装上去 ,这样Joomla!框架 在安装时才将会在模型的文件夹里寻找这个模型文件,像下面这样:

<filename>models/hello.php</filename>

新的XML文件应应该像下面这样:

<?xml version="1.0" encoding="utf-8"?>
<install type="component" version="1.5.0">
 <name>Hello</name>
 <!-- The following elements are optional and free of formatting conttraints -->
 <creationDate>2007-02-22</creationDate>
 <author>John Doe</author>
 <authorEmail>
 这个 E-mail 受所垃圾邮件程序保护,您需要启用 JavaScript 才能查看。
 </authorEmail>
 <authorUrl>http://www.example.org</authorUrl>
 <copyright>Copyright Info</copyright>
 <license>License Info</license>
 <!--  The version string is recorded in the components table -->
 <version>1.01</version>
 <!-- The description is optional and defaults to the name -->
 <description>Description of the component ...</description>
 
 <!-- Site Main File Copy Section -->
 <!-- Note the folder attribute: This attribute describes the folder
to copy FROM in the package to install therefore files copied
in this section are copied from /site/ in the package -->
<files folder="site"> <filename>controller.php</filename> <filename>hello.php</filename> <filename>index.html</filename> <filename>models/hello.php</filename> <filename>models/index.html</filename> <filename>views/index.html</filename> <filename>views/hello/index.html</filename> <filename>views/hello/view.html.php</filename> <filename>views/hello/tmpl/default.php</filename> <filename>views/hello/tmpl/index.html</filename> </files> <administration> <!-- Administration Menu Section --> <menu>Hello World!</menu> <!-- Administration Main File Copy Section --> <files folder="admin"> <filename>hello.php</filename> <filename>index.html</filename> </files> </administration> </install>


现在,我们就有一个基于MVC模型设计的组件了,虽然非常简单,却是强大和灵活的.

阅读全文:开发一个基于MVC的组件二

类别:开发手记 发布于 2013-01-25, 周五 16:40 作者 Super User 点击数:3007

 

<p>在前面两部分,已经了解了怎么建立一个简单MVC模式的组件.之前视图从模块取得数据,而模块的数据就是一个硬编码字符,而这一节,将要数据库里的数据取而代之.了解模型如何用JClass类从数据库的表取得数据.<br /> 之前的模型已有经了一个方法:getGreeting(),这个方法非常简单,返回一个硬编码字符的问候.<br /> 为了使看起来更好了解一些,我们将从数据库载入一个问候.稍候再介绍如何建立一个数据库文件并在xml添加适当的代码以使表和一些示例数据在组件安装时添加到数据库去.现在先简单替换掉返回声明以直接的从数据库检索数据并返回它.<br /> 第一步是获得一个数据库的对象,自从Joomla!有这个数据作为它的正常的运作,数据库的连接实际上已经存在.因此你就没有必要自己再建立一个连接.引用一个数据库可以用以下代码:<br /> <span class="re0">$db</span> =&amp; JFactory::<span class="me2">getDBO</span><span class="br0">(</span><span class="br0">)</span>;<br /> JFactory是一个静态的类,用来检索引用大量的系统的对象.方法名 (getDBO) 是为了得到一个数据库对象,记住它非常简单但也是非常重要.<br /> 现在已经获得一个数据库对象,下一步就可以从检索数据.<br /> 第一步就是将查询语句存在对象中<br /> 第二步载入结果<br /> 新的getGreeting() 方法于是看起来就应该像这样:</p>
<pre class="source-php"><span class="kw2">function</span> getGreeting<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
   <span class="re0">$db</span> =&amp; JFactory::<span class="me2">getDBO</span><span class="br0">(</span><span class="br0">)</span>;
 
   <span class="re0">$query</span> = <span class="st0">'SELECT greeting FROM #__hello'</span>;
   <span class="re0">$db</span>-&gt;<span class="me1">setQuery</span><span class="br0">(</span> <span class="re0">$query</span> <span class="br0">)</span>;
   <span class="re0">$greeting</span> = <span class="re0">$db</span>-&gt;<span class="me1">loadResult</span><span class="br0">(</span><span class="br0">)</span>;
 
   <span class="kw1">return</span> <span class="re0">$greeting</span>;
<span class="br0">}</span></pre>
<p>hello是一会将要建的数据库的表的名, greeting是是存在表里的字段的名称.<br /> $db-&gt;loadResult()方法将会执行查询并将返回第一个字段的第一行的数据结果.</p>
<h2><span class="mw-headline">建立一个安装的数据库文件</span></h2>
<p>是oomla安装已经嵌入一个可以在安装组件期间支持执行查询,这些查询都存在标准的文本文件里.我们将有三个查询在我们的安装文件里,首先如果是数据库已经存在这个表就将之删除,第二建立一个含用适当字段的表,第三插入数据.<br /> 如下:</p>
<pre class="source-php">DROP TABLE <span class="kw1">IF</span> EXISTS `<span class="co2">#__hello`;</span>
 
CREATE TABLE `<span class="co2">#__hello` (</span>
  `id` int<span class="br0">(</span><span class="nu0">11</span><span class="br0">)</span> NOT <span class="kw2">NULL</span> auto_increment,
  `greeting` varchar<span class="br0">(</span><span class="nu0">25</span><span class="br0">)</span> NOT <span class="kw2">NULL</span>,
  PRIMARY <span class="kw3">KEY</span>  <span class="br0">(</span>`id`<span class="br0">)</span>
<span class="br0">)</span> ENGINE=MyISAM AUTO_INCREMENT=<span class="nu0">0</span> <span class="kw2">DEFAULT</span> CHARSET=utf8;
 
INSERT INTO `<span class="co2">#__hello` (`greeting`) VALUES ('Hello, World!'),</span>
<span class="br0">(</span><span class="st0">'Bonjour, Monde!'</span><span class="br0">)</span>,
<span class="br0">(</span><span class="st0">'Ciao, Mondo!'</span><span class="br0">)</span></pre>
<p>可能你会觉得这些表的前辍非常奇怪,其实joomla会用现在的前辍替换掉它,一般都是jos_,安装你可以设定前辍,这样就可以在一个数据库安装几个不同的joomla数据.<br /> 将这些语句存储在 install.utf.sql文本文件里.</p>
<h3><span class="mw-headline">建立一个卸载时的SQL文件</span></h3>
<p><br /> 这个只需要一个查询语句即可:</p>
<pre class="source-php">DROP TABLE <span class="kw1">IF</span> EXISTS `<span class="co2">#__hello`;</span>
存储在uninstall.utf.sql文件里.
 
</pre>
<p><br /> 升级一下安装文件<br /> 我们需要对xml安装文件作些变动,第一步我们需要添加以上的两个文件以便安装.SQL安装要放在管理文件夹里,第二就是在安装时通知安装程序执行查询语句,<br /> 示例如下:</p>
<pre class="source-xml"><span class="sc3"><span class="re1">&lt;?xml</span> <span class="re0">version</span>=<span class="st0">"1.0"</span> <span class="re0">encoding</span>=<span class="st0">"utf-8"</span><span class="re2">?&gt;</span></span>
<span class="sc3"><span class="re1">&lt;install</span> <span class="re0">type</span>=<span class="st0">"component"</span> <span class="re0">version</span>=<span class="st0">"1.5.0"</span><span class="re2">&gt;</span></span>
 <span class="sc3"><span class="re1">&lt;name<span class="re2">&gt;</span></span></span>Hello<span class="sc3"><span class="re1">&lt;/name<span class="re2">&gt;</span></span></span>
 <span class="sc3"><span class="coMULTI">&lt;!-- The following elements are optional and free of formatting conttraints --&gt;</span></span>
 <span class="sc3"><span class="re1">&lt;creationDate<span class="re2">&gt;</span></span></span>2007-02-22<span class="sc3"><span class="re1">&lt;/creationDate<span class="re2">&gt;</span></span></span>
 <span class="sc3"><span class="re1">&lt;author<span class="re2">&gt;</span></span></span>John Doe<span class="sc3"><span class="re1">&lt;/author<span class="re2">&gt;</span></span></span>
 <span class="sc3"><span class="re1">&lt;authorEmail<span class="re2">&gt;</span></span></span> 这个 E-mail 受所垃圾邮件程序保护,您需要启用 JavaScript 才能查看。 <span class="sc3"><span class="re1">&lt;/authorEmail<span class="re2">&gt;</span></span></span>
 <span class="sc3"><span class="re1">&lt;authorUrl<span class="re2">&gt;</span></span></span>http://www.example.org<span class="sc3"><span class="re1">&lt;/authorUrl<span class="re2">&gt;</span></span></span>
 <span class="sc3"><span class="re1">&lt;copyright<span class="re2">&gt;</span></span></span>Copyright Info<span class="sc3"><span class="re1">&lt;/copyright<span class="re2">&gt;</span></span></span>
 <span class="sc3"><span class="re1">&lt;license<span class="re2">&gt;</span></span></span>License Info<span class="sc3"><span class="re1">&lt;/license<span class="re2">&gt;</span></span></span>
 <span class="sc3"><span class="coMULTI">&lt;!--  The version string is recorded in the components table --&gt;</span></span>
 <span class="sc3"><span class="re1">&lt;version<span class="re2">&gt;</span></span></span>3.01<span class="sc3"><span class="re1">&lt;/version<span class="re2">&gt;</span></span></span>
 <span class="sc3"><span class="coMULTI">&lt;!-- The description is optional and defaults to the name --&gt;</span></span>
 <span class="sc3"><span class="re1">&lt;description<span class="re2">&gt;</span></span></span>Description of the component ...<span class="sc3"><span class="re1">&lt;/description<span class="re2">&gt;</span></span></span>
 
 <span class="sc3"><span class="coMULTI">&lt;!-- Site Main File Copy Section --&gt;</span></span>
 <span class="sc3"><span class="coMULTI">&lt;!-- Note the folder attribute: This attribute describes the folder<br />      to copy FROM in the package to install therefore files copied<br />      in this section are copied from /site/ in the package --&gt;</span></span>
 <span class="sc3"><span class="re1">&lt;files</span> <span class="re0">folder</span>=<span class="st0">"site"</span><span class="re2">&gt;</span></span>
  <span class="sc3"><span class="re1">&lt;filename<span class="re2">&gt;</span></span></span>controller.php<span class="sc3"><span class="re1">&lt;/filename<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;filename<span class="re2">&gt;</span></span></span>hello.php<span class="sc3"><span class="re1">&lt;/filename<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;filename<span class="re2">&gt;</span></span></span>index.html<span class="sc3"><span class="re1">&lt;/filename<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;filename<span class="re2">&gt;</span></span></span>models/hello.php<span class="sc3"><span class="re1">&lt;/filename<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;filename<span class="re2">&gt;</span></span></span>models/index.html<span class="sc3"><span class="re1">&lt;/filename<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;filename<span class="re2">&gt;</span></span></span>views/index.html<span class="sc3"><span class="re1">&lt;/filename<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;filename<span class="re2">&gt;</span></span></span>views/hello/index.html<span class="sc3"><span class="re1">&lt;/filename<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;filename<span class="re2">&gt;</span></span></span>views/hello/view.html.php<span class="sc3"><span class="re1">&lt;/filename<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;filename<span class="re2">&gt;</span></span></span>views/hello/tmpl/default.php<span class="sc3"><span class="re1">&lt;/filename<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;filename<span class="re2">&gt;</span></span></span>views/hello/tmpl/index.html<span class="sc3"><span class="re1">&lt;/filename<span class="re2">&gt;</span></span></span>
 <span class="sc3"><span class="re1">&lt;/files<span class="re2">&gt;</span></span></span>
 
 <span class="sc3"><span class="re1">&lt;install<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;sql<span class="re2">&gt;</span></span></span>
   <span class="sc3"><span class="re1">&lt;file</span> <span class="re0">charset</span>=<span class="st0">"utf8"</span> <span class="re0">driver</span>=<span class="st0">"mysql"</span><span class="re2">&gt;</span></span>install.sql<span class="sc3"><span class="re1">&lt;/file<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;/sql<span class="re2">&gt;</span></span></span>
 <span class="sc3"><span class="re1">&lt;/install<span class="re2">&gt;</span></span></span>
 <span class="sc3"><span class="re1">&lt;uninstall<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;sql<span class="re2">&gt;</span></span></span>
   <span class="sc3"><span class="re1">&lt;file</span> <span class="re0">charset</span>=<span class="st0">"utf8"</span> <span class="re0">driver</span>=<span class="st0">"mysql"</span><span class="re2">&gt;</span></span>uninstall.sql<span class="sc3"><span class="re1">&lt;/file<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;/sql<span class="re2">&gt;</span></span></span>
 <span class="sc3"><span class="re1">&lt;/uninstall<span class="re2">&gt;</span></span></span>
 
 <span class="sc3"><span class="re1">&lt;administration<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="coMULTI">&lt;!-- Administration Menu Section --&gt;</span></span>
  <span class="sc3"><span class="re1">&lt;menu<span class="re2">&gt;</span></span></span>Hello World!<span class="sc3"><span class="re1">&lt;/menu<span class="re2">&gt;</span></span></span>
 
  <span class="sc3"><span class="coMULTI">&lt;!-- Administration Main File Copy Section --&gt;</span></span>
  <span class="sc3"><span class="re1">&lt;files</span> <span class="re0">folder</span>=<span class="st0">"admin"</span><span class="re2">&gt;</span></span>
   <span class="sc3"><span class="re1">&lt;filename<span class="re2">&gt;</span></span></span>hello.php<span class="sc3"><span class="re1">&lt;/filename<span class="re2">&gt;</span></span></span>
   <span class="sc3"><span class="re1">&lt;filename<span class="re2">&gt;</span></span></span>index.html<span class="sc3"><span class="re1">&lt;/filename<span class="re2">&gt;</span></span></span>
   <span class="sc3"><span class="re1">&lt;filename<span class="re2">&gt;</span></span></span>install.sql<span class="sc3"><span class="re1">&lt;/filename<span class="re2">&gt;</span></span></span>
   <span class="sc3"><span class="re1">&lt;filename<span class="re2">&gt;</span></span></span>uninstall.sql<span class="sc3"><span class="re1">&lt;/filename<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/files<span class="re2">&gt;</span></span></span>  
 
 <span class="sc3"><span class="re1">&lt;/administration<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/install<span class="re2">&gt;</span></span></span>
 
 
</pre>
<p><br /> <br /></p>

阅读全文:开发MVC组件之三-数据库

类别:开发手记 发布于 2013-01-25, 周五 16:39 作者 Super User 点击数:2930