Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
<?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));
    }
Ejemplo n.º 4
0
<?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();
Ejemplo n.º 5
0
<?php

$Paging = new PerchPaging();
$Paging->set_per_page(24);
$Tags = new PerchAssets_Tags();
$tags = $Tags->all($Paging);
Ejemplo n.º 6
0
<?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);