mirror of
https://github.com/friendica/friendica
synced 2024-12-23 02:40:17 +00:00
several fixes for attachments
This commit is contained in:
parent
d0b7723bbc
commit
ad1e827169
6 changed files with 24 additions and 14 deletions
|
@ -1,7 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
if(!function_exists('mime_content_type')) {
|
|
||||||
function mime_content_type($filename) {
|
function z_mime_content_type($filename) {
|
||||||
|
|
||||||
$mime_types = array(
|
$mime_types = array(
|
||||||
|
|
||||||
|
@ -61,8 +61,9 @@ function mime_content_type($filename) {
|
||||||
'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
|
'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
|
||||||
);
|
);
|
||||||
|
|
||||||
if(strpos($filename,'.') !== false) {
|
$dot = strpos($filename,'.');
|
||||||
$ext = strtolower(array_pop(explode('.',$filename)));
|
if($dot !== false) {
|
||||||
|
$ext = strtolower(substr($filename,$dot+1));
|
||||||
if (array_key_exists($ext, $mime_types)) {
|
if (array_key_exists($ext, $mime_types)) {
|
||||||
return $mime_types[$ext];
|
return $mime_types[$ext];
|
||||||
}
|
}
|
||||||
|
@ -76,5 +77,5 @@ function mime_content_type($filename) {
|
||||||
else {
|
else {
|
||||||
return 'application/octet-stream';
|
return 'application/octet-stream';
|
||||||
}
|
}
|
||||||
}}
|
}
|
||||||
|
|
||||||
|
|
|
@ -518,7 +518,7 @@ function get_atom_elements($feed,$item) {
|
||||||
if(! $type)
|
if(! $type)
|
||||||
$type = 'application/octet-stream';
|
$type = 'application/octet-stream';
|
||||||
|
|
||||||
$att_arr[] = '[attach]href="' . $link . '" size="' . $len . '" type="' . $type . '" title="' . $title . '"[/attach]';
|
$att_arr[] = '[attach]href="' . $link . '" length="' . $len . '" type="' . $type . '" title="' . $title . '"[/attach]';
|
||||||
}
|
}
|
||||||
$res['attach'] = implode(',', $att_arr);
|
$res['attach'] = implode(',', $att_arr);
|
||||||
}
|
}
|
||||||
|
@ -1725,11 +1725,11 @@ function item_getfeedattach($item) {
|
||||||
if(count($arr)) {
|
if(count($arr)) {
|
||||||
foreach($arr as $r) {
|
foreach($arr as $r) {
|
||||||
$matches = false;
|
$matches = false;
|
||||||
$cnt = preg_match('|\[attach\]href=\"(.*?)\" size=\"(.*?)\" type=\"(.*?)\" title=\"(.*?)\"\[\/attach\]|',$r,$matches);
|
$cnt = preg_match('|\[attach\]href=\"(.*?)\" length=\"(.*?)\" type=\"(.*?)\" title=\"(.*?)\"\[\/attach\]|',$r,$matches);
|
||||||
if($cnt) {
|
if($cnt) {
|
||||||
$ret .= '<link rel="enclosure" href="' . xmlify($matches[1]) . '" type="' . xmlify($matches[3]) . '" ';
|
$ret .= '<link rel="enclosure" href="' . xmlify($matches[1]) . '" type="' . xmlify($matches[3]) . '" ';
|
||||||
if(intval($matches[2]))
|
if(intval($matches[2]))
|
||||||
$ret .= 'size="' . intval($matches[2]) . '" ';
|
$ret .= 'length="' . intval($matches[2]) . '" ';
|
||||||
if($matches[4] !== ' ')
|
if($matches[4] !== ' ')
|
||||||
$ret .= 'title="' . xmlify(trim($matches[4])) . '" ';
|
$ret .= 'title="' . xmlify(trim($matches[4])) . '" ';
|
||||||
$ret .= ' />' . "\r\n";
|
$ret .= ' />' . "\r\n";
|
||||||
|
|
|
@ -746,7 +746,7 @@ function prepare_body($item,$attach = false) {
|
||||||
foreach($arr as $r) {
|
foreach($arr as $r) {
|
||||||
$matches = false;
|
$matches = false;
|
||||||
$icon = '';
|
$icon = '';
|
||||||
$cnt = preg_match('|\[attach\]href=\"(.*?)\" size=\"(.*?)\" type=\"(.*?)\" title=\"(.*?)\"\[\/attach\]|',$r,$matches);
|
$cnt = preg_match('|\[attach\]href=\"(.*?)\" length=\"(.*?)\" type=\"(.*?)\" title=\"(.*?)\"\[\/attach\]|',$r,$matches);
|
||||||
if($cnt) {
|
if($cnt) {
|
||||||
$icontype = strtolower(substr($matches[3],0,strpos($matches[3],'/')));
|
$icontype = strtolower(substr($matches[3],0,strpos($matches[3],'/')));
|
||||||
switch($icontype) {
|
switch($icontype) {
|
||||||
|
|
|
@ -5517,6 +5517,7 @@ class SimplePie_Item
|
||||||
$type = null;
|
$type = null;
|
||||||
$url = null;
|
$url = null;
|
||||||
$width = null;
|
$width = null;
|
||||||
|
$title = $title_parent;
|
||||||
|
|
||||||
$url = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
|
$url = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
|
||||||
if (isset($link['attribs']['']['type']))
|
if (isset($link['attribs']['']['type']))
|
||||||
|
@ -5527,9 +5528,13 @@ class SimplePie_Item
|
||||||
{
|
{
|
||||||
$length = ceil($link['attribs']['']['length']);
|
$length = ceil($link['attribs']['']['length']);
|
||||||
}
|
}
|
||||||
|
if (isset($link['attribs']['']['title']))
|
||||||
|
{
|
||||||
|
$title = $this->sanitize($link['attribs']['']['title'], SIMPLEPIE_CONSTRUCT_TEXT);
|
||||||
|
}
|
||||||
|
|
||||||
// Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor
|
// Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor
|
||||||
$this->data['enclosures'][] = new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width);
|
$this->data['enclosures'][] = new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title, $width);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -304,6 +304,10 @@ function item_post(&$a) {
|
||||||
if(count($r)) {
|
if(count($r)) {
|
||||||
$r = q("UPDATE `attach` SET `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s'
|
$r = q("UPDATE `attach` SET `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s'
|
||||||
WHERE `uid` = %d AND `id` = %d LIMIT 1",
|
WHERE `uid` = %d AND `id` = %d LIMIT 1",
|
||||||
|
dbesc($str_contact_allow),
|
||||||
|
dbesc($str_group_allow),
|
||||||
|
dbesc($str_contact_deny),
|
||||||
|
dbesc($str_group_deny),
|
||||||
intval($profile_uid),
|
intval($profile_uid),
|
||||||
intval($attach)
|
intval($attach)
|
||||||
);
|
);
|
||||||
|
@ -436,7 +440,7 @@ function item_post(&$a) {
|
||||||
if(count($r)) {
|
if(count($r)) {
|
||||||
if(strlen($attachments))
|
if(strlen($attachments))
|
||||||
$attachments .= ',';
|
$attachments .= ',';
|
||||||
$attachments .= '[attach]href="' . $a->get_baseurl() . '/attach/' . $r[0]['id'] . '" size="' . $r[0]['filesize'] . '" type="' . $r[0]['filetype'] . '" title="' . (($r[0]['filename']) ? $r[0]['filename'] : ' ') . '"[/attach]';
|
$attachments .= '[attach]href="' . $a->get_baseurl() . '/attach/' . $r[0]['id'] . '" length="' . $r[0]['filesize'] . '" type="' . $r[0]['filetype'] . '" title="' . (($r[0]['filename']) ? $r[0]['filename'] : '') . '"[/attach]';
|
||||||
}
|
}
|
||||||
$body = str_replace($match[1],'',$body);
|
$body = str_replace($match[1],'',$body);
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,11 +60,11 @@ function wall_attach_post(&$a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$filedata = @file_get_contents($src);
|
$filedata = @file_get_contents($src);
|
||||||
|
$mimetype = z_mime_content_type($filename);
|
||||||
$mimetype = mime_content_type($src);
|
if((! strlen($mimetype)) || ($mimetype === 'application/octet-stream') && function_exists('mime_content_type'))
|
||||||
|
$mimetype = mime_content_type($filename);
|
||||||
$hash = random_string();
|
$hash = random_string();
|
||||||
$created = datetime_convert();
|
$created = datetime_convert();
|
||||||
|
|
||||||
$r = q("INSERT INTO `attach` ( `uid`, `hash`, `filename`, `filetype`, `filesize`, `data`, `created`, `edited`, `allow_cid`, `allow_gid`,`deny_cid`, `deny_gid` )
|
$r = q("INSERT INTO `attach` ( `uid`, `hash`, `filename`, `filetype`, `filesize`, `data`, `created`, `edited`, `allow_cid`, `allow_gid`,`deny_cid`, `deny_gid` )
|
||||||
VALUES ( %d, '%s', '%s', '%s', %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ",
|
VALUES ( %d, '%s', '%s', '%s', %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ",
|
||||||
intval($page_owner_uid),
|
intval($page_owner_uid),
|
||||||
|
|
Loading…
Reference in a new issue