"; while ($row = mysql_fetch_array($res)) $selection .= "\n"; $selection .= ""; return $selection; } function category_icon_selection($iconId = 0) { $res = sql_query("SELECT * FROM caticons ORDER BY id ASC"); $selection = ""; return $selection; } function return_type_name($type) { global $lang_catmanage; switch ($type) { case 'searchbox': $name = $lang_catmanage['text_searchbox']; break; case 'caticon': $name = $lang_catmanage['text_category_icons']; break; case 'secondicon': $name = $lang_catmanage['text_second_icons']; break; case 'category': $name = $lang_catmanage['text_categories']; break; case 'source': $name = $lang_catmanage['text_sources']; break; case 'medium': $name = $lang_catmanage['text_media']; break; case 'codec': $name = $lang_catmanage['text_codecs']; break; case 'standard': $name = $lang_catmanage['text_standards']; break; case 'processing': $name = $lang_catmanage['text_processings']; break; case 'team': $name = $lang_catmanage['text_teams']; break; case 'audiocodec': $name = $lang_catmanage['text_audio_codecs']; break; default: return false; } return $name; } function print_type_list($type){ global $lang_catmanage; $typename=return_type_name($type); stdhead($lang_catmanage['head_category_management']." - ".$typename); begin_main_frame(); ?>

-

    
".$lang_catmanage['text_no_record_yet']."

"); else{ list($pagertop, $pagerbottom, $limit) = pager($perpage, $num, $pagerParam); $res = sql_query("SELECT * FROM ".$dbtablename." ORDER BY id DESC ".$limit) or sqlerr(__FILE__, __LINE__); ?>
|

*", " " . $lang_catmanage['text_searchbox_name_note'], 1); tr($lang_catmanage['row_show_sub_category'], " " . $lang_catmanage['text_sources'] . " " . $lang_catmanage['text_media'] . " " . $lang_catmanage['text_codecs'] . " " . $lang_catmanage['text_standards'] . " " . $lang_catmanage['text_processings'] . " " . $lang_catmanage['text_teams'] . " " . $lang_catmanage['text_audio_codecs']."
".$lang_catmanage['text_show_sub_category_note'], 1); //extra $extraCheckbox = ""; foreach (\App\Models\SearchBox::listExtraText() as $name => $text) { $extraCheckbox .= sprintf( '', $name, !empty($row['extra'][$name]) ? ' checked' : '', $text ); } tr($lang_catmanage['row_searchbox_extras'], $extraCheckbox, 1); tr($lang_catmanage['row_items_per_row']."*", " " . $lang_catmanage['text_items_per_row_note'], 1); tr($lang_catmanage['row_padding_between_items']."*", " " . $lang_catmanage['text_padding_between_items_note'], 1); $field = new \Nexus\Field\Field(); tr($lang_catmanage['row_enable_custom_field'], $field->buildFieldCheckbox('custom_fields[]', $row['custom_fields'] ?? ''), 1); tr($lang_catmanage['row_custom_field_display_name'], '', 1); $helpText = '
' . $lang_catmanage['row_custom_field_display_help']; tr($lang_catmanage['row_custom_field_display'], '' . $helpText, 1); } elseif ($type=='caticon') { if ($row) { $name = $row['name']; $folder = $row['folder']; $multilang = $row['multilang']; $secondicon = $row['secondicon']; $cssfile = $row['cssfile']; $designer = $row['designer']; $comment = $row['comment']; } else { $name = ''; $folder = ''; $multilang = 'no'; $secondicon = 'no'; $cssfile = ''; $designer = ''; $comment = ''; } ?> *", " ", 1); tr($lang_catmanage['col_folder']."*", "
" . $lang_catmanage['text_folder_note'], 1); tr($lang_catmanage['text_multi_language'], "".$lang_catmanage['text_yes'] ."
". $lang_catmanage['text_multi_language_note'], 1); tr($lang_catmanage['text_second_icon'], "".$lang_catmanage['text_yes'] ."
". $lang_catmanage['text_second_icon_note'], 1); tr($lang_catmanage['text_css_file'], " ". $lang_catmanage['text_css_file_note'], 1); tr($lang_catmanage['text_designer'], " ". $lang_catmanage['text_designer_note'], 1); tr($lang_catmanage['text_comment'], " ". $lang_catmanage['text_comment_note'], 1); } elseif ($type=='secondicon') { if ($row) { $name = $row['name']; $image = $row['image']; $class_name = $row['class_name']; $source = $row['source']; $medium = $row['medium']; $codec = $row['codec']; $standard = $row['standard']; $processing = $row['processing']; $team = $row['team']; $audiocodec = $row['audiocodec']; } else { $name = ''; $image = ''; $class_name = ''; $source = 0; $medium = 0; $codec = 0; $standard = 0; $processing = 0; $team = 0; $audiocodec = 0; } tr($lang_catmanage['col_name']."*", " " . $lang_catmanage['text_second_icon_name_note'], 1); tr($lang_catmanage['col_image']."*", "
" . $lang_catmanage['text_image_note'], 1); tr($lang_catmanage['text_class_name'], "
" . $lang_catmanage['text_class_name_note'], 1); tr($lang_catmanage['row_selections']."*", torrent_selection(return_type_name('source'), 'source', return_category_db_table_name('source'), $source) . torrent_selection(return_type_name('medium'), 'medium', return_category_db_table_name('medium'), $medium) . torrent_selection(return_type_name('codec'), 'codec', return_category_db_table_name('codec'), $codec) . torrent_selection(return_type_name('standard'), 'standard', return_category_db_table_name('standard'), $standard) . torrent_selection(return_type_name('processing'), 'processing', return_category_db_table_name('processing'), $processing) . torrent_selection(return_type_name('team'), 'team', return_category_db_table_name('team'), $team) . torrent_selection(return_type_name('audiocodec'), 'audiocodec', return_category_db_table_name('audiocodec'), $audiocodec)."
".$lang_catmanage['text_selections_note'], 1); } elseif ($type=='category') { if ($row) { $name = $row['name']; $mode = $row['mode']; $image = $row['image']; $class_name = $row['class_name']; $sort_index = $row['sort_index']; } else { $name = ''; $mode = 1; $image = ''; $class_name = ''; $sort_index = 0; } tr($lang_catmanage['row_category_name']."*", " " . $lang_catmanage['text_category_name_note'], 1); tr($lang_catmanage['col_image']."*", "
" . $lang_catmanage['text_image_note'], 1); tr($lang_catmanage['text_class_name'], "
" . $lang_catmanage['text_class_name_note'], 1); tr($lang_catmanage['row_mode']."*", return_category_mode_selection('mode', $mode), 1); tr($lang_catmanage['text_category_icons']."*", category_icon_selection($row['icon_id'] ?? 0), 1); tr($lang_catmanage['col_order'], " " . $lang_catmanage['text_order_note'], 1); } ?>

*", " " . $lang_catmanage['text_subcategory_name_note'], 1); tr($lang_catmanage['col_order'], " " . $lang_catmanage['text_order_note'], 1); ?>
".$lang_catmanage['text_no_record_yet']."

"); else{ list($pagertop, $pagerbottom, $limit) = pager($perpage, $num, $pagerParam); $res = sql_query("SELECT * FROM ".$dbtablename." ORDER BY id ASC ".$limit) or sqlerr(__FILE__, __LINE__); ?>
".$lang_catmanage['text_enabled']."" : "".$lang_catmanage['text_disabled'].""?> ".$lang_catmanage['text_enabled']."" : "".$lang_catmanage['text_disabled'].""?> ".$lang_catmanage['text_enabled']."" : "".$lang_catmanage['text_disabled'].""?> ".$lang_catmanage['text_enabled']."" : "".$lang_catmanage['text_disabled'].""?> ".$lang_catmanage['text_enabled']."" : "".$lang_catmanage['text_disabled'].""?> ".$lang_catmanage['text_enabled']."" : "".$lang_catmanage['text_disabled'].""?> ".$lang_catmanage['text_enabled']."" : "".$lang_catmanage['text_disabled'].""?> ".$lang_catmanage['text_enabled']."" : "".$lang_catmanage['text_disabled'].""?> |
".$lang_catmanage['text_no_record_yet']."

"); else{ list($pagertop, $pagerbottom, $limit) = pager($perpage, $num, $pagerParam); $res = sql_query("SELECT * FROM ".$dbtablename." ORDER BY id ASC ".$limit) or sqlerr(__FILE__, __LINE__); ?>
".$lang_catmanage['text_yes']."" : "".$lang_catmanage['text_no'].""?> ".$lang_catmanage['text_yes']."" : "".$lang_catmanage['text_no'].""?> |
get()->keyBy('id'); $allMedia = \App\Models\Media::query()->get()->keyBy('id'); $allCodec = \App\Models\Codec::query()->get()->keyBy('id'); $allStandard = \App\Models\Standard::query()->get()->keyBy('id'); $allProcessing = \App\Models\Processing::query()->get()->keyBy('id'); $allTeam = \App\Models\Team::query()->get()->keyBy('id'); $allAudioCodec = \App\Models\AudioCodec::query()->get()->keyBy('id'); $dbtablename=return_category_db_table_name($type); $num = get_row_count($dbtablename); if (!$num) print("

".$lang_catmanage['text_no_record_yet']."

"); else{ list($pagertop, $pagerbottom, $limit) = pager($perpage, $num, $pagerParam); $res = sql_query("SELECT * FROM ".$dbtablename." ORDER BY id ASC ".$limit) or sqlerr(__FILE__, __LINE__); ?>
get($row['source']))->name?> get($row['medium']))->name?> get($row['codec']))->name?> get($row['standard']))->name?> get($row['processing']))->name?> get($row['team']))->name?> get($row['audiocodec']))->name?> |
".$lang_catmanage['text_no_record_yet']."

"); else{ list($pagertop, $pagerbottom, $limit) = pager($perpage, $num, $pagerParam); $res = sql_query("SELECT ".$dbtablename.".*, searchbox.name AS catmodename, caticons.name as icon_name FROM ".$dbtablename." LEFT JOIN searchbox ON ".$dbtablename.".mode=searchbox.id left join caticons on caticons.id = $dbtablename.icon_id ORDER BY ".$dbtablename.".mode ASC, ".$dbtablename.".id ASC ".$limit) or sqlerr(__FILE__, __LINE__); ?>
|
delete_value($dbtablename.'_list'); elseif ($type=='searchbox') $Cache->delete_value('searchbox_content'); elseif ($type=='caticon') $Cache->delete_value('category_icon_content'); elseif ($type=='secondicon') $Cache->delete_value('secondicon_'.$row['source'].'_'.$row['medium'].'_'.$row['codec'].'_'.$row['standard'].'_'.$row['processing'].'_'.$row['team'].'_'.$row['audiocodec'].'_content'); elseif ($type=='category'){ $Cache->delete_value('category_content'); $Cache->delete_value('category_list_mode_'.$row['mode']); } } header("Location: ".get_protocol_prefix() . $BASEURL."/catmanage.php?action=view&type=".$type); die(); } elseif($action == 'edit') { $id = intval($_GET['id'] ?? 0); if (!$id) { stderr($lang_catmanage['std_error'], $lang_catmanage['std_invalid_id']); } else { $dbtablename=return_category_db_table_name($type); $res = sql_query ("SELECT * FROM ".$dbtablename." WHERE id = ".sqlesc($id)." LIMIT 1"); if (!$row = mysql_fetch_array($res)) stderr($lang_catmanage['std_error'], $lang_catmanage['std_invalid_id']); else { $typename=return_type_name($type); stdhead($typename); print("
"); print(""); print(""); print_category_editor($type, $row); print("
"); stdfoot(); } } } elseif($action == 'add') { $typename=return_type_name($type); stdhead($lang_catmanage['head_add']." - ".$typename); print("
"); print(""); print_category_editor($type); print("
"); stdfoot(); } elseif($action == 'submit') { $dbtablename=return_category_db_table_name($type); if ($_POST['isedit']){ $id = intval($_POST['id'] ?? 0); if (!$id) { stderr($lang_catmanage['std_error'], $lang_catmanage['std_invalid_id']); } else { $res = sql_query("SELECT * FROM ".$dbtablename." WHERE id = ".sqlesc($id)." LIMIT 1"); if (!$row = mysql_fetch_array($res)) stderr($lang_catmanage['std_error'], $lang_catmanage['std_invalid_id']); } } $updateset = array(); if (in_array($type, $validsubcattype)){ $name = $_POST['name']; if (!$name) stderr($lang_catmanage['std_error'], $lang_catmanage['std_missing_form_data']); $updateset[] = "name=".sqlesc($name); $sort_index = intval($_POST['sort_index'] ?? 0); $updateset[] = "sort_index=".sqlesc($sort_index); $Cache->delete_value($dbtablename.'_list'); } elseif ($type=='searchbox'){ $name = $_POST['name']; $catsperrow = intval($_POST['catsperrow'] ?? 0); $catpadding = intval($_POST['catpadding'] ?? 0); if (!$name || !$catsperrow || !$catpadding) stderr($lang_catmanage['std_error'], $lang_catmanage['std_missing_form_data']); $showsource = intval($_POST['showsource'] ?? 0); $showmedium = intval($_POST['showmedium'] ?? 0); $showcodec = intval($_POST['showcodec'] ?? 0); $showstandard = intval($_POST['showstandard'] ?? 0); $showprocessing = intval($_POST['showprocessing'] ?? 0); $showteam = intval($_POST['showteam'] ?? 0); $showaudiocodec = intval($_POST['showaudiocodec'] ?? 0); $updateset[] = "catsperrow=".sqlesc($catsperrow); $updateset[] = "catpadding=".sqlesc($catpadding); $updateset[] = "name=".sqlesc($name); $updateset[] = "showsource=".sqlesc($showsource); $updateset[] = "showmedium=".sqlesc($showmedium); $updateset[] = "showcodec=".sqlesc($showcodec); $updateset[] = "showstandard=".sqlesc($showstandard); $updateset[] = "showprocessing=".sqlesc($showprocessing); $updateset[] = "showteam=".sqlesc($showteam); $updateset[] = "showaudiocodec=".sqlesc($showaudiocodec); $updateset[] = "custom_fields=" . sqlesc(implode(',', $_POST['custom_fields'] ?? [])); $updateset[] = "custom_fields_display_name=" . sqlesc($_POST['custom_fields_display_name'] ?? ''); $updateset[] = "custom_fields_display=" . sqlesc($_POST['custom_fields_display'] ?? ''); $updateset[] = "extra=" . sqlesc(json_encode($_POST['extra'] ?? [])); if ($showsource || $showmedium || $showcodec || $showstandard || $showprocessing || $showteam || $showaudiocodec) $updateset[] = "showsubcat=1"; else $updateset[] = "showsubcat=0"; if($_POST['isedit']) $Cache->delete_value('searchbox_content'); } elseif ($type=='caticon'){ $name = $_POST['name']; $folder = trim($_POST['folder']); $cssfile = trim($_POST['cssfile']); $multilang = ($_POST['multilang'] == 'yes' ? 'yes' : 'no'); $secondicon = ($_POST['secondicon'] == 'yes' ? 'yes' : 'no'); $designer = $_POST['designer']; $comment = $_POST['comment']; if (!$name || !$folder) stderr($lang_catmanage['std_error'], $lang_catmanage['std_missing_form_data']); if (!valid_file_name($folder)) stderr($lang_catmanage['std_error'], $lang_catmanage['std_invalid_character_in_filename'].htmlspecialchars($folder)); if ($cssfile && !valid_file_name($cssfile)) stderr($lang_catmanage['std_error'], $lang_catmanage['std_invalid_character_in_filename'].htmlspecialchars($cssfile)); $updateset[] = "name=".sqlesc($name); $updateset[] = "folder=".sqlesc($folder); $updateset[] = "multilang=".sqlesc($multilang); $updateset[] = "secondicon=".sqlesc($secondicon); $updateset[] = "cssfile=".sqlesc($cssfile); $updateset[] = "designer=".sqlesc($designer); $updateset[] = "comment=".sqlesc($comment); if($_POST['isedit']) $Cache->delete_value('category_icon_content'); } elseif ($type=='secondicon'){ $name = $_POST['name']; $image = trim($_POST['image']); $class_name = trim($_POST['class_name']); $source = intval($_POST['source'] ?? 0); $medium = intval($_POST['medium'] ?? 0); $codec = intval($_POST['codec'] ?? 0); $standard = intval($_POST['standard'] ?? 0); $processing = intval($_POST['processing'] ?? 0); $team = intval($_POST['team'] ?? 0); $audiocodec = intval($_POST['audiocodec'] ?? 0); if (!$name || !$image) stderr($lang_catmanage['std_error'], $lang_catmanage['std_missing_form_data']); if (!valid_file_name($image)) stderr($lang_catmanage['std_error'], $lang_catmanage['std_invalid_character_in_filename'].htmlspecialchars($image)); if ($class_name && !valid_class_name($class_name)) stderr($lang_catmanage['std_error'], $lang_catmanage['std_invalid_character_in_filename'].htmlspecialchars($class_name)); if (!$source && !$medium && !$codec && !$standard && !$processing && !$team && !$audiocodec) stderr($lang_catmanage['std_error'], $lang_catmanage['std_must_define_one_selection']); $updateset[] = "name=".sqlesc($name); $updateset[] = "image=".sqlesc($image); $updateset[] = "class_name=".sqlesc($class_name); $updateset[] = "source=".sqlesc($source); $updateset[] = "medium=".sqlesc($medium); $updateset[] = "codec=".sqlesc($codec); $updateset[] = "standard=".sqlesc($standard); $updateset[] = "processing=".sqlesc($processing); $updateset[] = "team=".sqlesc($team); $updateset[] = "audiocodec=".sqlesc($audiocodec); if($_POST['isedit']){ $res2=sql_query("SELECT * FROM secondicons WHERE id=".sqlesc($id)." LIMIT 1"); if ($row2=mysql_fetch_array($res)) { $Cache->delete_value('secondicon_'.$row2['source'].'_'.$row2['medium'].'_'.$row2['codec'].'_'.$row2['standard'].'_'.$row2['processing'].'_'.$row2['team'].'_'.$row2['audiocodec'].'_content'); } } $Cache->delete_value('secondicon_'.$source.'_'.$medium.'_'.$codec.'_'.$standard.'_'.$processing.'_'.$team.'_'.$audiocodec.'_content'); } elseif ($type=='category'){ $name = $_POST['name']; $image = trim($_POST['image']); $mode = intval($_POST['mode'] ?? 0); $class_name = trim($_POST['class_name']); $sort_index = intval($_POST['sort_index'] ?? 0); if (!$name || !$image) stderr($lang_catmanage['std_error'], $lang_catmanage['std_missing_form_data']); if (!valid_file_name($image)) stderr($lang_catmanage['std_error'], $lang_catmanage['std_invalid_character_in_filename'].htmlspecialchars($image)); if ($class_name && !valid_class_name($class_name)) stderr($lang_catmanage['std_error'], $lang_catmanage['std_invalid_character_in_filename'].htmlspecialchars($class_name)); if (!$mode) stderr($lang_catmanage['std_error'], $lang_catmanage['std_invalid_mode_id']); $updateset[] = "name=".sqlesc($name); $updateset[] = "image=".sqlesc($image); $updateset[] = "mode=".sqlesc($mode); $updateset[] = "class_name=".sqlesc($class_name); $updateset[] = "sort_index=".sqlesc($sort_index); $updateset[] = "icon_id=".sqlesc(intval($_POST['icon_id'] ?? 0)); if($_POST['isedit']){ $Cache->delete_value('category_content'); } $Cache->delete_value('category_list_mode_'.$mode); } if ($_POST['isedit']) { sql_query("UPDATE ".$dbtablename." SET " . join(",", $updateset) . " WHERE id = ".sqlesc($id)) or sqlerr(__FILE__, __LINE__); } else { sql_query("INSERT INTO ".$dbtablename." SET " . join(",", $updateset) ) or sqlerr(__FILE__, __LINE__); } header("Location: ".get_protocol_prefix() . $BASEURL."/catmanage.php?action=view&type=".$type); } ?>