代码存档

koto 发表于 2010-02-01 18:47:02

FC2吧,说起来蛮奇怪的。后台功能一大堆、各项设计也非常细腻。比如当整个博客设置密码时,起始页有“管理员信息”这样的密码提示(当然你可以空着不填);自我介绍栏可以填写公告、说明;模板模块丰富等等。但是它家一些很基本的功能却非常欠缺。比如说:①标签(tag)栏不能换行,所有标签一行排开,一旦标签过多就会撑开模板;如果日志里与标签出现共同的字或者词,那么日志里的字词就会自动连接(而且每次连接的页面都是service busy)②FC2没有全部日志一览的选项。③它家翻页功能极差,只能死蠢的一页一页翻。

以上三点是我最头疼的问题。据说懂得代码,问题都能迎刃而解,但问题是大部分人对代码不那么精通好吧。其实这些功能要是统一设定也不难,为什么FC2给用户故意找麻烦呢,真是奇怪=  =
对于上述三个问题的解决方法,
标签我全部用英文字母写,这样与日志重复的几率比较小。换行则需要在标签词汇里加入【-】这个符号,此外还必须考虑标签的排列顺序。综上,我的标签功能基本用不上,只能补充分类上的不足。

全部日志一览的选项没有,但是FC2实际上却有日志一览的页面,就是在主页后面加上【?all】。于是我在分类的介绍插件里加入了以下代码:
<ul>
<!--/link-->
<li><a href="./?all">全部日志一览</a></li>
</ul>

数字页码翻页代码比较复杂,有两种,一种是:1 2 3....10这种显示方法。代码如下:
<script type="text/javascript"><!--
/** ページナビ for FC2ブログ
* /page-1.html
* /category2-1.html
* /blog-date-200807-1.html
* /?tag=%A5%D1%A5%F3%A5%C0&page=1
* /?q=%A5%D1%A5%F3%A5%C0&page=1
*/
function pagenavi(w)
{
if ((n = '<%total_pages>') == '')
return;
url = '<!--nextpage--><%nextpage_url><!--/nextpage-->';
add = -1;
if (url == '') {
url = '<!--prevpage--><%prevpage_url><!--/prevpage-->';
add = 1;
}
ext = '.html';
if ((i = url.indexOf('/page-')) != -1) {
c = url.substring(i + 6, url.length - 5);
base = url.substring(0, i + 6);
} else if (url.indexOf('/category') != -1
|| url.indexOf('/blog-date-') != -1) {
i = url.lastIndexOf('-');
c = url.substring(i + 1, url.length - 5);
base = url.substring(0, i + 1);
} else if ((i = url.indexOf('page=')) != -1) {
c = url.substring(i + 5);
base = url.substring(0, i + 5);
ext = '';
} else {
c = 0;
add = 0;
base = '';
ext = '';
}
n = Number(n);
if (n < 1) n = 1;
c = Number(c) + add + 1;
if (c < 1) c = 1;
if (c > n) c = n;
if (w < 0) w = 0;
ww = 2 * w + 1;
for (i = 1; i <= n; i++) {
dot = '<a href=\"' + base + (i - 1) + ext + '\" title=\"' + i + '\">..</a>'
if ((c - w <= i && i <= c + w) || i == 1 || i == n
|| (i == 2 && c - w - 1 == i) || (i == n - 1 && c + w + 1 == i)) {
if (i == c) {
document.write(' <b>' + i + '</b> ');
} else {
document.write(' <a href=\"' + base + (i - 1) + ext + '\">' + i + '</a> ');
}
} else if (i < c - w) {
if (i - 1 <= (c - w - 2) % ww) {
if (i - 1 == Math.floor(((c - w - 2) % ww + 1) / 2))
document.write(dot);
} else if ((c - i) % ww == 0)
document.write(dot);
} else if (i > c + w) {
if (n - i <= (n - c + w) % ww) {
if (n - i == Math.floor(((n - c + w) % ww + 1) / 2))
document.write(dot);
} else if ((i - c) % ww == 0)
document.write(dot);
}
}
}
//--></script>
<script type="text/javascript"><!--
pagenavi(2); //--></script>

另外一种是连续页码:1 2 3 4 5 6 7 8 9 10这样显示。代码如下:
<!--改造・転用、ほか诸々ご自由に。-->

<!--当该ページの文字装饰-->
<style type="text/css"><!--
.pgselecnow {font-weight:bold;
             font-size:1.3em;
             position:relative;top:0.1em;
}--></style>
<div class="pgselec_all">
<script type="text/javascript"><!--
allentry = 0;
var nav = 0;
cateurl = document.URL;
nexturl = '<!--nextpage--><%nextpage_url><!--/nextpage-->';

/*ページ内の记事数计算*/
<!--topentry-->nav = nav + 1;<!--/topentry-->
//
/*page-モード时/トップページ时のセレクター*/
cateif = cateurl.indexOf('page-');
<!--index_area-->cateif = 0;<!--/index_area-->
if (cateif != -1) {
  <!--category-->allentry = allentry + <%category_count>;
  <!--/category-->
  cateno = cateurl.slice(cateif + 5 ,-5);
  <!--index_area-->cateno = 0;<!--/index_area-->
    if (nexturl == '') {
      catepage = Number(cateno) + 1;
      } else {
      catepage = Math.ceil(allentry / nav) ;
    }
  for (i = 0; i < catepage; i++) {
    if (i == cateno) {
      document.write ('<span class="pgselecnow">' + (i + 1) + '</span>  ');
      } else {
      document.write ('<a href="<%url>page-' + i + '.html" class="pgselec">' + (i + 1) + '</a> ');
    }
  }
}
//
/*カテゴリモードのセレクター*/
<!--category_area-->
cateet = new Array();
<!--category-->cateet[<%category_no>] = <%category_count>;<!--/category-->
cateif = cateurl.indexOf('blog-category-');
if (cateif == -1) {
catec1 = cateurl.indexOf('category');
catec1 = catec1 + 8;
catec = cateurl.slice(catec1 , -5);
catec = catec.split("-");
cateno = Number(catec[0]);
catep = Number(catec[1]);
   if (nexturl == '') {
   catepage = catep + 1;
   } else {
   catepage = Math.ceil(cateet[cateno] / nav) ;
   }
} else {
catep = 0;
cateno = cateurl.slice(cateif + 14 ,-5);
catepage = Math.ceil(cateet[cateno] / nav) ;
}
for (i = 0; i < catepage; i++) {
   if (i == catep) {
   document.write ('<span class="pgselecnow">' + (i + 1) + '</span>  ');
   } else {
   document.write ('<a href="<%url>category' + cateno + '-' + i + '.html" class="pgselec">' + (i + 1) + '</a> ');
   }
}
<!--/category_area-->
//--></script>
</div>

两种代码可以加在博客的html编辑框的<div class="footer_navi">下,即上下页导航代码的上方。如果找不到这个代码,找到<div class="footertext"> 或者</div><!--/page_navi-->也可以。

还是十分怀念大巴的。大巴的基本功能非常齐全,纵然你不会代码也能排版得很漂亮,但是无奈被和谐过后一直不稳定,而且审查制度太严苛。总之,在FC2的代码海洋里慢慢试验吧……

最新评论

  • 2010-02-02 00:07:15

    fc2最神奇的是我注册了一个用户,添加博客组件的时候一直报登录超时,实际上我一直都在登录状态

    你说的那个问题好像不少人都遇到过……我遇到的是反复登录2、3次才能进入管理页面……反正我觉得FC2跟WordPress有得拼,一样犟= =

    引用一下sanjiao的感想就是:现在我明白了,为什么苹果的产品一贯以轴闻名,却能培养出十分忠实的用户群。因为爱恨交织肯定要比对方倒贴有感觉,因为驯服一个又轴又别扭的强受肯定比搞定一个傻不楞登的小白受有成就感,因为你在一个傲娇得让你咬牙启齿不时又露点肉给你看漫不经心勾引一下你的人身上投入的时间肯定要比招之即来呼之即去的人多。这样当你最终搞定它的时候,你会发现实际上是你被它搞定了。在它身上投入的大把时间和钻研,以及在它身上取得的成就感,已经让你离不开它。

    我对FC2的感想也差不多了……咳咳,继续奋战ing

    PS:你用的是日文版还是中文版的FC2?

  • 2010-02-02 00:40:38

    看了sanjiao这段话,我深深地羞愧了——原来我一直是一个伪·傲娇控啊!

    我用的中文版……


  • RD
    2010-02-02 20:01:18 匿名 114.94.*.* http://dylane.blogbus.com

    偶惆怅的望天,原来我——也是个“伪傲娇控”啊!
    koto,你不怕fc2被墙掉?

    被墙至少东西还在……反正FC2等我全部弄好了也只是想存一个网页格式。。。


  • RD
    2010-02-03 14:01:37 匿名 206.73.*.*

    koto, 你fc2在哪里啊?

    那个还没有搬完,暂时不公开……

发表评论

*昵称

已经注册过? 请登录

Email
网址
*评论