138 lines
3.4 KiB
PHP
138 lines
3.4 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Améliore la sortie print
|
|
*
|
|
* @author Tatane http://www.tatane.info/index.php/print_rn
|
|
* @author http://www.blog.cactuscrew.com/77-print_rn.html
|
|
* @author Knah Tsaeb <Knah-Tsaeb_mynovi@knah-tsaeb.org>
|
|
* @global
|
|
* @param mixed $data
|
|
* @param string $name Default: ''
|
|
* @return void
|
|
*/
|
|
function n_print($data, $name = '')
|
|
{
|
|
$aBackTrace = debug_backtrace();
|
|
echo '<h2>', $name, '</h2>';
|
|
echo '<fieldset style="border: 1px solid orange; padding: 5px;color: #333; background-color: #fff;">';
|
|
echo '<legend style="border:1px solid orange;padding: 1px;background-color:#eee;color:orange;">', basename($aBackTrace[0]['file']), ' ligne => ', $aBackTrace[0]['line'], '</legend>';
|
|
echo '<pre>', htmlentities(print_r($data, 1)), '</pre>';
|
|
echo '</fieldset><br />';
|
|
}
|
|
|
|
/**
|
|
* Return list dir of content
|
|
*
|
|
* @author Knah Tsaeb <Knah-Tsaeb_mynovi@knah-tsaeb.org>
|
|
* @global
|
|
* @return array
|
|
*/
|
|
function listDir()
|
|
{
|
|
$dirList = array();
|
|
foreach (glob("content/*", GLOB_ONLYDIR) as $dir) {
|
|
$dirList[basename($dir)] = listFile($dir);
|
|
}
|
|
if (empty($dirList)) {
|
|
$dirList = array();
|
|
}
|
|
return $dirList;
|
|
}
|
|
|
|
/**
|
|
* Return list file in dir
|
|
*
|
|
* @author Knah Tsaeb <Knah-Tsaeb_mynovi@knah-tsaeb.org>
|
|
* @global
|
|
* @param mixed $dir
|
|
* @return mixed
|
|
*/
|
|
function listFile($dir)
|
|
{
|
|
$fileList = array();
|
|
foreach (glob($dir . "/*.md") as $dir) {
|
|
$fileList[] = str_replace('.md', '', basename($dir));
|
|
}
|
|
if (empty($fileList)) {
|
|
$fileList = array();
|
|
}
|
|
|
|
return $fileList;
|
|
}
|
|
|
|
/**
|
|
* Gen navigation menu
|
|
*
|
|
* @author Knah Tsaeb <Knah-Tsaeb_mynovi@knah-tsaeb.org>
|
|
* @global
|
|
* @param string $getDir Default: null
|
|
* @return string
|
|
*/
|
|
function makeMenu($getDir = null)
|
|
{
|
|
$dirList = listDir();
|
|
$menu = '';
|
|
foreach ($dirList as $dir => $files) {
|
|
if ($getDir === $dir) {
|
|
$expand = 'open';
|
|
} else {
|
|
$expand = 'close';
|
|
}
|
|
$menu .= '
|
|
<details ' . $expand . '>
|
|
<summary>' . $dir . '</summary>
|
|
<ul>';
|
|
|
|
foreach ($files as $value) {
|
|
$menu .= '<li><a href="/' . urlencode($dir) . '/' . urlencode($value) . '">' . $value . '</a></li>';
|
|
}
|
|
$menu .= '
|
|
</ul>
|
|
</details>';
|
|
}
|
|
return $menu;
|
|
}
|
|
|
|
/**
|
|
* Add lazy loading attribute for img
|
|
*
|
|
* @author Knah Tsaeb <Knah-Tsaeb_mynovi@knah-tsaeb.org>
|
|
* @see ParsedownToc
|
|
* @global
|
|
*/
|
|
class ExtendParsedownToc extends ParsedownToc
|
|
{
|
|
public function inlineImage($Excerpt)
|
|
{
|
|
if (!isset($Excerpt['text'][1]) or $Excerpt['text'][1] !== '[') {
|
|
return;
|
|
}
|
|
|
|
$Excerpt['text'] = substr($Excerpt['text'], 1);
|
|
|
|
$Link = $this->inlineLink($Excerpt);
|
|
|
|
if ($Link === null) {
|
|
return;
|
|
}
|
|
|
|
$Inline = array(
|
|
'extent' => $Link['extent'] + 1,
|
|
'element' => array(
|
|
'name' => 'img',
|
|
'attributes' => array(
|
|
'src' => $Link['element']['attributes']['href'],
|
|
'alt' => $Link['element']['text'],
|
|
'loading' => 'lazy',
|
|
),
|
|
),
|
|
);
|
|
|
|
$Inline['element']['attributes'] += $Link['element']['attributes'];
|
|
|
|
unset($Inline['element']['attributes']['href']);
|
|
|
|
return $Inline;
|
|
}
|
|
}
|