elgg获取文件图标地址的方法
以下是网学网为您推荐的PHP-elgg 获取文件图标地址的方法,希望本篇文章对您学习有所帮助。
过程如下:
首先,实体保存的时候用这个方法(系统本身的):
比如有一个Activity类,继承自ElggObject,创建了一个它的实例 activity,
复制代码 代码如下:
// Now see if we have a file icon
if ((isset(
elgg获取文件图标地址的方法_网学
网学推荐
·【推荐参考】最新可过维普检测低于30%
·【推荐】原创参考论文 原创资料
·【推荐】原创参考论文导航
·咨询参考QQ:3710167
·咨询参考微信号:yclw90
·扫一扫 加微信 咨询
·我们提供原创参考论文和原创的参考资料!
·很多朋友如果想要查重指导等,请沟通我们!
·原创的论文资料参考省时间!
·论文格式排版可以找我们!
·论文答辩PPT格式排版定制!
·程序和网站等UI设计定制!
·程序设计定制!
·网站设计定制!
·UI设计定制!
·程序和网站等UI设计定制!
·原创参考论文参考定制!
FILES[''icon''])) && (substr_count(
elgg获取文件图标地址的方法_网学
网学推荐
·【推荐参考】最新可过维普检测低于30%
·【推荐】原创参考论文 原创资料
·【推荐】原创参考论文导航
·咨询参考QQ:3710167
·咨询参考微信号:yclw90
·扫一扫 加微信 咨询
·我们提供原创参考论文和原创的参考资料!
·很多朋友如果想要查重指导等,请沟通我们!
·原创的论文资料参考省时间!
·论文格式排版可以找我们!
·论文答辩PPT格式排版定制!
·程序和网站等UI设计定制!
·程序设计定制!
·网站设计定制!
·UI设计定制!
·程序和网站等UI设计定制!
·原创参考论文参考定制!
FILES[''icon''][''type''],''image/''))) {
$prefix = "activity/".$activity->guid;
$filehandler = new ElggFile();
$filehandler->owner_guid = $activity->owner_guid;
$filehandler->setFilename($prefix . ".jpg");
$filehandler->open("write");
$filehandler->write(get_uploaded_file(''icon''));
$filehandler->close();
$thumbtiny = get_resized_image_from_existing_file($filehandler->getFilenameOnFilestore(),25,25, true);
$thumbsmall = get_resized_image_from_existing_file($filehandler->getFilenameOnFilestore(),40,40, true);
$thumbmedium = get_resized_image_from_existing_file($filehandler->getFilenameOnFilestore(),100,100, true);
$thumblarge = get_resized_image_from_existing_file($filehandler->getFilenameOnFilestore(),200,200, false);
if ($thumbtiny) {
$thumb = new ElggFile();
$thumb->owner_guid = $activity->owner_guid;
$thumb->setMimeType(''image/jpeg'');
$thumb->setFilename($prefix."tiny.jpg");
$thumb->open("write");
$thumb->write($thumbtiny);
$thumb->close();
$thumb->setFilename($prefix."small.jpg");
$thumb->open("write");
$thumb->write($thumbsmall);
$thumb->close();
$thumb->setFilename($prefix."medium.jpg");
$thumb->open("write");
$thumb->write($thumbmedium);
$thumb->close();
$thumb->setFilename($prefix."large.jpg");
$thumb->open("write");
$thumb->write($thumblarge);
$thumb->close();
}
}
这个过程后,文件将被保存至一个由用户名字符串组成的一个目录结构下,比如用户名是abc,则被保存在了a/b/c/下,然后由图片的guid+size+.jpg组成一个文件名。
获取src地址的时候,通过实体->getIcon();方法来获取。getIcon是entities.php中的方法。然后这个方法会调用get_entity_icon_url方法,在get_entity_icon_url方法中有一行:
$url = trigger_plugin_hook(''entity:icon:url'', $entity->getType(), array(''entity'' => $entity, ''viewtype'' => $viewtype, ''size'' => $size), $url);
它会触发一个钩子(hook),这个hood需要在插件的start.php中注册。注册时这样写:
register_plugin_hook(''entity:icon:url'', ''object'', ''activity_activityicon_hook'');
第一个参数是钩子类型,第二个是实体类型,也就是activity的类型,第三个是钩子函数名。
然后在start.php中写出activity_activityicon_hook方法:
复制代码 代码如下:
/**
* 获取图标
* This hooks into the getIcon API and provides nice user icons for users where possible.
*
* @param string $hook 钩子名
* @param string $entity_type 实体类型
* @param string $returnvalue 图片url地址
* @param unknow $params 参数表列
* @return string $url 图片url地址
*/
function activity_activityicon_hook($hook, $entity_type, $returnvalue, $params) {
global $CONFIG;
if ((!$returnvalue) && ($hook == ''entity:icon:url'') && ($params[''entity''] instanceof Activity)) {
$entity = $params[''entity''];
$type = $entity->type;
$viewtype = $params[''viewtype''];
$size = $par