function cn_blank($cnstr, $sid, $addnos = array(), $force = 0) { //force:强行覆盖第一个文件,为0时为修复链接 global $enablestatic; $suffix = $sid ? ($cnstr ? '&' : '') . "sid={$sid}" : ''; if ($cnstr) { if (!($cnode = read_cnode($cnstr, $sid))) { return; } if (!is_array($addnos)) { $addnos = array($addnos); } if (!$addnos) { return; } $statics = empty($cnode['statics']) ? array() : explode(',', $cnode['statics']); for ($i = 0; $i <= $cnode['addnum']; $i++) { if (in_array($i, $addnos)) { if (empty($statics[$i]) ? $enablestatic : ($statics[$i] == 1 ? 0 : 1)) { $cnfile = M_ROOT . m_parseurl(cn_format($cnstr, $i, $cnode), array('page' => 1)); if ($force || !is_file($cnfile)) { @str2file(direct_html("index.php?{$cnstr}{$suffix}" . ($i ? "&&addno={$i}" : '')), $cnfile); } } } } } elseif ($sid) { $cnfile = M_ROOT . m_parseurl(idx_format($sid), array('page' => 1)); if ($force || !is_file($cnfile)) { @str2file(direct_html("index.php?{$suffix}"), $cnfile); } } }
$fromstr = empty($fromid) ? "" : "cnid>{$fromid}"; $nwheresql = !$wheresql ? $fromstr ? "WHERE {$fromstr}" : "" : $wheresql . ($fromstr ? " AND " : "") . $fromstr; $query = $db->query("SELECT cnid,ename {$fromsql} {$nwheresql} ORDER BY cnid ASC LIMIT 0,{$atpp}"); while ($item = $db->fetch_array($query)) { $selectid[] = $item['cnid']; } } if (empty($selectid)) { amessage('selectcnode', "?entry={$entry}&action={$action}{$param_suffix}&page={$page}{$filterstr}"); } } if (!empty($cndeal['delete'])) { $query = $db->query("SELECT * {$fromsql} WHERE cnid " . multi_str($selectid)); while ($r = $db->fetch_array($query)) { for ($i = 0; $i <= $r['addnum']; $i++) { m_unlink(m_parseurl(cn_format($r['ename'], $i, $r), array('addno' => $i))); } } $db->query("DELETE {$fromsql} WHERE cnid " . multi_str($selectid), 'UNBUFFERED'); } else { if (!empty($cndeal['addnum'])) { $db->query("UPDATE {$tblprefix}cnodes SET addnum='" . min(empty($cn_max_addno) ? 0 : $cn_max_addno, max(0, intval($cnaddnum))) . "' WHERE cnid " . multi_str($selectid)); } $tplarr = $wtplarr = $urlarr = $staticarr = $periodarr = array(); for ($i = 0; $i <= $cn_max_addno; $i++) { foreach (array('tpl', 'wtpl', 'url', 'static', 'period') as $var) { if (!empty($cndeal[$var . $i])) { ${$var . 'arr'}[$i] = ${'cn' . $var . $i}; } } }
function index_unstatic($cnstr = '', $addno, $needwri = 1) { global $sid; if ($cnstr) { if (!($cnode = read_cnode($cnstr, $sid))) { return; } $cnformat = cn_format($cnstr, $addno, $cnode); } else { $cnformat = idx_format($sid); } m_unlink($cnformat); if ($cnstr || $sid) { cn_blank($cnstr, $sid, $addno, 1); } $needwri && cn_update_needstatic($cnstr, $sid, $addno, 1); return true; }
function view_cnurl(&$cnstr, &$cnode) { global $enablestatic, $cn_max_addno, $cn_urls, $wap_suffix; if (empty($cnode)) { return; } if (defined('WAP_MODE')) { for ($i = 0; $i <= $cn_max_addno; $i++) { $cnode['indexurl' . ($i ? $i : '')] = $i <= @$cnode['addnum'] ? view_url("wap/index.php?{$cnstr}" . ($i ? "&addno={$i}" : '') . (empty($cnode['sid']) ? '' : '&sid=' . $cnode['sid']) . $wap_suffix) : '#'; } } elseif (!empty($cnode['appurl'])) { for ($i = 0; $i <= $cn_max_addno; $i++) { $cnode['indexurl' . ($i ? $i : '')] = $cnode['appurl']; } } else { $staticarr = empty($cnode['statics']) ? array() : explode(',', $cnode['statics']); for ($i = 0; $i <= $cn_max_addno; $i++) { if (empty($staticarr[$i]) ? $enablestatic : ($staticarr[$i] == 1 ? 0 : 1)) { $cnode['indexurl' . ($i ? $i : '')] = $i <= @$cnode['addnum'] ? view_url(m_parseurl(cn_format($cnstr, $i, $cnode), array('page' => 1))) : '#'; } else { $cnode['indexurl' . ($i ? $i : '')] = $i <= @$cnode['addnum'] ? view_url(en_virtual("index.php?{$cnstr}" . ($i ? "&addno={$i}" : '') . (empty($cnode['sid']) ? '' : '&sid=' . $cnode['sid']), 1)) : '#'; } } } }