正在加载...

万恶的GAE图床

一直用的Sa3album,是从大菠萝相册进化而来的,主要是增加了多相册的功能,生成的图片地址也很短了,但是有一个问题,没有扩展名的后缀,导致绝大多数的lightbox都无法使用,Python代码又完全不会改,各种郁闷。

但是要仅仅如此郁闷也就算了,这两天折腾wordpress themes,换了theme以后发现原来对图片控制的width=”570″是死板的,现在不适合了,于是更郁闷了。

于是乎开始搜索能自动调整大小的插件,可是那些插件大多是针对本地上传图片所用的,对外链调用的完全不起作用,于是一度想放弃现在的相册,但是又不太舍得,最后不在google搜索插件了,找到了一段css代码:

img{
 max-width:95%;
 width: expression(this.width > 570 ? "570px" : true);
 height:auto;
 }

当然,其中img的定义要在正文的定义之中,具体每个theme的css定义都不太相同。其中那个选择题是做给 IE6用的,max-width也是可以调节的,heartnn现在用的是90%,这也具体问题具体分析吧。另外网上还有一个jQuery代码,如果只为实现这么简单的问题来说,有点大材小用了,不过要配合lightbox是个不错的选择了。

类似的插件倒是有一个,实现的方法也很死板:

<?php
/*
Plugin Name: Fix Image/Flash Width
Plugin URI: http://dev.ixiezi.com
Description: 限制页面中显示的图片、Flash等对象的宽度最高为99%,避免撑破页面布局
Version: 0.1
Author: 爱写字
Author URI: http://ixiezi.com
*/

add_action('wp_head', 'ixiezi_fix_image_width');

function ixiezi_fix_image_width()
{
    echo '<style type="text/css" media="screen">img,embed,object{max-width:99%;}</style>';
}
?>

现在自动调节算是猥琐的实现了,另一个问题出现了,小图片怎么变大呢,虽然是不会撑开模板了,但是图片总得让人家看清楚吧,于是又在网上折腾。。。终于被我找到一个Zoom-Highslide,我用的是Sa3album,当然这个插件是不能直接用的了,小小的分析了一下,修改了zoom-highslide.php中的一点点代码,竟然可以用了。

define("IMAGE_FILETYPE", "(bmp|gif|jpeg|jpg|png)", true);

其中,把那些扩展名全都删掉了吧,成了这个样子:

define("IMAGE_FILETYPE", "()", true);

大功告成,顺便提供两套放大镜的图标,用来替换原版highslide那个难看的放大镜(来自tiant.me)。

2010-11-15 补记:其实highslide是不需要prototype库的,不知道作者为什么要载入它。可以去掉zoom-highslide.php中下面的代码来取消prototype的加载。

function zoom_highslide_javascript() {
	if ( !function_exists('wp_enqueue_script') || is_admin() ) return;
	wp_enqueue_script('prototype');
	wp_enqueue_script('scriptaculous-effects');
}

add_action('init', 'zoom_highslide_javascript');

2010-11-18 补记:sa3album的作者ben发布了新的0.2版本,可以进行切换主题了,而且作者在评论中给出了外链地址的修改方法,这下连Zoom Highslide都不用修改了,顺便把修改方法搬到这里来,很简单,只要修改一处代码就好了。

打开models.py,找到

    @property
    def copyurl(self):
        return "http://%s/f/%s/" %(os.environ['HTTP_HOST'],self.key().name())

修改为

    @property
    def copyurl(self):
        return "http://%s/f/%s/#%s" %(os.environ['HTTP_HOST'],self.key().name(),self.name)

这样,外链地址的结果就是在原来的基础上加了“#文件名”的状态,再调用的时候就不怕没有扩展名了~~

原创文章,转载请注明 » 转载自Heartnn的自留地
本文链接地址 » 万恶的GAE图床
本文标签 » , , ,

    • ben
    • 2010年11月14日 7:38下午

    对于后缀可以在新版的一键复制里加上{0}#.jpg即可在每个链接里都加上.jpg后缀。

    还有建议不要去掉sa3album的链接

      • heartnn
      • 2010年11月14日 9:48下午

      多谢提醒,没有仔细看帮助,不过缩略图的排列仍然不行,还得手动修改css。

    • ben
    • 2010年11月14日 10:35下午

    @heartnn 缩略图排列 什么意思?能说详细点吗?

      • heartnn
      • 2010年11月14日 11:12下午

      就是说高度太小的图片如果两个连在一起,而又正赶上换行的话,两个会叠在一起上下显示,然后第二行的头一个是空的,Chrome下是这样显示的。

      • heartnn
      • 2010年11月15日 4:43下午

      发现可能是浏览器缓存问题,缓存的还是旧版本的,换个浏览器观察好像是没问题了~~

    • ben
    • 2010年11月17日 11:37下午

    恩,更新完一定要按几次crtl+f5 强制刷新下。

    • ben
    • 2010年11月17日 11:39下午

    还有推荐你升级最新的0.2.0 后台功能有很大完善,而且增加了分享Twitter的功能。

      • heartnn
      • 2010年11月18日 9:43上午

      多谢,作者真是太有爱了,而且更新很快~~

  1. 没有通告