今天我利用别人的include.php、mian.php文件在DEMO环境中做了一些调整和修改,发现原来实现主题配置制作起来真的很简单。
我将别人的include.php文件直接拷贝过来,
PHP
<?php//注册插件RegisterPlugin('BAndW','ActivePlugin_BAndW');function ActivePlugin_BAndW(){ Add_Filter_Plugin('Filter_Plugin_Admin_TopMenu', 'BAndW_AddMenu');}function BAndW_AddMenu(&$menus){ global $zbp; $menus[] = MakeTopMenu('root', 'BAndW主题配置', $zbp->host . 'zb_users/theme/BAndW/main.php', '', 'topmenu_BAndW');}function InstallPlugin_BAndW(){ global $zbp; }function UninstallPlugin_BAndW(){ global $zbp; }?>
在里面,我仅替换了一个字符,就是把别人的XXX主题替换成我的“BAndW”主题了。这个运行看来基本正常。也就是说,include.php程序没有太多需要我们修改的,只是对接的一个必要手段。重点还在main.php那个文件中。昨天,我们展示了Gravatar头像插件中include.php,其中,在load阶段,有一系列的数值调用,通过这些调用加上一些表单因素,我们就可以简单的制作出一个单文本内容配置框了:
PHP
<?phprequire '../../../zb_system/function/c_system_base.php';require '../../../zb_system/function/c_system_admin.php';$zbp->Load();$action='root';if (!$zbp->CheckRights($action)) {$zbp->ShowError(6);die();}if (!$zbp->CheckPlugin('BAndW')) {$zbp->ShowError(48);die();}$blogtitle="BAndW主题配置";if(isset($_POST['weibonet'])){ global $zbp; $zbp->Config('BAndW')->weibonet = $_POST['weibonet']; $zbp->SaveConfig('BAndW'); $zbp->ShowHint('good');}require $blogpath . 'zb_system/admin/admin_header.php';require $blogpath . 'zb_system/admin/admin_top.php';?><div id="divMain"> <div class="divHeader2"><?php echo $blogtitle;?></div> <div class="SubMenu"></div> <div id="divMain2"> <form id="form-postdata" name="form-postdata" method="post" enctype="multipart/form-data" action="main.php"> <table width="100%" border="1" width="100%" class="tableBorder"> <tr> <th scope="col" height="32" width="150px">配置项</th> <th scope="col">配置内容</th> <th scope="col" width="500px">使用说明</th> </tr> <tr> <td scope="row">底部微博链接</td> <td><input name="weibonet" type="text" value="<?php echo $zbp->Config('BAndW')->weibonet; ?>"></input></td> <td>底部微博超链接地址,http://开头</td> </tr> </table> <br/> <input class="button" type="submit" value="保存设置" /> </form> </div></div><?phprequire $blogpath . 'zb_system/admin/admin_footer.php';?>
在加载时,我们定义了一个叫“weibonet”的值。然后,做了一个简单的table加上一些文本域,把文本域里填入的值赋予了相应变量。这样,保存后,我们在相应zblogPHP模板上配置{$zbp->Config('BAndW')->weibonet;},保存后就可以改变对应的值了。明白了这个,我们就很容易做出多行文本框和按钮来,就像:
PHP
//按钮:<input name="XXXXXX" type="text" class="checkbox" style="display:none;" value="<?php echo $zbp->Config('主题')->XXXXXX; ?>"></input>//多行文本框:<textarea name="XXXXXX" type="text"><?php echo $zbp->Config('主题')->XXXXXX; ?></textarea>
会了这个以后,就够我忙活一阵子的了。加上IF逻辑判断,我们可以轻松的使用按钮开关来进行逻辑判断,也可以将一些写死的代码做成灵活的变量了。就像这样:
PHP
{if $zbp->Config('主题')->判断按钮 == ""}{$MeGetList = GetList($zbp->Config('主题')->某个值);}{else}{$MeGetList = "";}{/if}
很容易吧。有了这几个选项,我们就可以从“主题设置插件”里面挣脱出来了。下面就是一些多媒体和替代之类的工作要做。