示例#1
0
/**
* @desc Formulario de Elementos
**/
function formItems($edit = 0)
{
    global $xoopsModule, $xoopsConfig, $xoopsModuleConfig, $rmc_config, $xoopsSecurity, $functions;
    define('RMCSUBLOCATION', 'newitem');
    // Get layout data
    $id = intval(rmc_server_var($_REQUEST, 'id', 0));
    $page = intval(rmc_server_var($_REQUEST, 'page', 0));
    $search = rmc_server_var($_REQUEST, 'search', '');
    $sort = rmc_server_var($_REQUEST, 'sort', 'id_soft');
    $mode = intval(rmc_server_var($_REQUEST, 'mode', 0));
    $catid = intval(rmc_server_var($_REQUEST, 'car', 0));
    $type = rmc_server_var($_REQUEST, 'type', '');
    $ev = RMEvents::get();
    $params = '?page=' . $page . '&search=' . $search . '&sort=' . $sort . '&mode=' . $mode . '&cat=' . $catid . '&type=' . $type;
    if ($edit) {
        //Verificamos que el software sea válido
        if ($id <= 0) {
            redirectMsg('items.php' . $params, __('Download item has not been specified!', 'dtransport'), 1);
            die;
        }
        //Verificamos que el software exista
        if ($type == 'edit') {
            $sw = new DTSoftwareEdited($id);
            $location = __('Verifying edited item!', 'dtransport');
        } else {
            $sw = new DTSoftware($id);
            $location = __('Editing download item', 'dtransport');
        }
        if ($sw->isNew()) {
            redirectMsg('./items.php' . $params, __('Specified download item does not exists!', 'dtransport'), 1);
            die;
        }
    } else {
        $sw = new DTSoftware();
        $location = __('New Download Item', 'dtransport');
    }
    $form = new RMForm('', '', '');
    $ed = new RMFormEditor('', 'desc', '99%', '300px', $edit ? $sw->getVar('desc', $rmc_config['editor_type'] != 'tiny' ? 'e' : 's') : '', $rmc_config['editor_type']);
    $ed->addClass('required');
    $db = XoopsDatabaseFactory::getDatabaseConnection();
    //Lista de categorías
    $categos = array();
    $swcats = $sw->categories();
    DTFunctions::getCategos($categos, 0, 0, array(), false);
    foreach ($categos as $row) {
        $cat = new DTCategory();
        $cat->assignVars($row);
        $categories[] = array('id' => $cat->id(), 'name' => $cat->name(), 'parent' => $cat->parent(), 'active' => $cat->active(), 'description' => $cat->desc(), 'indent' => $row['jumps'], 'selected' => $edit ? in_array($cat->id(), $swcats) : '');
    }
    unset($categos);
    // Licencias
    $sql = "SELECT * FROM " . $db->prefix('dtrans_licences');
    $result = $db->queryF($sql);
    $lics = array();
    $lics[] = array('id' => 0, 'name' => __('Other license', 'dtransport'), 'selected' => !$edit || in_array(0, $sw->licences()) ? 1 : 0);
    while ($row = $db->fetchArray($result)) {
        $lic = new DTLicense();
        $lic->assignVars($row);
        $lics[] = array('id' => $lic->id(), 'name' => $lic->name(), 'selected' => $edit ? in_array($lic->id(), $sw->licences()) : '');
    }
    unset($lic);
    // Plataformas
    $sql = "SELECT * FROM " . $db->prefix('dtrans_platforms');
    $result = $db->queryF($sql);
    $oss = array();
    $oss[] = array('id' => 0, 'name' => __('Other platform', 'dtransport'), 'selected' => !$edit || in_array(0, $sw->platforms()) ? 1 : 0);
    while ($row = $db->fetchArray($result)) {
        $os = new DTPlatform();
        $os->assignVars($row);
        $oss[] = array('id' => $os->id(), 'name' => $os->name(), 'selected' => $edit ? in_array($os->id(), $sw->platforms()) : '');
    }
    unset($os);
    // Allowed groups
    $field = new RMFormGroups('', 'groups', 1, 1, 1, $edit ? $sw->getVar('groups') : array(1, 2));
    $groups = $field->render();
    // Tags
    $ftags = $sw->tags(true);
    $tags = array();
    foreach ($ftags as $tag) {
        $tags[] = $tag->getVar('tag');
    }
    unset($ftags);
    RMTemplate::get()->add_style('admin.css', 'dtransport');
    RMTemplate::get()->add_style('items.css', 'dtransport');
    RMTemplate::get()->add_local_script('itemsform.js', 'dtransport');
    RMTemplate::get()->add_local_script('jquery.validate.min.js', 'rmcommon', 'include');
    include DT_PATH . '/include/js_strings.php';
    DTFunctions::toolbar();
    xoops_cp_location($location);
    xoops_cp_header();
    include RMTemplate::get()->get_template('admin/dtrans_formitems.php', 'module', 'dtransport');
    xoops_cp_footer();
}
 /**
  * Get items by tag(s)
  */
 public function items_by($elements, $by, $exclude = 0, $type = 'all', $start = 0, $limit = 10)
 {
     if (!is_array($elements) and $elements <= 0) {
         return;
     }
     if (!is_array($elements)) {
         $elements = array($elements);
     }
     switch ($type) {
         case 'featured':
             $filter = "s.approved=1 AND s.featured=1 AND s.delete=0";
             $order = "ORDER BY RAND()";
             break;
         case 'recent':
             $filter = "s.approved=1 AND s.delete=0";
             $order = "ORDER BY s.created DESC";
             break;
         case 'daily':
             $filter = "s.approved=1 AND s.daily=1 AND s.delete=0";
             $order = "ORDER BY RAND()";
             break;
         case 'rated':
             $filter = "s.approved=1 AND s.delete=0";
             $order = "ORDER BY s.rating DESC";
             break;
         case 'updated':
             $filter = "s.approved=1 AND s.delete=0";
             $order = "ORDER BY s.modified DESC";
             break;
         default:
             $filter = 's.approved=1 AND s.delete=0';
             $order = "ORDER BY created DESC";
             break;
     }
     $db = XoopsDatabaseFactory::getDatabaseConnection();
     $softt = $db->prefix('dtrans_software');
     switch ($by) {
         case 'tags':
             $byt = $db->prefix('dtrans_softtag');
             $sql = "SELECT s.* FROM {$softt} AS s, {$byt} AS t WHERE t.id_tag IN (" . implode(",", $elements) . ") AND t.id_soft!={$exclude} AND s.id_soft=t.id_soft AND {$filter} GROUP BY t.id_soft {$order} LIMIT {$start}, {$limit}";
             break;
         case 'platforms':
             $byt = $db->prefix('dtrans_platsoft');
             $sql = "SELECT s.* FROM {$softt} AS s, {$byt} AS t WHERE t.id_platform IN (" . implode(",", $elements) . ") AND t.id_soft!={$exclude} AND s.id_soft=t.id_soft AND {$filter} GROUP BY t.id_soft {$order} LIMIT {$start}, {$limit}";
             break;
         case 'licenses':
             $byt = $db->prefix('dtrans_licsoft');
             $sql = "SELECT s.* FROM {$softt} AS s, {$byt} AS t WHERE t.id_lic IN (" . implode(",", $elements) . ") AND t.id_soft!={$exclude} AND s.id_soft=t.id_soft AND {$filter} GROUP BY t.id_soft {$order} LIMIT {$start}, {$limit}";
             break;
     }
     $result = $db->query($sql);
     $items = array();
     while ($row = $db->fetchArray($result)) {
         $item = new DTSoftware();
         $item->assignVars($row);
         $cats = $item->categories(true);
         $cat = $cats[array_rand($cats, 1)];
         $items[] = array_merge($this->createItemData($item), array('category' => $cat->name(), 'categoryid' => $cat->id(), 'categorylink' => $cat->permalink()));
     }
     return $items;
 }
示例#3
0
         case 'save':
             dt_save_file($file > 0 ? 1 : 0);
             break;
         case 'delete':
             dt_delete_file();
             break;
         default:
             dt_show_files($op == 'edit' && $file > 0 ? 1 : 0);
             break;
     }
     break;
 case 'delete':
     $item->setVar('delete', 1);
     $item->licences();
     $item->tags();
     $item->categories();
     $item->platforms();
     if ($item->save()) {
         redirect_header(DT_URL . ($mc['permalinks'] ? '/cp/' : '/?p=cp'), 2, sprintf(__('Item marked to deletion successfully! From now and on, "%s" will be unavailable for download while administrators delete it.', 'dtransport'), $item->getVar('name')));
     } else {
         redirect_header(DT_URL . ($mc['permalinks'] ? '/cp/' : '/?p=cp'), 2, __('Item could not be marked to deletion! Please try again.', 'dtransport'));
     }
     break;
 case 'canceldel':
     $item->setVar('delete', 0);
     $item->licences();
     $item->tags();
     $item->categories();
     $item->platforms();
     if ($item->save()) {
         redirect_header(DT_URL . ($mc['permalinks'] ? '/cp/' : '/?p=cp'), 2, sprintf(__('Item restored successfully!', 'dtransport'), $item->getVar('name')));
示例#4
0
    $data['screens'][] = array('id' => $img->id(), 'title' => $img->title(), 'image' => $img->url(), 'ths' => $img->url('ths'));
}
unset($imgs, $img);
//Etiquetas
$tags = $item->tags(false);
$relatedTags = array();
$data['tags'] = array();
foreach ($tags as $tag) {
    $otag = new DTTag();
    $otag->assignVars($tag);
    $data['tags'][] = array('id' => $tag['id_tag'], 'name' => $tag['tag'], 'link' => $otag->permalink());
    $relatedTags[] = $tag['id_tag'];
}
unset($tags, $otag, $tag);
// Categories
$cats = $item->categories(true);
$data['categories'] = array();
foreach ($cats as $ocat) {
    $data['categories'][] = array('id' => $ocat->id(), 'name' => $ocat->name(), 'link' => $ocat->permalink());
}
unset($ocat, $cats, $cat);
// Características
$chars = $item->features(true);
$data['features'] = array();
foreach ($chars as $feature) {
    $updated = $feature->modified() > $feature->created() && $feature->modified() > time() - $mc['update'] * 86400;
    $new = !$updated && $feature->created() > time() - $mc['new'] * 86400;
    $data['features'][] = array('id' => $feature->id(), 'title' => $feature->title(), 'updated' => $updated, 'nameid' => $feature->nameid(), 'content' => $feature->content(), 'link' => $feature->permalink(), 'metas' => $dtfunc->get_metas('feat', $feature->id()));
}
unset($chars, $feature);
// Logs