<?php
//J:\awww\www\fwphp\glomodul\post\Posts.php
declare(strict_types=1); //declare(strict_types=1, encoding='UTF-8');
//FUNCTIONAL, NOT POSITIONAL :
namespace B12phpfw\module\adrs ;
use B12phpfw\core\b12phpfw\Config_allsites as utl ; // init, setings, utilities
//use B12phpfw\core\b12phpfw\Db_allsites as db_shared ;
use B12phpfw\dbadapter\adrs\Tbl_crud as db_module ;
//use B12phpfw\dbadapter\post_comment\Tbl_crud as db_module_comment ;
//use B12phpfw\dbadapter\post_category\Tbl_crud as db_module_category ;
//use B12phpfw\dbadapter\user\Tbl_crud as Tbl_crud_user ;
use B12phpfw\module\adrs\Home_ctr as Home_ctr;
//use PDO;
//$_SESSION["TrackingURL"]=$_SERVER["PHP_SELF"];
// view cls :
class Home extends utl
{
static protected $tbl = 'song' ;
static protected $pp1 ;
//Db_allsites_ORA or Db_allsites for MySql or ... :
static protected $db_shared ; // OBJECT VARIABLE OF (NOT HARD CODED) SHARED DBADAPTER
public function __construct(object $pp1)
{
$pp1->stack_trace[]=str_replace('\\','/', __METHOD__ ).', lin='.__LINE__ ;
self::$pp1 = $pp1 ;
if (isset($pp1->shared_dbadapter_obj)) self::$db_shared = $pp1->shared_dbadapter_obj ;
}
static public function rrt( object $pp1, array $other ): string
{
$pp1->stack_trace[]=str_replace('\\','/', __METHOD__ ).', lin='.__LINE__ ;
if ('') { //if ($module_ arr['dbg']) {
echo '<h3>'.__FILE__ .'() '.', line '. __LINE__ .' said: '.'</h3>' ;
echo '<pre style="font-family:\'Lucida Console\'; font-size:small">';
echo '<b>$pp1</b>='; print_r($pp1);
//echo '<br><b>$_POST</b>='; print_r($_POST);
echo '</pre>'; }
$rcount = db_module::rrcnt(self::$tbl, $other=['caller' => __FILE__ .' '.', ln '. __LINE__ ]) ;
$cursor = db_module::get_all($other=['caller' => __FILE__ .' '.', ln '. __LINE__ ] ) ;
?>
<!-- HEADER -->
<!-- HEADER END -->
<!-- M a i n Area -->
<div class="container">
<b><span id="ajax_pgtitle_box">Adressess (Links) count : </span><?=$rcount?></b>
<!--input type="submit" name="submit_add_song" value="Add row" /-->
<a href="<?=$pp1->module_url.QS.'i/cc/'?>">Add row</a>
<!-- finish this if Ajax is needed : -->
<div style="display: inline;" >
<!--button id="ajax_rcount_btn"
title="<?='Display rows count via jQuery Ajax in ajax_rcount_box
'. $pp1->module_url.QS?>i/ajaxcountr/">
Ajax
</button-->
<span id="ajax_rcount_box"></span>
</div>
Table below is displayed with <a href="https://github.com/fiduswriter/Simple-DataTables" target="_blank">Simple-DataTables</a>
<!-- main content output : List of songs
<table class="table table-sm table-striped" id="table">
-->
<div class="xxbox">
<table id="datatablesSimple">
<thead style="background-color: #ddd; font-weight: bold;">
<tr><td>Id</td><td>Artist</td><td>Track</td><td>Link</td><td> </td><td> </td></tr>
</thead>
<tbody>
<?php
while ( $r = db_module::rrnext($cursor) and isset($r->id) ):
{
$id = (int)($r->id) ; //htmlspecialchars($r->id, ENT_QUOTES, 'UTF-8');
//$id = utl::escp($r->id) ; //Argument #1 ($string) must be of type string, int given
?>
<tr>
<td><?=$id?></td>
<td><?php if (isset($r->artist)) echo utl::escp($r->artist); ?></td>
<td><?php if (isset($r->track)) echo utl::escp($r->track); ?></td>
<td>
<?php if (isset($r->link)) { ?>
<a href="<?=utl::escp($r->link)?>">
<?=utl::escp($r->link)?></a>
<?php } ?>
</td>
<td>
<a id="erase_row" class="btn btn-danger"
onclick="var yes ; yes = jsmsgyn('Erase row <?=$id?>?','') ;
if (yes == '1') { location.href= '<?=$pp1->module_url.QS.'i/dd/id/'.$id?>/'; }"
title="Delete tbl row ID=<?=$id?>"
><b style="color: red">Del</b></a>
</td>
<td><a href="<?=$pp1->module_url.QS.'i/uu/id/'.$id?>">Edit</a></td>
</tr>
<?php } endwhile; ?>
</tbody>
</table>
</div>
<p>This page was shown by View script : <?=__FILE__?></p>
</div><!-- Main Area End -->
<?php
return('1') ;
} //e n d f n r r t
static public function ex1( object $pp1, array $other ): string
{
$pp1->stack_trace[]=str_replace('\\','/', __METHOD__ ).', lin='.__LINE__ ;
if ('') { //if ($module_ arr['dbg']) {
echo '<h3>'. __METHOD__ .'() '.', line '. __LINE__ .' said: '.'</h3>' ;
echo '<pre style="font-family:\'Lucida Console\'; font-size:small">';
echo '<b>$pp1</b>='; print_r($pp1);
//echo '<br><b>$_POST</b>='; print_r($_POST);
echo '</pre>'; }
?>
<!-- -->
<div class="container">
<h2>Control flow in B12phpfw code skeleton</h2>
This page EXAMPLE1 URL (web adress) is :
<h3><?=$pp1->module_url?>?i/ex1/, where :</h3>
<ol>
<li>URL parts :
<pre style="font-family:\'Lucida Console\'; font-size:medium">
<?php echo '<b>$pp1->url_parts</b>='; print_r($pp1->url_parts); ?>
</pre>
</li>
<li>first '/' in URL is web server docroot URL adress=<?=$pp1->wsroot_url?>, oper.system adress=<?=$pp1->wsroot_path?></li>
<li>fwphp is site (folder) under web server docroot <?=$pp1->wsroot_path?>. We may create more site folders.</li>
<li>glomodul is application - group of web pages - modules (like Oracle .fmb-s)</li>
<li>adrs is web page - module (like Oracle .fmb)</li>
<li>i/ex1/ is URL query</li>
<li>i is element 0 of URL query - not used in code</li>
<li>ex1 is element 1 of URL query parts = method in Home_ctr cls and in Home cls (aliased Home_view) where may be named diferent.
<br>URL query parts :
<pre style="font-family:\'Lucida Console\'; font-size:medium">
<?php echo '<b>$pp1->urlqry_parts</b>='; print_r($pp1->urlqry_parts); ?>
</pre>
</li>
<li>
ex1 method in Home_view cls displays this page, is caled so Home_view::ex1($pp1, $other=[... from :
<?php echo '<b>$other[caller] </b>='; echo $other['caller'] ; ?>
</li>
<li>
ex1 method in Home_view cls <?=__METHOD__?> is in script : <?=__FILE__?>.
</li>
</ol>
<p> </p>
<p title="Press the Y key on your keyboard to execute a script. This requires JavaScript to be enabled in your browser">Hit Y to Continue.</p>
<script>
function showkey( e )
{
if( e.keyCode === 89 || e.keyCode === 121 )
{
alert( 'Y pressed. Thank You.' )
}
}
document.onkeydown = showkey
</script>
</div>
<!-- END -->
<?php
return('1') ;
} //e n d f n e x 1
static public function ex2( object $pp1, array $other ): string
{
$pp1->stack_trace[]=str_replace('\\','/', __METHOD__ ).', lin='.__LINE__ ;
if ('') { //if ($module_ arr['dbg']) {
echo '<h3>'. __METHOD__ .'() '.', line '. __LINE__ .' said: '.'</h3>' ;
echo '<pre style="font-family:\'Lucida Console\'; font-size:small">';
echo '<b>$pp1</b>='; print_r($pp1);
//echo '<br><b>$_POST</b>='; print_r($_POST);
echo '</pre>'; }
?>
<!-- -->
<div class="container">
<h2>EXAMPLE2 page recives more parameters</h2>
<ol>
<li>This page URL $_SERVER['REQUEST_URI'] is : <b><?=$pp1->req_uri?></b>
<li>This page EXAMPLE2 RECIVES TWO PARAMETERS (see page EXAMPLE1).
</b>p1 and p2.
<br>All <b>even index values, are not used in code</b> (are programer's info).
URL query parts :
<pre style="font-family:\'Lucida Console\'; font-size:medium">
<?php echo '<b>$pp1->urlqry_parts</b>='; print_r($pp1->urlqry_parts); ?>
</pre>
<ol>
<li>url GET parameter p1=<?=$pp1->urlqry_parts[3]?>, p1 = second even index value (first=0 'i' means "method name in Home_ctr is in next index value 1")
<li>url GET parameter p2=<?=$pp1->urlqry_parts[5]?>
</ol>
</ol>
<p>You are in View: <?=__FILE__?></p>
</div>
<!-- END -->
<?php
return('1') ;
} //e n d f n e x 2
static public function hdr( object $pp1, array $other ): string
{
$pp1->stack_trace[]=str_replace('\\','/', __METHOD__ ).', lin='.__LINE__ ;
if ('') { //if ($module_ arr['dbg']) {
echo '<h3>'. __METHOD__ .'() '.', line '. __LINE__ .' said: '.'</h3>' ;
echo '<pre style="font-family:\'Lucida Console\'; font-size:small">';
echo '<b>$pp1</b>='; print_r($pp1);
//echo '<br><b>$_POST</b>='; print_r($_POST);
echo '</pre>'; }
?>
<!-- -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><?=$pp1->title??'Adrs'?></title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- < 3 kB -->
<link href="/vendor/b12phpfw/themes/mini3.css" rel="stylesheet">
<link href="/vendor/b12phpfw/themes/datatables_s/simple_data_tbl.css" rel="stylesheet">
</head>
<body>
<!-- END -->
<?php
return('1') ;
} //e n d f n h d r
static public function navbar( object $pp1, array $other ): string
{
$pp1->stack_trace[]=str_replace('\\','/', __METHOD__ ).', lin='.__LINE__ ;
if ('') { //if ($module_ arr['dbg']) {
echo '<h3>'. __METHOD__ .'() '.', line '. __LINE__ .' said: '.'</h3>' ;
echo '<pre style="font-family:\'Lucida Console\'; font-size:small">';
echo '<b>$pp1</b>='; print_r($pp1);
//echo '<br><b>$_POST</b>='; print_r($_POST);
echo '</pre>'; }
?>
<!-- -->
<div class="logo"></div>
<!-- navigation -->
<div class="navigation">
<a href="<?=$pp1->module_url?>">home</a>
<a href="<?=$pp1->module_url.QS?>i/ex1/">example1</a>
<a href="<?=$pp1->module_url.QS?>i/ex2/p1/param1/p2/param2/">example2</a>
<a href="<?=$pp1->module_url.QS?>i/rrt/">Addresses</a>
<?=$pp1->dbicls?>
</div>
<!-- NAVBAR END -->
<?php
return('1') ;
} //e n d f n n a v b a r
static public function ftr( object $pp1, array $other ): string
{
$pp1->stack_trace[]=str_replace('\\','/', __METHOD__ ).', lin='.__LINE__ ;
if ('1') { //if ($module_ arr['dbg']) {
echo '<h3>'. __METHOD__ .'() '.', line '. __LINE__ .' said: '.'</h3>' ;
echo '<pre style="font-family:\'Lucida Console\'; font-size:small">';
echo '<b>$pp1</b>='; print_r($pp1);
//echo '<br><b>$_POST</b>='; print_r($_POST);
echo '</pre>'; }
?>
<!-- -->
<div class="footer">
<?=$pp1->module_version?> © Slavko Srako?i?, Zagreb, see on GitHub
<a href="https://github.com/slavkoss/fwphp">B12phpfw</a>.
<br>
This is MINI3 PHP fw on code skeleton B12phpfw. Based on GitHub
<a href="https://github.com/panique/mini3">MINI3</a>.
<?php
if ($pp1->dbg == '1') {echo '<pre>'.__FILE__.' ln='.__LINE__.' said:</pre>';
echo '<pre>';
echo '<br />$pp1='; print_r($pp1) ;
echo '</pre>';
}
?>
</div>
<script>
//var MODULE_URL = "<?=$pp1->module_url?>";
</script>
<script src="<?=$pp1->shares_url?>/util.js" type="text/javascript"></script>
<!-- our JavaScript -->
<script src="<?=$pp1->module_url?>/module.js"></script>
<script src="/vendor/b12phpfw/themes/datatables_s/simple_data_tbl.js"></script>
<script src="/vendor/b12phpfw/themes/datatables_s/simple_data_tbl_new.js"></script>
</body>
</html>
<!-- END -->
<?php
return('1') ;
} //e n d f n f t r
} //e n d c l s
|