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

 找回密码
 立即注册
搜索

【全局化模板】个人主页模板和个人子页模板统一de方法

[复制链接]
psdshow 发表于 2009-4-2 15:14:26 | 显示全部楼层 |阅读模式
本帖最后由 psdshow 于 2009-7-16 22:34 编辑

看到不少人在寻找各人模板与个人子页模板统一的方法
我的前一段时间调整了一下 实现了统一
演示查看http://home.ningyuan.me/2 (链接就不加了,复制到地址栏去查看吧)

方法是修改了2个程序文件 仅加了小段代码 不影响原先程序使用
修改了大量原来的模板文件,因为原来的文件css导致统一时严重错位

修改前请先备份。

找到space.php文件

  1. //获取空间
  2. if($uid) {
  3.         $space = getspace($uid, 'uid', 0);
  4. } elseif ($username) {
  5.         $space = getspace($username, 'username', 0);
  6. } elseif ($domain) {
  7.         $space = getspace($domain, 'domain', 0);
  8. } else {
  9.         if(empty($_SGLOBAL['supe_uid'])) {
  10.                 if ($do != 'mtag') {
  11.                         ssetcookie('_refer', rawurlencode($_SERVER['REQUEST_URI']));
  12.                         showmessage('to_login', 'do.php?ac='.$_SCONFIG['login_action']);
  13.                 }
  14.         } else {
  15.                 $space = getspace($_SGLOBAL['supe_uid'], 'uid', 0);
  16.         }
  17. }
复制代码

换行后加入

  1. //风格
  2. $_SGLOBAL['space_theme'] = $space['theme'];
  3. $_SGLOBAL['space_css'] = $space['css'];
复制代码



在uchome根目录下的cp.php找到下面的代码

  1. //获取空间信息
  2. $space = getspace($_SGLOBAL['supe_uid']);
  3. if(empty($space)) {
  4.         showmessage('space_does_not_exist');
  5. }
复制代码
换行后在后面加入
  1. //风格
  2. $_SGLOBAL['space_theme'] = $space['theme'];
  3. $_SGLOBAL['space_css'] = $space['css'];
复制代码
文件userapp.php文件找到 约16行
  1. //空间信息
  2. $space = getspace($_SGLOBAL['supe_uid']);
复制代码
换行后在后面加入
  1. //风格
  2. $_SGLOBAL['space_theme'] = $space['theme'];
  3. $_SGLOBAL['space_css'] = $space['css'];
复制代码
在network.php中找到 约35行
  1. $space = $_SGLOBAL['supe_uid']?getspace($_SGLOBAL['supe_uid']):array();
复制代码
换行后在后面加入
  1. //风格
  2. $_SGLOBAL['space_theme'] = $space['theme'];
  3. $_SGLOBAL['space_css'] = $space['css'];
复制代码
后面大部分是调整模板template\default\下的模板文件的工作了,太多的模板需要调整了,不调整的话严重变形,
主要是页面模板中包含<div class="tabs_header">的,将前面一个区块的内容调整到这个区块后面去就可以了
回复

使用道具 举报

朱杰 发表于 2009-4-2 16:05:56 | 显示全部楼层
本帖最后由 朱杰 于 2009-4-2 16:07 编辑

楼上很强大。
关于错位的解决:重新定义个人主页的导航栏,并且绝对定位。
就是把在HTM文件中,<div class="tabs_header">中的这个"tabs_header"换成另外的元素,随便换一个,比如“NAVE”然后在CSS中对这个进行定义。 个人主页的CSS也要对这段进行定义才行,并把导航栏做成绝对定位,浮在页面上方。
其他地方的都是小修改了。
回复

使用道具 举报

 楼主| psdshow 发表于 2009-4-2 17:16:50 | 显示全部楼层
其实我也觉得改css是可以解决这个问题的
不过偶试了一下调整css未能解决问题
所以改动模板了
况且导航条放出来看起来也蛮舒服滴
回复

使用道具 举报

www21cucom 发表于 2009-4-3 12:35:44 | 显示全部楼层
后面大部分是调整模板template\default\下的模板文件的工作了,太多的模板需要调整了,不调整的话严重变形,
主要是页面模板中包含<div class="tabs_header">的,将前面一个区块的内容调整到这个区块后面去就可以了

后面这部分  不知道怎么搞。。郁闷。。。。
回复

使用道具 举报

 楼主| psdshow 发表于 2009-4-3 15:31:25 | 显示全部楼层
举个例子
比如network_header.htm模板文件
  1. <h2 class="title"><img src="image/icon/network.gif">随便看看<!--{if $_TPL[titles][0]}--> - $_TPL[titles][0]<!--{/if}--></h2>
  2. <div class="tabs_header">
  3.         <ul class="tabs">
  4.                 <li$actives[index]><a href="network.php"><span>全部</span></a></li>
  5.                 <li$actives[doing]><a href="network.php?ac=doing"><span>记录</span></a></li>
  6.                 <li$actives[blog]><a href="network.php?ac=blog"><span>日志</span></a></li>
  7.                 <li$actives[album]><a href="network.php?ac=album"><span>相册</span></a></li>
  8.                 <li$actives[share]><a href="network.php?ac=share"><span>分享</span></a></li>
  9.                 <li$actives[thread]><a href="network.php?ac=thread"><span>话题</span></a></li>
  10.                 <li$actives[mtag]><a href="network.php?ac=mtag"><span>群组</span></a></li>
  11.                 <li$actives[space]><a href="network.php?ac=space"><span>成员</span></a></li>
  12.         </ul>
  13. </div>
复制代码


变更为

  1. <div class="tabs_header">
  2.         <ul class="tabs">
  3.                 <li$actives[index]><a href="network.php"><span>全部</span></a></li>
  4.                 <li$actives[doing]><a href="network.php?ac=doing"><span>记录</span></a></li>
  5.                 <li$actives[blog]><a href="network.php?ac=blog"><span>日志</span></a></li>
  6.                 <li$actives[album]><a href="network.php?ac=album"><span>相册</span></a></li>
  7.                 <li$actives[share]><a href="network.php?ac=share"><span>分享</span></a></li>
  8.                 <li$actives[thread]><a href="network.php?ac=thread"><span>话题</span></a></li>
  9.                 <li$actives[mtag]><a href="network.php?ac=mtag"><span>群组</span></a></li>
  10.                 <li$actives[space]><a href="network.php?ac=space"><span>成员</span></a></li>
  11.         </ul>
  12. </div>

  13. <h2 class="title"><img src="image/icon/network.gif">随便看看<!--{if $_TPL[titles][0]}--> - $_TPL[titles][0]<!--{/if}--></h2>
复制代码
回复

使用道具 举报

xiangshu 发表于 2009-4-14 19:16:11 | 显示全部楼层
不起作用啊
回复

使用道具 举报

 楼主| psdshow 发表于 2009-4-14 23:52:56 | 显示全部楼层
不起作用啊
xiangshu 发表于 2009-4-14 19:16


请确认做了这一部分工作

主要是页面模板中包含<div class="tabs_header">的,将前面一个区块的内容调整到这个区块后面去就可以了

看示例
回复

使用道具 举报

朱杰 发表于 2009-6-8 15:17:33 | 显示全部楼层
顶一下 ((em:01))
回复

使用道具 举报

冰芝客 发表于 2009-6-8 15:26:22 | 显示全部楼层
顶一下哈哈
回复

使用道具 举报

 楼主| psdshow 发表于 2009-7-16 22:35:36 | 显示全部楼层
原来少了一段导致好几个朋友说不行
现在已经补上
抱歉抱歉
找到space.php文件

  1. //获取空间
  2. if($uid) {
  3.         $space = getspace($uid, 'uid', 0);
  4. } elseif ($username) {
  5.         $space = getspace($username, 'username', 0);
  6. } elseif ($domain) {
  7.         $space = getspace($domain, 'domain', 0);
  8. } else {
  9.         if(empty($_SGLOBAL['supe_uid'])) {
  10.                 if ($do != 'mtag') {
  11.                         ssetcookie('_refer', rawurlencode($_SERVER['REQUEST_URI']));
  12.                         showmessage('to_login', 'do.php?ac='.$_SCONFIG['login_action']);
  13.                 }
  14.         } else {
  15.                 $space = getspace($_SGLOBAL['supe_uid'], 'uid', 0);
  16.         }
  17. }
复制代码
换行后加入

  1. //风格
  2. $_SGLOBAL['space_theme'] = $space['theme'];
  3. $_SGLOBAL['space_css'] = $space['css'];
复制代码
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-10 10:47 , Processed in 0.106562 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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