provide a hook for importing a channel photo at channel creation time

This commit is contained in:
zotlabs 2017-09-14 18:48:55 -07:00
parent cf120b2351
commit 1c0ece8411
2 changed files with 42 additions and 0 deletions

View File

@ -7,6 +7,7 @@ require_once('include/zot.php');
require_once('include/crypto.php');
require_once('include/menu.php');
require_once('include/perm_upgrade.php');
require_once('include/photo/photo_driver.php');
/**
* @brief Called when creating a new channel.
@ -273,6 +274,17 @@ function create_identity($arr) {
return $ret;
}
$a = q("select * from account where account_id = %d",
intval($arr['account_id'])
);
$z = [ 'account' => $a[0], 'channel' = $r[0], 'photo_url' => '' ];
call_hooks('create_channel_photo',$z);
if($z['photo_url']) {
import_channel_photo_from_url($z['photo_url'],$arr['account_id'],$r[0]['channel_id']);
}
if($role_permissions && array_key_exists('limits',$role_permissions))
$perm_limits = $role_permissions['limits'];
else

View File

@ -637,6 +637,36 @@ function import_xchan_photo($photo,$xchan,$thing = false) {
}
function import_channel_photo_from_url($photo,$aid,$uid) {
if($photo) {
$filename = basename($photo);
$result = z_fetch_url($photo,true);
if($result['success']) {
$img_str = $result['body'];
$type = guess_image_type($photo, $result['header']);
$h = explode("\n",$result['header']);
if($h) {
foreach($h as $hl) {
if(stristr($hl,'content-type:')) {
if(! stristr($hl,'image/')) {
$photo_failure = true;
}
}
}
}
}
}
else {
$photo_failure = true;
}
import_channel_photo($img_str,$type,$aid,$uid);
}
function import_channel_photo($photo,$type,$aid,$uid) {