function render($mode, &$renderer, $data) { $elements = array('ft' => 'features', 'bug' => 'bugs'); if ($mode == 'xhtml') { if (isset($data['repository'])) { if (isset($data['limit']) && is_numeric($data['limit'])) { $limit = (int) $data['limit']; } else { $limit = 10; } if (empty($data['bare'])) { $bare = false; } else { $bare = true; } $log = git_get_log($data['repository'], $limit, $bare); $renderer->doc .= '<ul class="dokugitviewer">'; foreach ($log as $row) { $renderer->doc .= '<li>'; $message = $row['message']; for ($index = 0; $index < strlen($message); $index++) { $char = $message[$index]; if ($char == '#') { foreach (array_keys($elements) as $element) { $cmp = '#' . $element; $src = substr($message, $index, strlen($cmp)); if (strstr($src, $cmp)) { $key = substr($message, $index + 1, strlen($cmp) - 1); $src = substr($message, $index + 1 + strlen($key)); $value = substr($src, 0, find_end($src)); $index += strlen($element . $value); $renderer->internallink($data[$elements[$element]] . '#' . $element . $value, '#' . $element . $value); } } } else { $renderer->doc .= $char; } } //$renderer->doc .= '<strong>'.$message.'</strong>'; $renderer->doc .= '<br />'; $renderer->doc .= $row['author'] . ' on '; $renderer->doc .= date(DATE_FORMAT, $row['timestamp']); $renderer->doc .= '</li>'; } $renderer->doc .= '</ul>'; } return true; } return false; }
function plug_codev($p, $o, $fc = '') { //echo $fc; $dr = ($p == 'plug' ? $p : 'progb') . '/'; $oa = $o . '.php'; if (!is_file($dr . $oa)) { $oa = $o . '.js'; } $sav = 'save: ' . $oa; if ($p) { $d = read_file($dr . $oa); } $d = str_replace(array('<' . '?php' . "\n", "\n" . '?' . '>', '<' . '?php', '?' . '>'), '', $d); if ($fc) { $d = find_end($d, 'function ' . $fc . '(', '{', '}'); } //$ret.=txarea('txt',htmlentities($d),52,26,atc('console')).br(); $ret .= lj('', 'codev_plugin___codev_' . $p . '_' . $o . '_' . $fc, picto('reload')) . ' '; $ret .= btd('bts', lj('popsav', 'cbk_plug__xd_codev_codsav_' . $p . '|' . ajx($oa) . '|' . ajx($fc) . '__txt', $sav)) . btd('cbk', '') . br(); $ret .= '<textarea id="txt" class="console" style="min-width:550px; min-height:320px;">' . $d . '</textarea>'; //htmlentities return divd('codev', $ret); }
function treat_funcs($j, $k, $v, $i) { $f = $j . '/' . $v; //dr,nm,nm.php,nb if (is_file($f) && $v == $_SESSION['file'] or !$_SESSION['file']) { $v = read_file($f); $na = substr_count($v, '{'); $nb = substr_count($v, '}'); if ($na != $nb) { return '//error: illegal nb of {' . $na . '/' . $nb . '}'; } $reb = splitfuncs($v); //p($reb); $rea = $reb[0]; if (is_array($reb[1])) { $_SESSION['rec'] += $reb[1]; } if ($_SESSION['func']) { $ret = find_end($rea, 'function ' . $_SESSION['func'] . '(', '{', '}'); $ret = str_replace(array('<' . '?php', '?' . '>'), '', $ret); } else { $ret = $v; } } return $ret; }
function func_sav($fa, $fb, $va) { if (!auth(6)) { return; } if ($fa) { list($d, $p, $f) = explode('|', $fa); } $fb = $d . '/' . $p . '.php'; $va = substr(ajx($va, 1), 0, -1); if (is_file($fb)) { //echo $fab; $t = read_file($fb); $od = find_end($t, 'function ' . $f . '(', '{', '}'); $t = str_replace($od, $va . '}', $t); //echo txarea('',$od,40,20); $va = str_replace("\r", "\n", $va); $defs = array($d, $p, $f, $va); msql_modif('server', 'program_dev', $defs, $dfb, 'one', time()); echo write_file($fb, $t); } return btn('txtyl', 'saved'); }