Move technical tools to /dev as submodules

This commit is contained in:
nobody 2022-05-03 03:41:08 -07:00
parent 4f8814f587
commit 48e1ae73ea
12 changed files with 171 additions and 12 deletions

89
Code/Module/Dev.php Normal file
View file

@ -0,0 +1,89 @@
<?php
/**
* @file Code/Module/Dev.php
* @brief dev controller.
*
* Controller for the /dev/ area.
*/
namespace Code\Module;
use App;
use Code\Web\Controller;
use Code\Web\SubModule;
use Code\Lib\Config;
use Code\Lib\Channel;
use Code\Lib\Navbar;
use Code\Lib\Addon;
use Code\Render\Theme;
/**
* @brief dev area.
*
*/
class Dev extends Controller
{
private $sm = null;
public function __construct()
{
$this->sm = new SubModule();
}
public function init()
{
logger('dev_init', LOGGER_DEBUG);
if (argc() > 1) {
$this->sm->call('init');
}
}
public function post()
{
logger('dev_post', LOGGER_DEBUG);
if (argc() > 1) {
$this->sm->call('post');
}
}
/**
* @return string
*/
public function get()
{
logger('dev_content', LOGGER_DEBUG);
/*
* Page content
*/
Navbar::set_selected('Dev');
$o = '';
if (argc() > 1) {
$o = $this->sm->call('get');
if ($o === false) {
notice(t('Item not found.'));
}
}
if (is_ajax()) {
echo $o;
killme();
} else {
return $o;
}
}
}

View file

@ -1,6 +1,6 @@
<?php
namespace Code\Module;
namespace Code\Module\Dev;
use App;
use Code\Web\Controller;

View file

@ -0,0 +1,55 @@
<?php
namespace Code\Module\Dev;
use Code\Render\Theme;
class Customsql
{
public function get()
{
$o = '';
if (!is_site_admin()) {
logger('admin denied.');
return;
}
$query = [ 'query', 'Enter an SQL query', '', '' ];
$ok = [ 'ok', 'OK to show all results?', '', '' ];
$o = replace_macros(Theme::get_template('customsql.tpl'), [
'$title' => t('Custom SQL query'),
'$warn' => t('If you do not know exactly what you are doing, please leave this page now.'),
'$query' => $query,
'$form_security_token' => get_form_security_token('dev_customsql'),
'$ok' => $ok,
'$submit' => t('Submit')
]);
if (isset($_REQUEST['query']) && $_REQUEST['query']) {
check_form_security_token_redirectOnErr('/dev/customsql', 'dev_customsql');
$o .= EOL . EOL;
$r = q($_REQUEST['query']);
if (is_array($r) && count($r) > 500 && !isset($_REQUEST['ok'])) {
notice ( t('Too many results.') . EOL);
}
elseif (is_array($r)) {
$o .= '"' . $_REQUEST['query'] . '" ' . sprintf( t('returned %d results'), count($r));
$o .= EOL. EOL;
$o .= '<pre>' . print_array($r) . '</pre>';
}
else {
$o .= t('Query returned: ') . (($r) ? t('true') : t('false')) ;
}
}
return $o;
}
}

View file

@ -1,6 +1,6 @@
<?php
namespace Code\Module;
namespace Code\Module\Dev;
use Code\Web\Controller;
@ -12,7 +12,7 @@ class Xchan extends Controller
$o = '<h3>' . t('Xchan Lookup') . '</h3>';
$o .= '<form action="xchan" method="get">';
$o .= '<form action="dev/xchan" method="get">';
$o .= t('Lookup xchan beginning with (or webbie): ');
$o .= '<input type="text" style="width:250px;" name="addr" value="' . $_GET['addr'] . '">';
$o .= '<input type="submit" name="submit" value="' . t('Submit') . '"></form>';

View file

@ -1,6 +1,6 @@
<?php
namespace Code\Module;
namespace Code\Module\Dev;
use App;
use Code\Lib\ZotURL;

View file

@ -1,6 +1,6 @@
<?php
namespace Code\Module;
namespace Code\Module\Dev;
/*
* Zotfinger

View file

@ -60,12 +60,12 @@ class Admin
Hook::call('admin_aside', $arr);
$o .= replace_macros(Theme::get_template('admin_aside.tpl'), array(
'$admin' => $aside,
'$admin' => $arr['links'],
'$admtxt' => t('Admin'),
'$plugadmtxt' => t('Addon Features'),
'$plugins' => $plugins,
'$plugins' => $arr['plugins'],
'$logtxt' => t('Logs'),
'$logs' => $logs,
'$logs' => $arr['logs'],
'$h_pending' => t('Member registrations waiting for confirmation'),
'$admurl' => z_root() . '/admin/'
));

View file

@ -86,7 +86,7 @@ class dba_pdo extends dba_driver
$result = null;
$this->error = '';
$select = ((stripos($sql, 'select') === 0) ? true : false);
$select = ((stripos($sql, 'select') === 0 || stripos($sql, 'show') === 0 || stripos($sql, 'explain') === 0) ? true : false);
try {
$result = $this->db->query($sql, PDO::FETCH_ASSOC);

View file

@ -1,6 +1,6 @@
<h3>{{$page_title}}</h3>
<form action="ap_probe" method="get">
<form action="dev/ap_probe" method="get">
{{include file="field_input.tpl" field=$resource}}
{{include file="field_checkbox.tpl" field=$authf}}
<input type="submit" name="submit" value="{{$submit}}" >

15
view/tpl/customsql.tpl Executable file
View file

@ -0,0 +1,15 @@
<div class="generic-content-wrapper" id='customsql'>
<div class="section-title-wrapper"><h1>{{$title}}</h1></div>
<div class="section-content-wrapper">
<div class="descriptive_text">{{$warn}}</div>
<br><br>
<form action="dev/customsql" method="post">
<input type="hidden" name="form_security_token" value="{{$form_security_token}}">
{{include file="field_textarea.tpl" field=$query}}
{{include file="field_checkbox.tpl" field=$ok}}
<div class="settings-submit-wrapper" >
<button type="submit" name="done" value="{{$submit}}" class="btn btn-primary">{{$submit}}</button>
</div>
</form>
</div>
</div>

View file

@ -1,6 +1,6 @@
<h3>{{$page_title}}</h3>
<form action="zot_probe" method="get">
<form action="dev/zot_probe" method="get">
{{include file="field_input.tpl" field=$resource}}
{{include file="field_checkbox.tpl" field=$authf}}
<input type="submit" name="submit" value="{{$submit}}" >

View file

@ -1,6 +1,6 @@
<h3>{{$page_title}}</h3>
<form action="zotfinger" method="get">
<form action="dev/zotfinger" method="get">
{{include file="field_input.tpl" field=$resource}}
<input type="submit" name="submit" value="{{$submit}}" >
</form>