Example #1
0
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>';
    }
}
Example #2
0
function onoffRadio($field, $var, $tabindex = '', $id = '')
{
    $vals = array('0' => gTxt('off'), '1' => gTxt('on'));
    return radioSet($vals, $field, $var, $tabindex, $id);
}
Example #3
0
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);
}