Skip to content
Snippets Groups Projects
Select Git revision
  • 086dc50eeeb05136d5ad91638906e4c7d1d62002
  • main default protected
2 results

component.php

Blame
  • component.php 5.25 KiB
    <?php 
    
    $sComponent=(isset($_GET['id']) ? preg_replace('/[^a-z]/', '', $_GET['id']) : '');
    
    /**
     * @var options array for example widget to display
     */
    $aWidgetOptions=[];
    
    // get all components ... as key or all items
    // print_r($renderAdminLTE->getComponents({true|false}));
    
    // get array of a component
    // print_r($renderAdminLTE->getComponent($sComponent));
    
    
    // echo '<pre>';
    // print_r($renderAdminLTE->getComponent($sComponent));
    // echo '</pre>';
    
    
    // echo '<pre>';
    // print_r($renderAdminLTE->getComponentParamkey($sComponent, 'type'));
    // echo '</pre>';
    
    
    // ----------------------------------------------------------------------
    
    if(!$renderAdminLTE->getComponent($sComponent)) {
        echo '<h2>Show all components...</h2>';
    
        $sAllWidgets='';
        foreach($renderAdminLTE->getComponents(1) as $sComponent=>$aComponent){
    
            // code to fix ... 
    
            $aWidgetOptions=[];
            foreach($renderAdminLTE->getComponentParamkeys($sComponent, true) as $sOptionkey=>$aParam){
                if($aParam['example_value']!==''){
                    $aWidgetOptions[$sOptionkey]=$aParam['example_value'];
                }
            }
            // print_r($aWidgetOptions);
            $sAllWidgets.= $renderAdminLTE->addCol(
                $renderAdminLTE->getCard(array (
                    'title' => $aComponent['label'],
                    //'tools' => 'Tools',
                    'text' => getOutput("\$renderAdminLTE->".$aComponent['method']."(".var_export($aWidgetOptions, 1).");"),
                    'footer' => '<a href="?id='.$sComponent.'" class="btn btn-secondary">Test ['.$aComponent['label'].']</a>',
                )),
                3,
                false
            );
        }
        echo $renderAdminLTE->addRow(
            $sAllWidgets
        );
        
    } else {
    
        $aComp=$renderAdminLTE->getComponent($sComponent);
    
        // --------- prepare output for parameter Testing
        $sTester='<form
            method="GET"
            action="?"
        >
    
        <input type="hidden" name="id" value="'.$sComponent.'">
        <table class="table">
            <tbody>
        ';
    
    
    
        $renderAdminLTE->getComponentParamkeys($sComponent, 1);
        foreach($renderAdminLTE->getComponentParamkeys($sComponent, true) as $sOptionkey=>$aParam){
            $sInput='';
            $sValue=(isset($_GET[$sOptionkey]) ? $_GET[$sOptionkey] : (
                    isset($aParam['example_value'])
                        ? $aParam['example_value']
                        : ''
            ));
            if($sValue!==''){
                $aWidgetOptions[$sOptionkey]=$sValue;
            }
            if (isset($aParam['select'])){
                foreach($aParam['select']['values'] as $sSelectItem=>$sLabel){
                    // $sInput.='<option value="'.$sSelectItem.'">'.($sSelectItem ? $sSelectItem : '-- none --').'</option>';
                    $sInput.='<option value="'.$sSelectItem.'"'
                    .($sValue==$sSelectItem ? ' selected="selected"' : '')
                    .'>'.$sSelectItem .' -> '. $sLabel.'</option>';
                }
                $sInput='<nobr><select size="1" name="'.$sOptionkey.'" onchange="form.submit();">'.$sInput.'</select>'
                    .' <button name="doloop" value="'.$sOptionkey.'" class="btn btn-secondary">Loop</button><nobr>';
    
            } else {
                $sInput.='<input type="text" name="'.$sOptionkey.'" value="'.$sValue.'"/>';
            }
            // testing - table row
            $sTester.='<tr>
                <td><code>'.$sOptionkey.'</code><br>('.$aParam['group'] .')</td>
                <td>'. $aParam['description'] .'<br>'.$sInput.'</td>
            </tr>';
        }
        $sTester.='
        
            <tr><td colspan="2">
                <button class="btn btn-primary">Submit</button> 
                <a href="?id='.$sComponent.'" class="btn btn-secondary">Reset</a>
            </td></tr>
        </tbody></table>
        </form>
        ';
    
        // --------- loop over a single var
        $sLooper='';
        if(
            isset($_GET['doloop']) 
            && $renderAdminLTE->getComponentParamkey($sComponent, $_GET['doloop'])
        ){
            $sLoopvar=$_GET['doloop'];
            
            foreach($renderAdminLTE->getValidParamValues($sComponent, $sLoopvar) as $sLoopValue){
                $aLoopoptions=$aWidgetOptions;
                $aLoopoptions[$sLoopvar]=$sLoopValue;
    
                $sLooper.=$renderAdminLTE->addCol(
                    '<h4>"'.$sLoopvar.'" => "'.$sLoopValue.'"</h4>'
                        .getOutput('$renderAdminLTE->'.$aComp['method'].'('.var_export($aLoopoptions, 1).')'),
                    3
                );
            }
        }
    
        // ---------- output
        echo $renderAdminLTE->addRow(
            '<h2><a href="?" class="btn btn-secondary"> << </a> '.$aComp['label'].'</h2>'
        )
        .$renderAdminLTE->addRow(
            '<p>'.$aComp['description'].'</p>'
        )
    
        // .$renderAdminLTE->addRow(
        //     $renderAdminLTE->getCard(['title'=>'Syntax', 'text'=>'<pre>echo $renderAdminLTE-><strong>'.$aComp['method'].'</strong>($aOptions)</pre>'])
        // )
    
        .$renderAdminLTE->addRow(
            '<h3>Testing section</h3>'
        )
        .$renderAdminLTE->addRow(
            $renderAdminLTE->addCol(
                $renderAdminLTE->getCard(['title'=>'Parameter keys for '.$sComponent, 'text'=>$sTester]), 
                4
            ).$renderAdminLTE->addCol(
                showExample('$renderAdminLTE->'.$aComp['method'].'('.var_export($aWidgetOptions, 1).')') ,
                8
            )
        )
        .(
            $sLooper 
            ? $renderAdminLTE->addRow($sLooper)
            
            : ''
        )
        ;
    }