利用API制作相册展页

提醒:本文最后更新于 4515 天前,文中所描述的信息可能已发生改变,请谨慎使用。

上一篇提到了本人为ImageVue写的一个API,这一篇将给大家提供一个实例,使大家能够更明白的了解和使用这个API.

将下面的内容保存成PHP文件后上传到服务器访问即可,只是简单的做了照片的读取,没有做过多的修饰。有心情的可以根据API做个分页以及JS和CSS方面的修饰。预览地址:点击这里

<style>
  ul {
    margin:0 auto;
  } 
  li {
    display:inline;
  }
</style>
<?php
  $api = 'http://album.imnerd.org/api.php?method=';  //注意大家要将这里的网址改成你自己的相册网址哦~  
  echo '<ul>';
  switch($_GET['page']) {
    case 'photo':
      $photos = file_get_contents($api . 'get.photos&name=' . $_GET['album']);
      $photos = json_decode($photos, true);
      foreach($photos as $item) {
        echo '<li>';
        echo '<a href="' . $item['url'] . '" class="highslide" onclick="return hs.expand(this,{slideshowGroup:\'images\'})"><img src="' . $item['thumbnail'] . '" alt="' . $item['title'] . '" />';
        echo '</li>';
      }
    break;
    default:
          $gallery_name = file_get_contents($api . 'get.gallery.name');
          $gallery_name = json_decode($gallery_name, true);
          foreach($gallery_name as $item) {
            $gallery_info = file_get_contents($api . 'get.gallery.info&name=' . $item);
            $gallery_info = json_decode($gallery_info, true);
            $preview = file_get_contents($api . 'get.photo&album=' . $item . '&photo=' . $gallery_info['previewimage']);
            $preview = json_decode($preview, true); 
        if($preview['thumbnail'] != "") {
                echo '<li>';
                echo '<ol style="display:inline;">';
                echo '<li><a href="?page=photo&album=' . $item . '" alt="' . $gallery_info['title'] . '"><img src="' . $preview['thumbnail'] . '" alt="' . $preview['title'] . '" /></a></li>';
          echo '<li><div id="album"><span class="tilte">' . $gallery_info['title'] . '</span><span class="count">(' . $gallery_info['fileCount'] . ')</span><span class="discription">' . $gallery_info['description'] . '</span></div></li>';
                echo '</ol>';
                echo '</li>';
              }
      }
    break;
    }
  echo '</ul>';

大家还可以做成WP或者Typecho的博客页面,如果不懂得制作的,可以自行谷歌一下,很简单的!

Avatar
怡红公子 擅长前端和 Node.js 服务端方向。热爱开源时常在 Github 上活跃,也是博客爱好者,喜欢将所学内容总结成文章分享给他人。

4 评论

飞天舞 Chrome14.0 Windows XP
2011-12-12 14:13:47 回复

这个还真不错,等Picasa完全被墙再换这个来。
另:1、求完整的post页评论者信息,头像等代码。
2、对于所有评论而言,可以调用抢沙发的评论者信息么?

公子 Chrome15.0 Windows 7
2011-12-12 17:26:40 回复

唔~单独建立评论似乎不大可行,因为imagevue是不需要数据库的,所以要建数据库只能把评论独立出来。
不过可以考虑一下网络上提供的社会化评论系统,这个倒是个非常不错的想法呢过两天搞出来哈哈!
至于第二条因为第一条采用了社会化评论系统,那么我这边估计就不能做什么事情了呢,所以,评论系统不提供这个功能,我这边也不能实现吧~

飞天舞 Chrome14.0 Windows XP
2011-12-14 12:32:58 回复

_忘了说了,1和2都只是针对typecho而言。

公子 Chrome15.0 Windows 7
2011-12-14 17:07:45 回复

这个其实没什么针对特殊程序的吧,因为本身就是另外一个程序API接口制造出来的东西,如果实在要结合程序,可以考虑将相册的评论写到typecho的评论表中,不过不保证不会出问题=。=