function file_edit($message = '', $id = '') { global $file_base_path, $levels, $file_statuses, $txp_user, $event, $all_file_cats; extract(gpsa(array('name', 'title', 'category', 'permissions', 'description', 'sort', 'dir', 'page', 'crit', 'search_method', 'publish_now'))); if (!$id) { $id = gps('id'); } $id = assert_int($id); $rs = safe_row('*, unix_timestamp(created) as created, unix_timestamp(modified) as modified', 'txp_file', "id = {$id}"); if ($rs) { extract($rs); $filename = sanitizeForFile($filename); if (!has_privs('file.edit') && !($author == $txp_user && has_privs('file.edit.own'))) { file_list(gTxt('restricted_area')); return; } pagetop(gTxt('edit_file'), $message); if ($permissions == '') { $permissions = '-1'; } if (!has_privs('file.publish') && $status >= STATUS_LIVE) { $status = STATUS_PENDING; } $file_exists = file_exists(build_file_path($file_base_path, $filename)); $existing_files = get_filenames(); $replace = $file_exists ? '<div class="summary-details replace-file">' . n . '<h3>' . gTxt('replace_file') . sp . popHelp('file_replace') . '</h3>' . n . '<div>' . n . file_upload_form('', '', 'file_replace', $id, 'file_replace') . n . '</div>' . n . '</div>' . n : '<div class="summary-details upload-file">' . n . '<h3>' . gTxt('file_relink') . sp . popHelp('file_reassign') . '</h3>' . n . '<div>' . n . file_upload_form('', '', 'file_replace', $id, 'file_reassign') . n . '</div>' . n . '</div>' . n; $condition = '<span class="' . ($file_exists ? 'success' : 'error') . '">' . ($file_exists ? gTxt('file_status_ok') : gTxt('file_status_missing')) . '</span>'; $downloadlink = $file_exists ? make_download_link($id, txpspecialchars($filename), $filename) : txpspecialchars($filename); $created = graf(checkbox('publish_now', '1', $publish_now, '', 'publish_now') . '<label for="publish_now">' . gTxt('set_to_now') . '</label>', ' class="edit-file-publish-now"') . n . graf(gTxt('or_publish_at') . sp . popHelp('timestamp'), ' class="edit-file-publish-at"') . n . graf('<span class="label">' . gtxt('date') . '</span>' . n . tsi('year', '%Y', $rs['created']) . ' / ' . n . tsi('month', '%m', $rs['created']) . ' / ' . n . tsi('day', '%d', $rs['created']), ' class="edit-file-published"') . n . graf('<span class="label">' . gTxt('time') . '</span>' . n . tsi('hour', '%H', $rs['created']) . ' : ' . n . tsi('minute', '%M', $rs['created']) . ' : ' . n . tsi('second', '%S', $rs['created']), ' class="edit-file-created"'); echo n . '<div id="' . $event . '_container" class="txp-container">'; echo '<div class="txp-edit">', hed(gTxt('edit_file'), 2), inputLabel('condition', $condition) . n, inputLabel('name', $downloadlink) . n, inputLabel('download_count', $downloads) . n, $replace . n, '<div class="file-detail ' . ($file_exists ? '' : 'not-') . 'exists">' . n, form(($file_exists ? inputLabel('file_status', radioSet($file_statuses, 'status', $status)) . n . inputLabel('file_title', fInput('text', 'title', $title, '', '', '', INPUT_REGULAR, '', 'file_title'), 'title') . n . inputLabel('file_category', treeSelectInput('category', $all_file_cats, $category, 'file_category'), 'file_category') . n . inputLabel('file_description', '<textarea id="file_description" name="description" rows="' . INPUT_XSMALL . '" cols="' . INPUT_LARGE . '">' . $description . '</textarea>', 'description', '', '', '') . n . '<fieldset class="file-created">' . n . '<legend>' . n . gTxt('timestamp') . n . '</legend>' . n . $created . n . '</fieldset>' . n . pluggable_ui('file_ui', 'extend_detail_form', '', $rs) . graf(fInput('submit', '', gTxt('Save'), 'publish')) . n . hInput('filename', $filename) : (empty($existing_files) ? '' : gTxt('existing_file') . n . selectInput('filename', $existing_files, '', 1)) . n . pluggable_ui('file_ui', 'extend_detail_form', '', $rs) . n . graf(fInput('submit', '', gTxt('Save'), 'publish')) . n . hInput('category', $category) . n . hInput('perms', $permissions == '-1' ? '' : $permissions) . n . hInput('title', $title) . n . hInput('description', $description) . n . hInput('status', $status)) . eInput('file') . n . sInput('file_save') . n . hInput('id', $id) . n . hInput('sort', $sort) . n . hInput('dir', $dir) . n . hInput('page', $page) . n . hInput('crit', $crit) . n . hInput('search_method', $search_method), '', '', 'post', 'edit-form', '', $file_exists ? 'file_details' : 'assign_file'), '</div>' . n, '</div>' . n . '</div>'; } }
function onoffRadio($field, $var, $tabindex = '', $id = '') { $vals = array('0' => gTxt('off'), '1' => gTxt('on')); return radioSet($vals, $field, $var, $tabindex, $id); }
function smd_ebook_prefs($msg = '') { global $smd_ebook_event, $smd_ebook_prefs, $step; require_privs('plugin_prefs.' . $smd_ebook_event); if (ps('smd_ebook_pref_save')) { foreach ($smd_ebook_prefs as $idx => $prefobj) { $val = ps($idx); $val = is_array($val) ? join(', ', $val) : $val; set_pref($idx, doSlash($val), 'smd_ebook', $prefobj['type'], $prefobj['html'], $prefobj['position']); } $msg = gTxt('preferences_saved'); } pagetop(gTxt('smd_ebook_tab_name'), $msg); extract(smd_ebook_buttons('prf')); $btnbar = has_privs('plugin_prefs.' . $smd_ebook_event) ? '<span class="smd_ebook_buttons">' . $btnMgr . n . $btnPrf . n . $btnCln . '</span>' : ''; echo n . <<<EOJS <script type="text/javascript"> jQuery(function() { jQuery("select[name='smd_ebook_fld_uid'], select[name='smd_ebook_fld_title'], select[name='smd_ebook_fld_chaptitle'], select[name='smd_ebook_fld_author'], select[name='smd_ebook_fld_description'], select[name='smd_ebook_fld_authornote'], select[name='smd_ebook_fld_subject'], select[name='smd_ebook_fld_publisher'], select[name='smd_ebook_fld_srp']").change(function() { var xtra = jQuery(this).attr('name') + '_fixed'; if (jQuery('option:selected', this).val() === 'SMD_FIXED') { jQuery("input[name='"+xtra+"']").parent().parent().show('normal'); } else { jQuery("input[name='"+xtra+"']").parent().parent().hide('fast'); } }).change(); }); </script> EOJS; echo n . '<div id="' . $smd_ebook_event . '_control" class="txp-control-panel">' . $btnbar . '</div>'; $out = array(); $out[] = n . '<div class="plugin-column">'; $out[] = '<form name="smd_ebook_prefs" id="smd_ebook_prefs" class="prefs-form" action="index.php" method="post">'; $out[] = '<div class="txp-layout-textbox">'; $out[] = eInput($smd_ebook_event); $out[] = sInput('smd_ebook_prefs'); $grpout = array(); foreach ($smd_ebook_prefs as $idx => $prefobj) { $val = get_pref($idx, $prefobj['default'], 1); $vis = isset($prefobj['visible']) && !$prefobj['visible'] ? 'smd_hidden' : ''; switch ($prefobj['html']) { case 'text_input': $grpout[$prefobj['group']][] = inputLabel($idx, fInput('text', $idx, $val, '', '', '', '', '', $idx), $idx, '', $vis); break; case 'yesnoradio': $grpout[$prefobj['group']][] = inputLabel($idx, yesnoRadio($idx, $val), '', '', $vis); break; case 'radioset': $grpout[$prefobj['group']][] = inputLabel($idx, radioSet($prefobj['content'], $idx, $val), '', '', $vis); break; case 'checkboxset': $vals = do_list($val); $lclout = array(); foreach ($prefobj['content'] as $cb => $val) { $checked = in_array($cb, $vals); $lclout[] = checkbox($idx . '[]', $cb, $checked) . gTxt($val); } $grpout[$prefobj['group']][] = inputLabel($idx, join(n, $lclout), '', '', $vis); break; case 'selectlist': $grpout[$prefobj['group']][] = inputLabel($idx, selectInput($idx, $prefobj['content'][0], $val, $prefobj['content'][1], '', $idx), $idx, '', $vis); break; default: if (strpos($prefobj['html'], 'smd_ebook_') !== false && is_callable($prefobj['html'])) { $grpout[$prefobj['group']][] = inputLabel($idx, $prefobj['html']($idx, $val), $idx, '', $vis); } break; } } foreach ($grpout as $grp => $content) { $out[] = '<div role="region" id="smd_ebook_group_' . $grp . '" class="txp-details" aria-labelledby="smd_ebook_group_' . $grp . '-label">' . n . '<h3 id="smd_ebook_group_' . $grp . '-label" class="lever txp-summary' . (get_pref('pane_' . $grp . '_visible') ? ' expanded' : '') . '">' . n . '<a href="#' . $grp . '" role="button">' . gTxt($grp) . '</a>' . n . '</h3>' . n . '<div id="' . $grp . '" class="toggle" role="group" style="display:' . (get_pref('pane_' . $grp . '_visible') ? 'block' : 'none') . '">'; foreach ($content as $row) { $out[] = $row; } $out[] = '</div>'; $out[] = '</div>'; } if (smd_ebook_kindlegen_available()) { $out[] = graf($btnTst); } if ($step === 'smd_ebook_test') { $out[] = graf(text_area('smd_ebook_test_results', 150, 200, ps('smd_ebook_test_output'))); } $out[] = graf(fInput('submit', 'smd_ebook_pref_save', gTxt('save'), 'publish')); $out[] = tInput(); $out[] = '</div></form></div>'; echo join(n, $out); }