Archive for “ February 22nd, 2008 ”
22
Feb
Post on 16:55, February 22, 2008, by Sue Zhou

最终效果:

使用图片的提交按钮,并且该图片按钮具备鼠标动作——当鼠标移动到图片按钮上时,图片改变——一种视觉上的动态效果。

硬件道具:

两张 .gif 格式的图片,其中一个命名为: searchButton.gif,另一个命名为: searchButton.gif_hover.gif 。 这两张图片保存在:<Joomla! 1.5安装路径>\images\M_images\ 文件夹下。该文件夹下已有一张名为 searchButton.gif 的原始图片,选择覆盖。

后台操作:

Extensions -> Module Manager, 选择 mod_search 类型的的搜索模块,进入编辑 Edit。右边的参数设置 Parameters 关于按钮部分设置如下:

  • Search button -> Yes
  • Button Position -> Top/Bottom/Left/Right
  • Search button as image -> Yes —— 这里的注释解释了上一步硬件道具的名字和位置的限制原因,显然不是我BT (Note: Use an image as button. This image has bo be named searchButton.gif and must be located in \images\M_images\ )
  • Button Text -> 输入 & nbsp; ——中间没有空格,这样是为了解除必需有值的限制,不过如果你本意就是在图片上显示文字,则输入相应文字。

代码修改:

这里是根据 Joomla! 1.5版本自带的一个模版 beez (不是默认模版)修改而来,目前还没有check是否和默认模版里的代码雷同。

文件路径:<Joomla! 1.5安装路径>\templates\<所选择的模版>\html\mod_search\default.php

首先删除7-9行的关于label的那段代码,多了个label严重破坏整个网站的美观性。舍不得删除的就用注释符注释掉好了。

其次在原15行的地方,将原代码:

$button = '<input type="image" value="'.$button_text.'" class="button'.$moduleclass_sfx.'" src="'.$img.'" mce_src="'.$img.'"/>';

改为:

$button = '<input type="image" value="'.$button_text.'" class="button'.$moduleclass_sfx.'" src="'.$img.'" mce_src="'.$img.'" onmouseover="this.src=".$img.'_hover.gif\';" onmouseout="this.src=".$img.'\';" />'; 

千万注意单引号双引号的对称性,已经正反斜杠的作用。

保存一下该文件就成了。进行本地 localhost 转移到 live server 上时,只需要复制你使用的template以及位于 \images\M_images\ 下的两张按钮效果图片。

========

昨天把所有modules, components, plugins, templates几个文件夹的关于search的代码全读了。开始没看到关于图片的特别说明,一直试图hacker人家图片名字来着,走错了路子,后来终于灵光一现的救俺自己于水火/年角尖中。其实hacker完了之后发现巨巨巨简单。

今天往live server上搬,结果又找不到昨儿改的哪个文件,又是一通瞎执腾,结果是图片没上传上去=_=

痛定思痛,于是决定一定一定一定得记下来,以备我100%的下次再忘的毛病。

Category: 分享  Leave a Comment
22
Feb
Post on 15:22, , by Sue Zhou

半个月前,LP的客服突然给我来了封email,说到我现在所在的server空间快满了,如果我没有意见的话就帮我换个宽松的“居住”环境。本着乐善好施的精神,俺答应了。

结果,搬迁到的新server所在的IP段被伟大的中国共产党给毙了。第一时间的投诉对象就是俺亲爱的爸妈——“日记又看不到啦!!o(>_<)o ”,于是乎开始了和LP客服温漫漫的发现问题解决问题的道路。

一个个server换,客服让俺一个个的测试trace route 和ping的结果,导致我经常在国内凌晨一点的时候满中国的抓苦力壮丁。这里特别隆重鸣谢小帅和小马两位同学吃苦耐劳舍己为人的精神。由于我都不好意思再抓壮丁帮我测试server了,并且美国英国中国三国强大的时差拖延导致事情一个星期了都没有完美解决,加之某熊无理取闹的投诉我搬家与他的帐户“分居”两个server。一怒之下对客服大发雷霆,坚持要求一定必需绝对迅速立刻马上把我的帐户迁回原籍,速还我的耳根子清静。就这样事后还被训话一番——再也不许做出任何形式上事实上的“分居”行为,连想都不许想……ToT

搬回原server后,发现新发的一篇日志连同小可爱同学的评论都丢了,考虑到是篇转贴,再贴一遍都比跟客服继续沟通要省事的多,于是做罢。结果,刚刚,在我试图再现丢失的那篇日志时,屡次出现错误命令,说俺没有ABCDE的权限等等,折腾了几次之后直奔后台数据库,直接执行数据插入命令,问题解决了,但是头痛呀,这不又落一把柄在某熊手上了嘛,跑不了又是一份爱的教育,不干不干嘛 o(>_<)o

不知道还有多少后遗症等待我的发现与解决呀,凄凄切切惨惨兮……

============

补记:上一篇日志发布不成功的原因姑且认为被我找到了—— wordpress的编辑器不允许出现 “. htaccess” (中间没有空格)的字样,否则报错,不过我咋不知道从啥时候起WP开始这么矫情了?更何况我好多年没有升级了 =_=b

Category: 生活  2 Comments

原贴地址: http://www.joomlagate.com/content/view/139/29/

=============

自从 Joomla! 1.5 发布 RC 版本开始,大家都关心一个问题:在 Joomla! 1.5 上,我们如何建造论坛?大多数用户的看法是一致的:整合外部论坛仍然是非常必要的。我也一直坚持认为,从头开发一个论坛组件很辛苦,对于用户来说要等到功能成熟也很辛苦。只要有可能,我们就应该“站在巨人的肩膀上”。因此,我一直关注着 Joomla! 1.5 平台的论坛桥接器。

近半年来,呼声最高的就是 Rocketwerx 团队所提出的 RocBridge 桥接器。大约在2007年7月他们就开始了这项工作。前一阵他们开发小组闹别扭,人员重新组合,我还担心这个桥接器是否要夭折了。昨天终于看到 Rocbridge rc1 发布了。

鉴于 Joomla! 论坛曾发生过一场非常激烈的关于许可协议(License)的争论,RocBridge 从一开始就提出:该桥接器将不需要修改(Hack)任何 Joomla! 1.5 或 phpbb3 的核心文件,即不具有破坏性(non-invasive)。这一点听起来似乎挺好,但我认为会增加桥接器开发的难度,并且限制桥接器的功能—— 关于这一点以后细谈,今天简单介绍一下 RocBridge 的安装过程。

使用 RocBridge 之前的注意事项

下载 RocBridge 桥接器之后,请首先解压。然后打开 INSTALL.php 文件,认真阅读。本文内容主要是对该文件的翻译和解释。

  1. Rocbridge 只适用于在 Joomla! 1.5 平台整合 phpbb3 论坛
  2. 你的服务器端 php 必须支持 MySQL 和 Zlib (如果不清楚,请与空间商联系解决);虽然 Rocbridge 可以在 IIS 服务器上运行,但是最佳平台还是 Apache
  3. 如果你想使用 SEF 功能,那么你的服务器端 apache 必须启用 mod_rewrite 模块,并且你有权限使用 . htaccess 文件。
  4. 安装Joomla! 1.5 stable并确保运行正常
  5. 安装phpbb3并确保运行正常(必须安装在 Joomla! 1.5 的某个子目录中,桥接器默认为 distribution 目录)
  6. phpbb3 可以安装在 Joomla! 1.5 的数据库中,也可以使用另外一个数据库
  7. RocketWerx 在 JoomlaCode.org 有自己的项目主页:http://joomlacode.org/gf/project/rocketwerx/frs/ ,你可以去那里查看 Rocbridge 桥接器的最新进展。

RocBridge 桥接器安装过程

  1. 将 joomla15-bridge.tar.gz 桥接器主文件解压到 Joomla! 1.5 的根目录下,这将在 Joomla! 1.5 的根目录下创建一个新文件夹 forum
  2. 通过 Joomla! 1.5 后台的“扩展管理”安装 joomla15-authentication.tar.gz 和 joomla15-user.tar.gz 插件
  3. 在 Joomla! 1.5 后台的“插件管理”中,启用刚才安装的两个插件,并且检查一下它们的参数。都只有一个参数,是桥接器的安装目录,默认应该是 forum,即第一步创建的新目录。
  4. 将 phpBB3-authentication.tar.gz 文件解压到 phpbb3 的根目录下,这将在 phpbb3 原有的 /includes/auth/ 目录中增加一个 auth_joomla.php 文件
  5. 登录到 phpBB3 管理员后台,点击左侧导航栏的“客户端通信 -> 认证设定”(Client communication -> Authentication),然后在第一项“选择认证方式”(authentication method)这里选择“Joomla”作为认证途径。

我已经将 phpbb 安装到 /forum 目录了,怎么办?

本来 RocBridge 要求将桥接器本身解压,生成 forum 目录;现在已经有了 forum 这个目录,就不能直接解压了。你必须在本地先解压,然后修改桥接器目录名称,如改为 bbs ,然后打开该目录中的configuration.php 文件,在大约第 15 行找到如下代码:

var $phpbb_path = ‘distribution’;

这里的“distribution”本来是默认的 phpbb 安装目录,必须修改为你现在实际上已安装 phpbb3 的目录名称 forum。

然后,将整个 bbs 文件夹上传到 Joomla! 1.5 的根目录下(不一定是服务器的根目录)。

现在,只完成了一半工作。前面安装的两个插件:joomla15-authentication.tar.gz 和 joomla15-user.tar.gz ,其后台参数中都要求提供桥接器的安装目录,默认已经填写了 forum,但是现在情况有变,就必须更改为实际的桥接器目录,即 bbs。

至此,修改完成。你可以开始运行桥接器了。

RocBridge 的 SEF 功能如何使用?

大家注意到,伴随桥接器还有一个 htaccess.txt 文件。仔细阅读,里面就说得很清楚,需要把下面一段代码插入到你已有的 Joomla! 1.5 本身的 . htaccess 文件中“定义 Joomla! 核心 SEF 的代码”之前。当然,这个前提就是你的 Joomla! 1.5 已经启用了 SEF 并且开启了 mod_rewrite,否则这个 . htaccess 文件就是摆设。

要插入的代码是(或许以后 Rocbridge 版本改变后此代码也会更改,请以你所安装的桥接器版本为准):

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteRule ^/forum/ forum/index.php [L]

在 Joomla! 1.5 根目录下找到 . htaccess 文件,把上述4行代码插入到下面的代码之前并保存:

########## Begin – Joomla! core SEF Section

接下来,还必须在桥接器的配置中开启 SEF,即打开桥接器文件夹(默认是 forum)中的 configuration.php 文件,在第 24 行和 27 行,分别将两处的 0 修改为 1 即可启用 SEF 功能。

结果测试

在两个浏览器窗口中分别打开 Joomla! 1.5 和 phpbb3 前台首页,你可以使用 Joomla! 1.5 或 phpbb3 的用户名(至少都有一个管理员用户吧)登录到 Joomla! 1.5,然后刷新 phpbb3 的页面,就会发现也自动登录了;反之,你在 phpbb3 前台使用任何一个用户名登录,再去刷新 Joomla! 1.5 的页面,发现也已自动登录。注销也是一样。

对于 rocbridge 给 phpbb 带来的 SEF 我很不满意,因为生成的 URL 是这样的:

http://localhost/15/phpbb/viewtopic.php?f=2&t=1

猜测一下:上面 URL 中的 f =2 意思是指版块(forum) ID 为 2,t =1 意思是指话题(topic)ID 为 1,因为这是整个论坛的第一个帖子(默认安装后的示范帖)。

我不满意是因为 URL 中仍然有 ? 和 & 符号,这是 SEF 所不允许的。虽然有人说,Google 官方网站的 URL 中一直都有这两个符号,他们的 PR 值还很高;但是我们说的是 SEF 的定义,不是说 SEF 的效果。

Rocbridge 使用点评

上述整合过程是让 phpbb3 在 Joomla! 1.5 界面之外独立运行,只是实现了用户整合,可以一次注册,同步登录。

但是,相信很多人希望 phpbb3 能够嵌入在 Joomla! 1.5 之中运行,这样能保持全站统一的风格。就像本站通过 JSMF 桥接器整合 SMF 论坛一样。

这种嵌入如果简单地通过 Joomla! 1.5 的 wrapper 功能来实现,则有一个弊端:点击论坛中的链接后,浏览器地址栏的 URL 不能动态更新。这就给分享信息及实现 SEF 带来了困难。

我认为要真正做到像 JSMF 桥接器那样优秀,Rocbridge 就必须以 Joomla! 1.5 标准组件的形式出现,然后用户将论坛的菜单指向该桥接器组件,这样才能通过桥接器文件的 reWrite 实现 phpbb3 嵌入,以及嵌入后的动态 URL 和 SEF。

Category: 分享  4 Comments