MyHelperHelper.php 6.14 KB
<?php

/* src/View/Helper/ButtonHelper.php */
namespace App\View\Helper;

use Cake\View\Helper;
use phpDocumentor\Reflection\Types\Void_;

//class MyButtonHelper extends Helper {
class MyHelperHelper extends Helper {
        
    // On a besoin du HtmlHelper
    public $helpers = ['Html'];
    
    public function initialize(array $config) { 
        //debug($config);
    }
    
    public function getActionButton($icon_class, $buttonStyle, $title, $controller, $action, $id, $other_args=[], $tip='', $confirmMessage='', $moreButtonStyle='') {
        if ($controller=='') $controller='materiels';
        $controllerArgs = [];
        $controllerArgs['controller'] = $controller;
        $controllerArgs['action'] = $action;
        $controllerArgs[] = $id;
        foreach ($other_args as $other_arg) $controllerArgs[] = $other_arg;
        return $this->Html->link(
            __("<i class=$icon_class></i>$title"),
            $controllerArgs,
            /*
             [
             'controller' => $controller,
             'action' => $action,
             $id,
             $other_args
             ],
             */
            [
                'title' => $tip,
                'escape' => false,
                'onclick' => 'return true;',
                //'style' => 'margin-right: 10px'.$moreButtonStyle,
                'style' => $buttonStyle,
                'confirm' => $confirmMessage
            ]
        );
    }
    
    public function displayElement($nom, $valeur, $params = "") {
        $TD = ($params=="") ? 'TD' : "TD $params";
        //$TD = ($params=="") ? '<TD>' : '<TD '.$params.'>';
        //$tdstyle = $params!="" ? $params : '';
        // Ca c'est parce que sinon y'a au moins deux tests qui passent pas, a cause de l'espace dans la balise ...
        //if ($valeur != "") echo '<tr> <td><strong>'.$nom.' </strong></td>' . $TD.$valeur.'</td></tr>';
        //if ($valeur != "") echo '<tr><td><strong>' . $nom . ' </strong></td>' . $balise . $valeur . '</td></tr>';
        //if ($valeur!="") echo "<TR> <TD><strong>".__($nom)."</strong></TD> <$TD>".h($valeur)."</TD> </TR>";
        //if ($valeur!="") echo "<TR> <TD><strong>".__($nom)."</strong></TD> <$TD>".$valeur."</TD> </TR>";
        if ($valeur!==null && $valeur!=='') {
            $val = $valeur;
            if ($valeur === true) $val = 'Oui';
            if ($valeur === false) $val = 'Non';
            echo "<TR> <TD><strong>".__($nom)."</strong></TD> <$TD>".$val."</TD> </TR>";
        }
        //if ($valeur!="") echo "<TR> <TD><strong>$nom</strong></TD> <$TD>$valeur</TD> </TR>";
    }
    
    /* Pour src/Template/Configurations/view et edit */
    public function echoSectionStart($title) {
        $WITH_TABLE=true;
        //echo '<h3 id="t_'.$section.'" style="cursor: pointer;">';
        //echo "<h3 id='t_$section' class='toggle' style='cursor: pointer;'>";
        echo "<h3 id='t_$title' class='toggle' style='cursor: pointer;'>";
        //echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_'.$section.'"></i>';
        echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_'.$title.'"></i>';
        echo '<span style="text-decoration: underline;">'.$title.'</span>';
        echo '</h3>';
        //echo '<div id="'.$section.'" style="margin-bottom: 20px;">';
        echo '<div id="'.$title.'" style="margin-bottom: 20px;">';
        if ($WITH_TABLE) {
            echo '<table>';
            echo '<tr><th style="width: 250px;"></th><th></th></tr>';
        }
    }
    public function echoSectionStop() {
        $WITH_TABLE=true;
        if ($WITH_TABLE) echo '</table>';
        echo '</div>';
    }
    
    
    
    
    //function displaySectionShowHide($controller_name, $entity_type_name, $title, $id_name, $is_masculine, $name_field_name, $entities) {
    //function displaySectionShowHide($controller_name, $entity_type_name, $title, $is_masculine, $name_field_name, $entities) {
    function displayAssociatedEntitiesAsSectionShowHide($controller_name, $entity_type_name, $title, $is_masculin, $name_field_name, $entities) {
        $id_name = $controller_name;
        $id_h3 = 't_'.$id_name;
        $id_i = 'i_'.$id_name;
        $title = ucfirst($title).' associé'. ($is_masculin ? 's' : 'es');
        
        echo "<h3 id='$id_h3' class='toggle' style='cursor: pointer;'>";
        echo "<i class='icon-chevron-down' style='font-size: 14px;' id='$id_i'></i>";
        //echo " <span style='text-decoration: underline;'>$title (".$entities->count().")</span>";
        echo " <span style='text-decoration: underline;'>$title (".count($entities).")</span>";
        echo "</h3>";
        
        echo "<div id='$id_name' style='margin-bottom: 20px;'>";
        //if (true) {
        $shift3 = '&nbsp;&nbsp;&nbsp;';
        $shift5 = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
        //if ($entities->isEmpty()) {
        if (empty($entities)) {
            //echo "Aucune $entity_name liée à ce domaine.";
            echo $shift5.($is_masculin ? "Aucun $entity_type_name associé" : "Aucune $entity_type_name associée");
        }
        else {
            echo "<table>";
            /*
             <tr>
             <th><= __('Nom') ?></th>
             <th style="width: 50px;"><= __('Détail') ?></th>
             </tr>
             */
            foreach ($entities as $entity) {
                echo "<tr>";
                    echo "<td>";
                    // Nom de l'entité (ou numéro de l'entité si nom vide, comme pour les emprunts par exemple...)
                    $name = $entity->$name_field_name ? $entity->$name_field_name : "$entity_type_name #".$entity->id;
                    echo $shift3.$this->Html->link(h($name), ['controller' => $controller_name, 'action' => 'view', h($entity->id)]);
                    echo "</td>";
                    /*
                     <td class="actions">
                     <= $this->Html->link(__('<i class="icon-search"></i>'), ['controller' => $controller, 'action' => 'view', $entity->id], ['escape' => false, 'style' => 'margin:0']) ?>
                     </td>
                     */
                echo "</tr>";
            }
            echo "</table>";
        }
        echo "</div>";
    } // displaySectionShowHide()
    
    
}