function file_download_list($atts) { global $thisfile; extract(lAtts(array('break' => br, 'category' => '', 'class' => __FUNCTION__, 'form' => 'files', 'label' => '', 'labeltag' => '', 'limit' => '10', 'offset' => '0', 'sort' => 'filename asc', 'wraptag' => '', 'status' => '4'), $atts)); if (!is_numeric($status)) { $status = getStatusNum($status); } $where = array('1=1'); if ($category) { $where[] = "category IN ('" . join("','", doSlash(do_list($category))) . "')"; } if ($status) { $where[] = "status = '" . doSlash($status) . "'"; } $qparts = array('order by ' . doSlash($sort), $limit ? 'limit ' . intval($offset) . ', ' . intval($limit) : ''); $rs = safe_rows_start('*, unix_timestamp(created) as created, unix_timestamp(modified) as modified', 'txp_file', join(' and ', $where) . ' ' . join(' ', $qparts)); if ($rs) { $out = array(); while ($thisfile = nextRow($rs)) { $out[] = parse_form($form); $thisfile = ''; } if ($out) { if ($wraptag == 'ul' or $wraptag == 'ol') { return doLabel($label, $labeltag) . doWrap($out, $wraptag, $break, $class); } return $wraptag ? tag(join($break, $out), $wraptag) : join(n, $out); } } return ''; }
function doArticle($atts) { global $pretext, $prefs, $thisarticle; extract($prefs); extract($pretext); extract(gpsa(array('parentid', 'preview'))); extract(lAtts(array('allowoverride' => '1', 'form' => 'default', 'status' => '4'), $atts, 0)); if ($status and !is_numeric($status)) { $status = getStatusNum($status); } if (empty($thisarticle) or $thisarticle['thisid'] != $id) { $thisarticle = NULL; $q_status = $status ? 'and Status = ' . intval($status) : 'and Status in (4,5)'; $rs = safe_row("*, unix_timestamp(Posted) as uPosted", "textpattern", 'ID = ' . intval($id) . " {$q_status} limit 1"); if ($rs) { extract($rs); populateArticleData($rs); } } if (!empty($thisarticle) and $thisarticle['status'] == $status) { extract($thisarticle); $thisarticle['is_first'] = 1; $thisarticle['is_last'] = 1; $form = ($allowoverride and $override_form) ? $override_form : $form; $article = parse_form($form); if ($use_comments and $comments_auto_append) { $article .= parse_form('comments_display'); } unset($GLOBALS['thisarticle']); return $article; } }
function doArticle($atts) { global $pretext, $prefs; extract($prefs); extract($pretext); $preview = ps('preview'); $parentid = ps('parentid'); extract(lAtts(array('form' => 'default', 'status' => ''), $atts)); if ($status and !is_numeric($status)) { $status = getStatusNum($status); } $q_status = $status ? "and Status='" . doSlash($status) . "'" : 'and Status in (4,5)'; $rs = safe_row("*, unix_timestamp(Posted) as uPosted", "textpattern", "ID='" . intval($id) . "' {$q_status} limit 1"); if ($rs) { extract($rs); populateArticleData($rs); $GLOBALS['thisarticle']['is_first'] = 1; $GLOBALS['thisarticle']['is_last'] = 1; // define the article form $article = fetch_form($override_form ? $override_form : $form); if ($preview && $parentid) { $article = '<txp:comments_preview bc="1" id="' . $parentid . '" />' . $article; } $article = parse($article); if ($use_comments and $comments_auto_append) { $f = fetch_form('comments_display'); $article .= parse($f); } unset($GLOBALS['thisarticle']); return $article; } }
function file_download_list($atts, $thing = NULL) { global $s, $c, $context, $thisfile, $thispage, $pretext; extract(lAtts(array('break' => br, 'category' => '', 'author' => '', 'realname' => '', 'auto_detect' => 'category, author', 'class' => __FUNCTION__, 'form' => 'files', 'id' => '', 'label' => '', 'labeltag' => '', 'pageby' => '', 'limit' => 10, 'offset' => 0, 'sort' => 'filename asc', 'wraptag' => '', 'status' => '4'), $atts)); if (!is_numeric($status)) { $status = getStatusNum($status); } // N.B. status treated slightly differently $where = $statwhere = array(); $filters = isset($atts['id']) || isset($atts['category']) || isset($atts['author']) || isset($atts['realname']) || isset($atts['status']); $context_list = empty($auto_detect) || $filters ? array() : do_list($auto_detect); $pageby = $pageby == 'limit' ? $limit : $pageby; if ($category) { $where[] = "category IN ('" . join("','", doSlash(do_list($category))) . "')"; } $ids = array_map('intval', do_list($id)); if ($id) { $where[] = "id IN ('" . join("','", $ids) . "')"; } if ($status) { $statwhere[] = "status = '" . doSlash($status) . "'"; } if ($author) { $where[] = "author IN ('" . join("','", doSlash(do_list($author))) . "')"; } if ($realname) { $authorlist = safe_column('name', 'txp_users', "RealName IN ('" . join("','", doArray(doSlash(do_list($realname)), 'urldecode')) . "')"); $where[] = "author IN ('" . join("','", doSlash($authorlist)) . "')"; } // If no files are selected, try... if (!$where && !$filters) { foreach ($context_list as $ctxt) { switch ($ctxt) { case 'category': // ... the global category in the URL if ($context == 'file' && !empty($c)) { $where[] = "category = '" . doSlash($c) . "'"; } break; case 'author': // ... the global author in the URL if ($context == 'file' && !empty($pretext['author'])) { $where[] = "author = '" . doSlash($pretext['author']) . "'"; } break; } // Only one context can be processed if ($where) { break; } } } if (!$where && !$statwhere && $filters) { return ''; // If nothing matches, output nothing } if (!$where) { $where[] = "1=1"; // If nothing matches, start with all files } $where = join(' AND ', array_merge($where, $statwhere)); // Set up paging if required if ($limit && $pageby) { $grand_total = safe_count('txp_file', $where); $total = $grand_total - $offset; $numPages = $pageby > 0 ? ceil($total / $pageby) : 1; $pg = !$pretext['pg'] ? 1 : $pretext['pg']; $pgoffset = $offset + ($pg - 1) * $pageby; // send paging info to txp:newer and txp:older $pageout['pg'] = $pg; $pageout['numPages'] = $numPages; $pageout['s'] = $s; $pageout['c'] = $c; $pageout['context'] = 'file'; $pageout['grand_total'] = $grand_total; $pageout['total'] = $total; if (empty($thispage)) { $thispage = $pageout; } } else { $pgoffset = $offset; } // preserve order of custom file ids unless 'sort' attribute is set if (!empty($atts['id']) && empty($atts['sort'])) { $safe_sort = 'field(id, ' . join(',', $ids) . ')'; } else { $safe_sort = doSlash($sort); } $qparts = array('order by ' . $safe_sort, $limit ? 'limit ' . intval($pgoffset) . ', ' . intval($limit) : ''); $rs = safe_rows_start('*', 'txp_file', $where . ' ' . join(' ', $qparts)); if ($rs) { $out = array(); while ($a = nextRow($rs)) { $thisfile = file_download_format_info($a); $out[] = $thing ? parse($thing) : parse_form($form); $thisfile = ''; } if ($out) { return doLabel($label, $labeltag) . doWrap($out, $wraptag, $break, $class); } } return ''; }
function file_download_list($atts, $thing = NULL) { global $thisfile; extract(lAtts(array('break' => br, 'category' => '', 'class' => __FUNCTION__, 'form' => 'files', 'label' => '', 'labeltag' => '', 'limit' => 10, 'offset' => 0, 'sort' => 'filename asc', 'wraptag' => '', 'status' => '4'), $atts)); if (!is_numeric($status)) { $status = getStatusNum($status); } $where = array('1=1'); if ($category) { $where[] = "category IN ('" . join("','", doSlash(do_list($category))) . "')"; } if ($status) { $where[] = "status = '" . doSlash($status) . "'"; } $qparts = array('order by ' . doSlash($sort), $limit ? 'limit ' . intval($offset) . ', ' . intval($limit) : ''); $rs = safe_rows_start('*', 'txp_file', join(' and ', $where) . ' ' . join(' ', $qparts)); if ($rs) { $out = array(); while ($a = nextRow($rs)) { $thisfile = file_download_format_info($a); $out[] = $thing ? parse($thing) : parse_form($form); $thisfile = ''; } if ($out) { return doLabel($label, $labeltag) . doWrap($out, $wraptag, $break, $class); } } return ''; }