public function log($app = 'content', $bucket = 'default', $file, $parentID = 0, $resource_key = '', $library_resource = false, $details = false, $AssetMeta = false) { if (isset($details['assetID'])) { $newID = $details['assetID']; } else { $data = array('resourceApp' => $app, 'resourceBucket' => $bucket, 'resourceFile' => $file, 'resourceKey' => $resource_key, 'resourceParentID' => $parentID, 'resourceType' => $this->_get_type($file), 'resourceCreated' => date('Y-m-d H:i:s'), 'resourceInLibrary' => $library_resource ? '1' : '0'); if (PerchUtil::count($details)) { foreach ($details as $key => $val) { switch ($key) { case 'w': $data['resourceWidth'] = $val; break; case 'h': $data['resourceHeight'] = $val; break; case 'target_w': $data['resourceTargetWidth'] = $val; break; case 'target_h': $data['resourceTargetHeight'] = $val; break; case 'crop': $data['resourceCrop'] = $val ? '1' : '0'; break; case 'density': $data['resourceDensity'] = $val; break; case 'size': $data['resourceFileSize'] = $val; break; case 'mime': $data['resourceMimeType'] = $val; break; case 'title': $data['resourceTitle'] = $val; break; } } } if (!isset($data['resourceTitle'])) { if ($AssetMeta) { $data['resourceTitle'] = $AssetMeta->get_title(); } else { $data['resourceTitle'] = PerchUtil::filename(PerchUtil::strip_file_extension($data['resourceFile']), false); } } $newID = $this->db->insert($this->table, $data, true); if ($newID == '0') { $sql = 'SELECT resourceID FROM ' . $this->table . ' WHERE resourceBucket=' . $this->db->pdb($bucket) . ' AND resourceFile=' . $this->db->pdb($file) . ' LIMIT 1'; $newID = $this->db->get_value($sql); } // Tags if ($AssetMeta) { $tags = $AssetMeta->get_tags(); if (PerchUtil::count($tags)) { if (!class_exists('PerchAssets_Tags', false)) { include_once PERCH_CORE . '/apps/assets/PerchAssets_Tags.class.php'; include_once PERCH_CORE . '/apps/assets/PerchAssets_Tag.class.php'; } $Tags = new PerchAssets_Tags(); $Tags->assign_tag_array($newID, $tags, true); } } } PerchResources::$logged[] = $newID; return $newID; }
<?php $FieldTag = new PerchXMLTag('<perch:content id="image" type="image" disable-asset-panel="true" app-mode="true" detect-type="true" />'); $FieldTag->set('input_id', 'image'); $Assets = new PerchAssets_Assets(); $Tags = new PerchAssets_Tags(); $Form = new PerchForm('edit'); $message = false; if (isset($_GET['id']) && is_numeric($_GET['id'])) { $assetID = (int) $_GET['id']; $Asset = $Assets->find($assetID); if ($Asset) { if (!$Asset->is_image()) { $FieldTag->set('type', 'file'); } } } else { if (!$CurrentUser->has_priv('assets.create')) { PerchUtil::redirect(PERCH_LOGINPATH . '/core/apps/assets/'); } $assetID = false; $Asset = false; } $Form = new PerchForm('edit'); $req = array(); $req['resourceTitle'] = "Required"; $Form->set_required($req); if ($Form->posted() && $Form->validate()) { /* if (isset($_POST['image_remove']) && $_POST['image_remove']=='1') { $Asset->delete();
public function search($term, $filters) { $term = trim($term); $tag = PerchUtil::urlify($term); $Tags = new PerchAssets_Tags(); $Tag = $Tags->get_one_by('tagSlug', $tag); $sql = 'SELECT * FROM ('; $filter_sql = ''; if (PerchUtil::count($filters)) { foreach ($filters as $filter => $filter_value) { switch ($filter) { case 'bucket': $filter_sql .= ' AND r.resourceBucket=' . $this->db->pdb($filter_value) . ' '; break; case 'app': $filter_sql .= ' AND r.resourceApp=' . $this->db->pdb($filter_value) . ' '; break; case 'type': $type_map = PerchAssets_Asset::get_type_map(); if (array_key_exists($filter_value, $type_map)) { $filter_sql .= ' AND r.resourceType IN (' . $this->db->implode_for_sql_in($type_map[$filter_value]['exts']) . ') '; } else { $filter_sql .= ' AND r.resourceType=' . $this->db->pdb($filter_value) . ' '; } break; case 'date': $ts = strtotime($filter_value); $filter_sql .= ' AND r.resourceCreated BETWEEN ' . $this->db->pdb(date('Y-m-d 00:00:00', $ts)) . ' AND ' . $this->db->pdb(date('Y-m-d 25:59:59', $ts)) . ' '; break; } } } if ($Tag) { $sql .= 'SELECT r.*, 0.5 AS score, r2.resourceFile AS thumb, r2.resourceWidth AS thumbWidth, r2.resourceHeight AS thumbHeight, r2.resourceDensity AS thumbDensity FROM ' . PERCH_DB_PREFIX . 'resources r LEFT OUTER JOIN ' . PERCH_DB_PREFIX . 'resources r2 ON r2.resourceParentID=r.resourceID AND r2.resourceKey=\'thumb\' AND r2.resourceAWOL!=1 JOIN ' . PERCH_DB_PREFIX . 'resources_to_tags r2t ON r.resourceID=r2t.resourceID AND r2t.tagID=' . $Tag->id() . ' WHERE r.resourceAWOL=0 AND r.resourceKey=\'orig\' ' . $filter_sql . ' UNION ALL '; } $sql .= 'SELECT r.*, MATCH(r.resourceTitle) AGAINST(' . $this->db->pdb($term) . ') AS score, r2.resourceFile AS thumb, r2.resourceWidth AS thumbWidth, r2.resourceHeight AS thumbHeight, r2.resourceDensity AS thumbDensity FROM ' . PERCH_DB_PREFIX . 'resources r LEFT OUTER JOIN ' . PERCH_DB_PREFIX . 'resources r2 ON r2.resourceParentID=r.resourceID AND r2.resourceKey=\'thumb\' AND r2.resourceAWOL!=1 WHERE MATCH(r.resourceTitle) AGAINST(' . $this->db->pdb($term) . ') AND r.resourceKey=\'orig\' ' . $filter_sql . ' ORDER BY score DESC, resourceUpdated DESC'; $sql .= ') AS t GROUP BY resourceID'; return $this->return_instances($this->db->get_rows($sql)); }
<?php $Tags = new PerchAssets_Tags(); $Form = new PerchForm('edit'); $message = false; if (isset($_GET['id']) && is_numeric($_GET['id'])) { $tagID = (int) $_GET['id']; $Tag = $Tags->find($tagID); } else { PerchUtil::redirect(PERCH_LOGINPATH . '/core/apps/assets/tags/'); } $Form = new PerchForm('editpage'); $req = array(); $req['tagTitle'] = "Required"; $req['tagSlug'] = "Required"; $Form->set_required($req); if ($Form->posted() && $Form->validate()) { $postvars = array('tagTitle', 'tagSlug'); $data = $Form->receive($postvars); if (is_object($Tag)) { $Tag->update($data); $Alert->set('success', PerchLang::get('The tag has been successfully updated.')); } } $details = $Tag->to_array();
<?php $Paging = new PerchPaging(); $Paging->set_per_page(24); $Tags = new PerchAssets_Tags(); $tags = $Tags->all($Paging);
<?php include realpath(__DIR__ . '/../../..') . '/inc/pre_config.php'; include realpath(__DIR__ . '/../../../..') . '/config/config.php'; include PERCH_CORE . '/inc/loader.php'; $Perch = PerchAdmin::fetch(); include PERCH_CORE . '/inc/auth_light.php'; include __DIR__ . '/../PerchAssets_Tags.class.php'; include __DIR__ . '/../PerchAssets_Tag.class.php'; $Tags = new PerchAssets_Tags(); $results = $Tags->async_search($_GET['term']); echo PerchUtil::json_safe_encode($results);