Archive for the ‘ Read & Learn ’ Category

Jun
1
2009

报告在此:http://buytaert.net/files/usability-testing-minnesota.pdf 。很有意思,在用一段一段的假设和例子给drupal6直截了当的批评之后,给出以下用户体验的建议:

  • Measure the User Experience. 让用户体验可以量化,并将之量化
  • Consistency. 一致性(体现在界面风格及语言风格上,更高级别的则体现在用户使用习惯上,这我在Mac上深有感触)
  • Understandable Language. 易懂易用的界面
  • Not Feel Overwhelming. 别让用户在使用时感到压迫感或茫然或眩晕,别让他兜圈子
  • Informative Feedback. 好的反馈信息,这跟其它几项要求也是彼此关联的

很眼熟是不?其实关于UX,许多公司的原则都是大同小异的,这些建议同样适用于大部分其它的网站、程序或系统。我再借题发挥,提几点一样大同小异的想法:

  • 如Drupal这样的CMS系统适用于建很大型的网站,很多时候站长们并非如此地“白痴(dummy)用户”,是有一定基础的,所以它不必像Wordpress一样要适应大部分dummy的使用习惯,如果因用户体验的需要而斩掉一些功能就矫枉过正了;
  • 节约用户的时间;
  • 设计应敢于创新,比如最近网上讨论得比较多的,Yahoo网站面包屑的设计、Amazon购物车的设计;

by the way,饱受好评、已经发展很久的Drupal也会有这么多显而易见的问题,难怪正在进行的Drupal 7开发中,改善用户体验被放在了第一位(WM、Mac OS、win7……也是这样)。由此可见,用户界面、用户体验已经变成了现在绝大部分程序/系统要实现飞跃必须解决的头号问题了,而且这是一个永不终止、 长期进行的工程。

前阵子才发现 http://www.d7ux.org,上面关于D7用户体验方面的改善还有关于dashboard的一些探讨,让我非常期待Drupal 7的到来!

Tag: ,
Dec
18
2008

当本页面存在父页面时,在sidebar列出父页面下属的所有页面(即列出跟本页面同级的页面),当本页面为父页面时,则列本页的子页面出来,这是CMS最普遍的应用之一,实现方法为(sidebar.php):

  1. <?php if (have_posts()) : ?>
  2. <?php while (have_posts()) : the_post(); ?>
  3.  
  4.     <?php /* Creates a menu for pages beneath the level of the current page - Thanks K2 Theme*/
  5.             if (is_page() and ($notfound != '1')) {
  6.                 $parent_page = $post->ID;
  7.     
  8.                 while($parent_page) {
  9.                     $page_query = $wpdb->get_row("SELECT ID, post_title, post_status, post_parent FROM $wpdb->posts WHERE ID = '$parent_page'");
  10.                     $parent_page = $page_query->post_parent;
  11.                 }
  12.                 $parent_id = $page_query->ID;
  13.                 $parent_title = $page_query->post_title;
  14.    
  15.                 if ($wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_parent = '$parent_id' AND post_status != 'attachment'")) { ?>
  16.  
  17.             <div class="s_panel">
  18.                 <h2 class="title"><?php echo $parent_title; ?></h2>
  19.                 <ul><?php wp_list_pages('depth=1&sort_column=menu_order&title_li=&child_of='. $parent_id); ?></ul>
  20.             </div>
  21.  
  22.         <?php }?>
  23.    
  24.     <?php } } ?>
  25.    
  26. <?php endwhile; endif; ?>

但是有个问题一直没解决,就是当本页面是很孤独的页面,没有父页面也没有子页面时,怎样让侧边不出现这个s_panel,以前我用两种作法,一是硬挤几个同级页面给它,一是做2个template,带和不带s_panel各一个,都很麻烦,刚突然发现了可以在上述parent_id功能上,再利用wp_list_pages结合echo=0来判断是否要输出,问题就迎刃而解了。真是好晕,整天在CODEX上的wp_list_pages上琢磨,却完全没有看到echo=0!

改后的代码如下:

  1. <?php if (have_posts()) : ?>
  2. <?php while (have_posts()) : the_post(); ?>
  3.  
  4.     <?php /* Creates a menu for pages beneath the level of the current page - Thanks K2 Theme*/
  5.             if (is_page() and ($notfound != '1')) {
  6.                 $parent_page = $post->ID;
  7.     
  8.                 while($parent_page) {
  9.                     $page_query = $wpdb->get_row("SELECT ID, post_title, post_status, post_parent FROM $wpdb->posts WHERE ID = '$parent_page'");
  10.                     $parent_page = $page_query->post_parent;
  11.                 }
  12.                 $parent_id = $page_query->ID;
  13.                 $parent_title = $page_query->post_title;
  14.    
  15.                 if ($wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_parent = '$parent_id' AND post_status != 'attachment'")) { ?>
  16.    
  17.        
  18.     <?php $subpage = wp_list_pages('depth=1&echo=0&child_of='.$parent_id); ?><?php //关键 ?>
  19.         <?php if($subpage) { ?>
  20.             <div class="s_panel">
  21.                 <h2 class="title"><?php echo $parent_title; ?></h2>
  22.                 <ul><?php wp_list_pages('depth=1&sort_column=menu_order&title_li=&child_of='. $parent_id); ?></ul>
  23.             </div>
  24.         <?php }?>
  25.    
  26.     <?php } } ?>
  27. <?php endwhile; endif; ?>

今天顺便把WP升级到2.7了,进入后台却发现侧栏导航条不见了,冷静的思考一下,怀疑是插件lighter-menu导致的,直接在地址栏输入插件页将之停用,马上恢复正常!:)

Tag: , ,
Aug
28
2008

正式启用flyingsand.com这个网上新家,sleepingcity.com也指向这边了(暂时没想好怎么使用这个域名)。

花了3天的时间,终于做出来一个基本清爽的主题YummyGadget。这是为flying设计的,等有时间再给俺自己整个(风格当然大不同,嘿嘿:),右上角的草莓图标不是我画的,版权归其作者所有,现在暂用,等有时间我再亲自画图(苹果?雪糕?哈密瓜?anything yummy is OK! )代替它。好多事想做,时间总不够,唉~

在将此主题汉化过程中页面布局出现了很多奇怪的bug,研究了一整天,感谢软件生活,最后终于发现UTF-8编码以是否带BOM( Byte Order Mard)分为两种格式,而不带BOM的UTF-8格式才能得到PHP很好的支持,我用记事本另存为UTF-8的结果恰恰是带了BOM的,赶快找来unifier将这批文件批量转换,问题迎刃而解。

Tag: , ,