protected function imageMetaCreate(&$cur, $f, $id) { $file = $this->pwd . '/' . $f; if (!file_exists($file)) { return false; } $xml = new xmlTag('meta'); $meta = imageMeta::readMeta($file); $xml->insertNode($meta); $c = $this->core->con->openCursor($this->table); $c->media_meta = $xml->toXML(); if ($cur->media_title !== null && $cur->media_title == basename($cur->media_file)) { if ($meta['Title']) { $c->media_title = $meta['Title']; } } if ($meta['DateTimeOriginal'] && $cur->media_dt === '') { # We set picture time to user timezone $media_ts = strtotime($meta['DateTimeOriginal']); if ($media_ts !== false) { $o = dt::getTimeOffset($this->core->auth->getInfo('user_tz'), $media_ts); $c->media_dt = dt::str('%Y-%m-%d %H:%M:%S', $media_ts + $o); } } $c->update('WHERE media_id = ' . $id); }
public static function getMeta(&$core, $get) { $meta = new dcMeta($core); $postid = !empty($get['postId']) ? $get['postId'] : null; $limit = !empty($get['limit']) ? $get['limit'] : null; $metaId = !empty($get['metaId']) ? $get['metaId'] : null; $metaType = !empty($get['metaType']) ? $get['metaType'] : null; $sortby = !empty($get['sortby']) ? $get['sortby'] : 'meta_type,asc'; $rs = $meta->getMeta($metaType, $limit, $metaId, $postid); $sortby = explode(',', $sortby); $sort = $sortby[0]; $order = isset($sortby[1]) ? $sortby[1] : 'asc'; switch ($sort) { case 'metaId': $sort = 'meta_id_lower'; break; case 'count': $sort = 'count'; break; case 'metaType': $sort = 'meta_type'; break; default: $sort = 'meta_type'; } $rs->sort($sort, $order); $rsp = new xmlTag(); while ($rs->fetch()) { $metaTag = new xmlTag('meta'); $metaTag->type = $rs->meta_type; $metaTag->uri = rawurlencode($rs->meta_id); $metaTag->count = $rs->count; $metaTag->percent = $rs->percent; $metaTag->roundpercent = $rs->roundpercent; $metaTag->CDATA($rs->meta_id); $rsp->insertNode($metaTag); } return $rsp; }
public static function searchMeta($core, $get) { $q = !empty($get['q']) ? $get['q'] : null; $metaType = !empty($get['metaType']) ? $get['metaType'] : null; $sortby = !empty($get['sortby']) ? $get['sortby'] : 'meta_type,asc'; $rs = $core->meta->getMetadata(array('meta_type' => $metaType)); $rs = $core->meta->computeMetaStats($rs); $sortby = explode(',', $sortby); $sort = $sortby[0]; $order = isset($sortby[1]) ? $sortby[1] : 'asc'; switch ($sort) { case 'metaId': $sort = 'meta_id_lower'; break; case 'count': $sort = 'count'; break; case 'metaType': $sort = 'meta_type'; break; default: $sort = 'meta_type'; } $rs->sort($sort, $order); $rsp = new xmlTag(); while ($rs->fetch()) { if (stripos($rs->meta_id, $q) === 0) { $metaTag = new xmlTag('meta'); $metaTag->type = $rs->meta_type; $metaTag->uri = rawurlencode($rs->meta_id); $metaTag->count = $rs->count; $metaTag->percent = $rs->percent; $metaTag->roundpercent = $rs->roundpercent; $metaTag->CDATA($rs->meta_id); $rsp->insertNode($metaTag); } } return $rsp; }
public static function getZipMediaContent(&$core, $get, $post) { if (empty($get['id'])) { throw new Exception('No media ID'); } $id = (int) $get['id']; if (!$core->auth->check('media,media_admin', $core->blog)) { throw new Exception('Permission denied'); } $core->media = new dcMedia($core); $file = $core->media->getFile($id); if ($file === null || $file->type != 'application/zip' || !$file->editable) { throw new Exception('Not a valid file'); } $rsp = new xmlTag('result'); $content = $core->media->getZipContent($file); foreach ($content as $k => $v) { $rsp->file($k); } return $rsp; }