查看所有包含 article 标签的文章
八月
1

[Hack]将artile模组中的文章的关键词加入到HTML的Meta头中

Author Dominic    Category XOOPS     Tags , , ,

HTML页面的keywords Meta是非常重要的一个Meta,它提供给搜索引擎以指引,告诉当前页面的主要内容,虽然目前很多搜索引擎均不在把把keywords作为唯一标示,但其重要性还是显著的。XOOPS中可以在后台设置Meta Keywords,通过Smarty变量xoops_meta_keywords写入HTML页面,但这种方式导致所有页面的这个Meta头都一样,影响了keywords Meta的效果,修改article模组的view..php文件和主题模板文件即可达到即兼顾系统设置和页面个性化keywords Meta的目的,我们将发布文章的录入的tag显示在HTML Meta头中。

首先修改htdocs\modules\article\view.article.php文件289行附近,

将原来的

if(@include_once _ROOT_PATH.”/modules/tag/include/tagbar.php”){
    $xoopsTpl->assign(‘tagbar’, tagBar($article_obj->getVar(“art_keywords”, “n”)));
}

修改成:

$extra_meta_keywords = $article_obj->getVar(“art_keywords”, “n”);//Modifyed By XuYong 添加tag到html的meta标签
if(@include_once XOOPS_ROOT_PATH.”/modules/tag/include/tagbar.php”){
    $xoopsTpl->assign(‘tagbar’, tagBar($article_obj->getVar(“art_keywords”, “n”)));
    if(!empty($extra_meta_keywords))$extra_meta_keywords = str_replace(tag_get_delimiter(), “,”, $extra_meta_keywords);//Modifyed By XuYong 添加tag到html的meta标签
}
$xoopsTpl -> assign(“extra_meta_keywords”,$extra_meta_keywords);//Modifyed By XuYong 添加tag到html的meta标签

 即通过增加extra_meta_keywords Smarty变量达到个性化keywords Meta 的目的。

再修改站点所用到的主题模板文件theme.html,将原来的

<meta name=”keywords” content=”<{$xoops_meta_keywords}>” />

 修改成

<meta name=”keywords” content=”<{$extra_meta_keywords}>,<{$xoops_meta_keywords}>” />

八月
1

[Hack]让article模组显示的文章打印功能和RSS输出功能使用站点Logo

Author Dominic    Category XOOPS     Tags , ,

article模组中显示的文章的时候下面的工具箱中的打印功能输出页面头部会打印个图片,而这个图片却是article模组xoops_version.php中配置的模块图片,打印出来实在是有些刺眼,RSS输出的地方也是这样。还是改成站点的Logo图片比较好

首先修改htdocs\modules\\print.php文件90行处,

将原来的

$print_data["image"] = _URL . “/modules/” . $xoopsModule->getVar(“dirname”) . “/” . $xoopsModule->getInfo( ‘image’ );

 修改成:

$print_data["image"] = XOOPS_URL . “/images/logo.jpg”;//Modified By XuYong 采用站点Logo

再修改htdocs\modules\article\xml.php 284行附近,

将原来的

“url”            => XOOPS_URL.”/modules/”.$GLOBALS["artdirname"].”/”.$xoopsModule->getInfo(“image”),

修改成:

“url”            => XOOPS_URL.”/images/logo.jpg”,

其中Logo的具体路径要根据实际情况调整。

八月
1

[Hack]解决article模组中添加文章时使用html标签导致段落换行不正确的问题

Author Dominic    Category XOOPS     Tags , ,

article模组发布文章是在编辑器下面有几个选项:“使用HTML标签”、“使用表情图”、“启用Xoops内置码”、“启用换行符(如果启用HTML标签,建议关闭) ”,一般都是选中状态(可能有配置项,但是好像默认是都选中),不明白的是为什么里面都提示“如果启用HTML标签,建议关闭”了就是不把第一个和第四个做成反选(加个Javascript控制一下就可以了),直接导致发布文章之后文章显示会换行2次,在HTML源代码中可以看到在行跟行之间出现了<BR><BR>2次,导致行与行之间多出一个br。

解决办法:编辑htdocs\modules\\edit..php文件111行,

将原来的

$dobr = $article_obj->isNew() || $newpage;

改成:

//Modified By XuYong 根据 $dohtml 调整$dobr默认值
if($dohtml==0)
{
    $dobr = $article_obj->isNew() || $newpage;
}
else
{
    $dobr = 0;
}

 这样设置了“使用HTML标签”就会自动关闭“启用换行符”了。

七月
26

[Hack]让Article模组子分类的文章可以加入到上级分类的专题中

Author Dominic    Category XOOPS     Tags , ,

当在article的某个分类添加了一个专题之后,目前的限制了将该分类下级分类的文章添加到这个专题中,这点限制在我看来不是很合理,作为拥有下级分类的分类,从隶属关系上讲下级分类的文章也应当属于该分类的,而且作为拥有下级分类的文章,这个分类所直接隶属的文章应当非常少,只有放到其下所有分类都不合适的时候,才放入该分类中。

修改htdocs\modules\\cp..php文件212行附近,

原来为:

    unset($subCategories_obj);
    if(!empty($category_id)){
        $criteria = new CriteriaCompo(new Criteria("top_expire", time(), ">"));
        $topics_obj =& $topic_handler->getByCategory($category_id, $xoopsModuleConfig["topics_max"], 0, $criteria, array("top_title"));
        if(count($topics_obj)>0) foreach($topics_obj as $id=>$topic){
            $topics[] = array(

修改为:

    unset($subCategories_obj);
    if(!empty($category_id)){
        $criteria = new CriteriaCompo(new Criteria("top_expire", time(), ">"));
        // by XuYong 子分类的文章可以加入到上级分类的专题中
        $category_pid= 0;
        if(!empty($category_id))$category_pid = $category_obj->getVar("cat_pid");
        //        $topics_obj =& $topic_handler->getByCategory($category_id, $xoopsModuleConfig["topics_max"], 0, $criteria, array("top_title"));
                $topics_obj =& $topic_handler->getByCategory($category_pid, $xoopsModuleConfig["topics_max"], 0, $criteria, array("top_title"));
        //End Hack
        if(count($topics_obj)>0) foreach($topics_obj as $id=>$topic){
            $topics[] = array(
七月
26

[Hack]更改article模组输出feed时时间不对的缺陷

Author Dominic    Category XOOPS     Tags , , , ,

服务时区设置为+8,在命令行行下显示正常,XOOPS中设置服务器所在时区为+0800,可article输出的feed时时间却怎么也不对,导致outlookRSS订阅中显示的文章时间也不对均为GMT+1600,哪有这样的时区哦,时区范围GMT-1200~GMT+1200。

修改方法如下:

1、修改htdocs\modules\\class\feedcreator.class.php文件中739行附近FeedDate类的构造函数FeedDate如下:

   1: function FeedDate($dateString="") {
   2:     $tzOffset = 0;
   3:     if ($dateString=="") $dateString = date("r");
   4:  
   5:     //if (is_integer($dateString)) {
   6:     if (is_numeric($dateString)) {
   7:         $this->unix = $dateString;
   8:         return;
   9:     }
  10:    // By XuYong 调整日期格式
  11:     if (preg_match("~(?:(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s+)?(\\d{1,2})\\s+([a-zA-Z]{3})\\s+(\\d{4})\\s+(\\d{2}):(\\d{2}):(\\d{2})\\s+(.*)~",$dateString,$matches)) {
  12:         $months = Array("Jan"=>1,"Feb"=>2,"Mar"=>3,"Apr"=>4,"May"=>5,"Jun"=>6,"Jul"=>7,"Aug"=>8,"Sep"=>9,"Oct"=>10,"Nov"=>11,"Dec"=>12);
  13:         $this->unix = gmmktime($matches[4],$matches[5],$matches[6],$months[$matches[2]],$matches[1],$matches[3]);
  14:         if (substr($matches[7],0,1)=='+' OR substr($matches[7],0,1)=='-') {
  15:             $tzOffset = (substr($matches[7],0,3) * 60 + substr($matches[7],-2)) * 60;
  16:         } else {
  17:             if (strlen($matches[7])==1) {
  18:                 $oneHour = 3600;
  19:                 $ord = ord($matches[7]);
  20:                 if ($ord < ord("M")) {
  21:                     $tzOffset = (ord("A") - $ord - 1) * $oneHour;
  22:                 } elseif ($ord >= ord("M") AND $matches[7]!="Z") {
  23:                     $tzOffset = ($ord - ord("M")) * $oneHour;
  24:                 } elseif ($matches[7]=="Z") {
  25:                     $tzOffset = 0;
  26:                 }
  27:             }
  28:             switch ($matches[7]) {
  29:                 case "UT":
  30:                 case "GMT":    $tzOffset = 0;
  31:             }
  32:         }
  33:
  34:         $tzOffset += date("Z",0);
  35:         $this->unix += $tzOffset;
  36:  
  37:         if (TIME_ZONE!="")
  38:         {
  39:             $server_TZ = abs(intval($GLOBALS['xoopsConfig']['server_TZ'] * 3600.0));
  40:             $this->unix += ($server_TZ - date("Z", 0)) % 43200;
  41:         }
  42:  
  43:         return;
  44:     }
  45:     if (preg_match("~(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})(.*)~",$dateString,$matches)) {
  46:         $this->unix = gmmktime($matches[4],$matches[5],$matches[6],$matches[2],$matches[3],$matches[1]);
  47:         if (substr($matches[7],0,1)=='+' OR substr($matches[7],0,1)=='-') {
  48:             $tzOffset = (substr($matches[7],0,3) * 60 + substr($matches[7],-2)) * 60;
  49:         } else {
  50:             if ($matches[7]=="Z") {
  51:                 $tzOffset = 0;
  52:             }
  53:         }
  54:         $tzOffset += date("Z",0);
  55:         $this->unix += $tzOffset;
  56:  
  57:         if (TIME_ZONE!="")
  58:         {
  59:             $server_TZ = abs(intval($GLOBALS['xoopsConfig']['server_TZ'] * 3600.0));
  60:             $this->unix += ($server_TZ - date("Z", 0)) % 43200;
  61:         }
  62:         return;
  63:     }
  64:     $this->unix = 0;
  65: }

2、修改htdocs\modules\article\class\xml.php文件58行,

原来为:

$TIME_ZONE = $prefix.date(“H:i”, $server_TZ);

修改为:

$TIME_ZONE = $prefix.date(“H:i”, ($server_TZ – date(“Z”, 0)) % 43200); //Hack By XuYong 调整时区显示,防止出现+1600时区

七月
26

[Fixed]Article模组取某个分类的子分类时出错的Bug

Author Dominic    Category XOOPS     Tags , ,

当我们使用XOOPS的article模组时,如果我们想获取某个分类的所有子分类时,会发现取到的数据有可能不是我们所需要的,返回的却是所有分类,当然这个Bug只存在于article模组1.0版本中,下个版本中可能会被修正。(不知道D.J.什么时候出下个版本呢)

修改htdocs\modules\\class\category.php文件中378行附近,

原来为:

$category_array = $tree->getAllChild(0);

修改之后:

$category_array = $tree->getAllChild($pid);//Modifyed By XuYong 没有使用$pid,导致没有起到任何作用

即可。

七月
26

[Hack]在XOOPS的article模组中显示完整文章标题

Author Dominic    Category XOOPS     Tags , , , ,

D.J.老大开发的article非常好用,其中有一个小缺陷:当我们获取文章列表时一般会对文章标题截取给定长度,但是当我们这样做之后,文章列表中文章标题是被截断了,但是对应A标签的title属性中也使用了截断之后的文字。这样导致的结果是当我们把鼠标移动到文章标题上面的时候,并不能看到完整的标题。

解决办法如下:

1、修改htdocs\modules\\blocks\block.php和blocks..php文件,在162行附近加入如下行代码

     $_art["art_fulltitle"] = $_art["art_title"];//Modifyed By XuYong

修改之后完整代码为:

            $_art["art_fulltitle"] = $_art["art_title"];//Modifyed By XuYong
        if(!empty($options[3])){
            $_art["art_title"] = _substr($_art["art_title"], 0, $options[3]);
        }

2、在对应的模板文件中使用art_fulltitle来显示超链接的title属性。可修改article_block_article.html文件如下:

<ul class="blkList">
  <{foreach item=article from=$block.articles name=art}>
  <li><span class="blkTime"><{$article.time}></span><a href="<{$xoops_url}>/modules/<{$block.dirname}>/view.article.php<{$smarty.const.URL_DELIMITER}><{$article.art_id}>/c<{$article.cat_id}>" target="_blank" title="<{$article.art_fulltitle}>"><{$article.art_title|smartTruncate:19}></a></li>
  <{/foreach}>
</ul>
七月
26

[Hack]让article模组中显示用户真实姓名

Author Dominic    Category XOOPS     Tags , , ,

目前XOOPS中article模组显示的都是文章发布者的登录名,有些时候显示真实姓名可能更恰当,特别是当提交者是单位的时候,这里提一个临时解决方案,最佳方案是放到配置项中由管理员配置显示。

修改htdocs\modules\\class\.php文件中的getAuthor函数如下即可:

function &getAuthor($retrieveUname = false)
    {
        $author["uid"] = $this->getVar("uid");
        if($retrieveUname){
            $author["name"] = XoopsUser::getUnameFromId($author["uid"],1) ;
        }
        return $author;
    }

配合XOOPS中修正获取真实用户名的Bug (Fixed) 效果更好。

四月
18

XOOPS中article模块 文章管理界面 的友好模板

D.J. 开发的article模块确实很好用,但是他的文章管理界面不太符合中国人使用习惯(被ASP CMS 惯坏了),充分发扬XOOPS的全部模板定制精神,做了一个针对文章管理的功能的友好模板。采用了表格显示文章列表的方式。如图:

 

下载附件解压到themes\你的主题名称\modules\article覆盖或者解压到modules\\templates覆盖并在后台更新article模块.

 下载地址:article_cparticle.html 

四月
12

Xoops中FCKeditor的上传文件时中文文件名解决方案

Author Dominic    Category XOOPS     Tags , , , ,

使用FCKeditor上传图片、Flash等文件时,文件名中的中文会显示为乱码并在在服务器上面保存有些全部为乱码文件,不能正常显示,在网上搜了一下前辈们的解决方法,没找到很好的解决办法。看来还有N多的人和我一样的困惑,但解决办法又如此的简单:

将 editor\filemanager\browser\default\frmupload.html 文件的编码改为UTF-8即可。

如果不能解决则

编辑upload.php文件

// Compose the file path.

//Modifyed By XuYong 修正UTF-8的问题

$sFileName =iconv(“utf-8″,”gbk”,$sFileName);

//End Modifyed

环境XOOPS 2.0.16 UTF-8

专题推荐

标签

分类目录

新浪微博

存档

近期文章

近期评论

友情链接

分享按钮