Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

[经验] 修改一次,永久避免覆盖UCHome根目录文件的小补丁

[复制链接]
foolant 发表于 2009-11-2 17:47:44 | 显示全部楼层 |阅读模式
本帖最后由 foolant 于 2009-11-2 17:57 编辑

以前下过一些主题,差不多每次都要覆盖 UCHome 根目录里的那几个文件, index.php,network.php,space.php ...每次都要,更换一次主题差不多都要替换一次,很多连 source/ 下面的都换,弄得每次都怕怕,怕重装啊。后来自己改主题,很想能不能不要这样。OK,办法总算找到了...
(以下的请感兴趣的朋友手动进行,我没有提供替换好的文件,因为你也不敢保证我没有往源文件里加东西,要是出什么莫名奇妙的问题恐怕你弄死都找不到原因)

主要函数:
  1. @include_once($filename);  
  2. //包含另一个文件,当文件不存在时只返回 false ,不显示出错信息, 借鉴 UCHome 原版的用法
复制代码
修改的文件位置:UChome 根目录
      修改的文件:UChome  根目录里 common.php 以及所有在文件开头包含 include_once('./common.php'); 这一行的 php 文件 (不需要修改子目录里的)

1. 修改 common.php (common.php 是打开每一页时都首先执行的预配置文件):
    位置中的位置:文件末尾的 ?> 之前加入代码,


  1. // 自定义函数,调用主题文件夹里 hack/ 子目录的文件来替换系统默认模块,
  2. //$filename 使用相对路径(如 'source/space_doing.php' 或者 'index.php' 等等 )
  3. function wee_include($filename) {
  4.         return @include_once(S_ROOT . './template/' . $_SCONFIG['template'] . '/hack/' .$filename);
  5. }

  6. //加载自制函数(如果你有常用函数,可以用这种方式加载,文件夹名称和文件名任意 ,
  7. //即使加了这一行但没有在 Uchome 根目录里建立wee/和wee/functions.php 也不会出异常)
  8. @include_once(S_ROOT.'./wee/functions.php');

  9. //加载主题通用函数,这是 Wordpress 的做法, 如果主题里包含functions.php 则自动加载 , functions.php 要放在 hack/ 文件夹内
  10. @include_once(S_ROOT.'./template/'.$_SCONFIG['template'].'/hack/functions.php');

复制代码
2. 修改 UCHome 根目录里的其他 PHP 文件

如果文件里面开头部分有include_once('./common.php'); 的,在这一行后面加上


  1. //用主题模块替换默认模块
  2. if(wee_include(basename(__FILE__))) exit();
复制代码
然后,在这个文件的后面部分查找是否有 include_once(S_ROOT.‘./【这里是文件路径】 '); 这样的行替换成


  1.         //用主题模块替换默认模块
  2.         if( !wee_include('【这里是文件路径】')) include_once(S_ROOT.'./【这里是文件路径】')

复制代码
注意 “S_ROOT.'./” 里面的“./" 在if( !wee_include('...'); 这里是不需要的。

3.  UChome 默认安装的情况下可能影响模板的文件如下(仅供参考):
admincp.php
app.php
cp.php
do.php
index.php
magic.php
network.php
space.php
userapp.php


以后如果遇到要你替换系统文件的,先在那个主题的目录里建一个hack 文件夹,把那些 PHP 文件放到里面即可,如果无法执行再作处理也不迟。这样的话频繁更换主题来进行测试的时候就方便多了,不用老是去动系统文件。

注意:本方法仅供参考,如遇到问题请回帖反馈以便提醒他人注意,谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-9-15 06:16 , Processed in 0.114445 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表