/** * @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; }
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')));
$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