Forum CMS Made Simple FR
intégration action dans admin panel - Version imprimable

+- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr)
+-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html)
+--- Forum : Général (https://forum.cmsmadesimple.fr/forum-10.html)
+--- Sujet : intégration action dans admin panel (/thread-363.html)



intégration action dans admin panel - ceadreak - 01/05/2010

Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS : 1.7.0
#~ Version du MLE si existante :
#~ Informations Système :
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
Bonjour,
Je suis entrain de développer mon premier module qui est un interfacement avec la plateforme de paiement Liqpay.

Je suis cependant confronté à une difficulté quand je suis dans mon administration et que je veux afficher une interface qui permet à l'utilisateur de créer ses boutons de paiement.

Je m'explique : j'ai un fichier nommé action.add_edit.php (je suis parti du skeleton) qui à comme but d'afficher les boutons existants, de les éditer et/ou d'en créer de nouveaux.
Il génère son propre template avec les différents champs.

J'ai un fichier action.defaultadmin.php dans lequel je crée mon administration et les onglets.
J'ai un premier onglet "general" comme dans le skeleton et un 2eme onglet "Boutons".
Dans mon onglet "Boutons", j'ai une variable smarty appelée {add_edit} qui est censée afficher le template généré par l'action add_edit ...

La est mon soucis ...

Je n'arrive pas a récupérer cette action et l'afficher dans mon onglet correctement.

A tout hasard, j'ai essayé ceci dans mon defaultadmin :
Code :
$smarty->assign('add_edit', require 'action.add_edit.php');
Evidemment, ca ne marche pas, cela m'affiche bien mon template add_edit mais pas dans l'onglet.

Voici mon fichier action.defaultadmin.php
Code :
<?php
if (!isset($gCms)) exit;

if (FALSE == empty($params['active_tab']))
  {
    $tab = $params['active_tab'];
  } else {
  $tab = '';
}

$tab_header = $this->StartTabHeaders() . $this->SetTabHeader('general',$this->Lang('title_general'),('general' == $tab)?true:false);
$this->smarty->assign('start_general_tab',$this->StartTab('general', $params));

$tab_header .= $this->SetTabHeader('buttons',$this->Lang('title_buttons'), ('buttons' == $tab)?true:false);
$this->smarty->assign('start_buttons_tab',$this->StartTab('buttons', $params));
  
$this->smarty->assign('tabs_start',$tab_header.$this->EndTabHeaders().$this->StartTabContent());
$this->smarty->assign('tab_end',$this->EndTab());
$this->smarty->assign('tabs_end',$this->EndTabContent());

$smarty->assign('add_edit', require 'action.add_edit.php');

$smarty->assign_by_ref('mod',$this);

echo $this->ProcessTemplate('adminpanel.tpl');

?>
ainsi que le template qui va avec :
Code :
{$tabs_start}
   {$start_general_tab}
      {$mod->Lang('welcome_text')}
   {$tab_end}
   {$start_buttons_tab}
      {if $start_buttons_tab != ''}
        {$add_edit}
      {/if}
   {$tab_end}
{$tabs_end}
je joins aussi mon fichier action.add_edit.php
Code :
<?php
if (!isset($gCms)) exit;

$db = &$gCms->GetDb();

if (isset($params['button_id'])) {
  $query = 'SELECT button_id, name, description, currency, amount from '.cms_db_prefix() . 'module_liqpay_buttons where button_id = ?';
  $result = $db->Execute($query,array($params['button_id']));

  if ($result !== false) {
    $row = $result->FetchRow();
    $button_id    = $row['button_id'];
    $name         = $row['name'];
    $description  = $row['description'];
    $currency     = $row['currency'];
    $amount       = $row['amount'];
    $new_window   = $row['new_window'];
  } else {
    echo "Database error!";
    exit;
  }
} else {
  $button_id    = -1;
  $name         = '';
  $description  = '';
  $currency     = '';
  $amount       = '';
  $new_window   = '';
}

$currency_array = array('EUR' => 'EUR', 'USD' => 'USD', 'RUR' => 'RUR', 'UAH' => 'UAH');

$smarty->assign('start_form', $this->CreateFormStart($id, 'save_record', $returnid));
$smarty->assign('title_add_edit',$this->Lang('title_add_edit'));
$smarty->assign('input_name',$this->CreateInputText($id,'name',$name));
$smarty->assign('input_description',$this->CreateInputText($id,'description',$desc));
$smarty->assign('input_currency',$this->CreateInputDropdown($id,'currency',$currency_array, $currency));
$smarty->assign('input_amount',$this->CreateInputText($id,'amount',$amount));
$smarty->assign('input_new_window',$this->CreateInputCheckbox($id,'new_window',$new_window));
// pass a hidden key value along with the submit button
$smarty->assign('submit', $this->CreateInputHidden($id,'button_id',$button_id).$this->CreateInputSubmit($id, 'submit', $this->Lang('submit')));
$smarty->assign('end_form', $this->CreateFormEnd());

$smarty->assign_by_ref('mod', $this);

// Display the populated template
echo $this->ProcessTemplate('add_edit.tpl');

?>
et son template :
Code :
<h1>{$mod->Lang('title_add_edit')}</h1>
{$start_form}
<div class="form_row">
  <table>
    <tr>
      <td><span class="field_title">{$mod->Lang('label_input_name')}</span></td>
      <td>{$input_name}</td>
    </tr>
    <tr>
      <td><span class="field_title">{$mod->Lang('label_input_description')}</span></td>
      <td>{$input_description}</td>
    </tr>
    <tr>
      <td><span class="field_title">{$mod->Lang('label_input_currency')}</span></td>
      <td>{$input_currency}</td>
    </tr>
    <tr>
      <td><span class="field_title">{$mod->Lang('label_input_amount')}</span></td>
      <td>{$input_amount}</td>
    </tr>
    <tr>
      <td><span class="field_title">{$mod->Lang('label_input_new_window')}</span></td>
      <td>{$input_new_window}</td>
    </tr>
  </table>
</div>
<div class="form_row">
   <span class="field_title"></span>
   <span class="field_input">{$submit}</span>
</div>
{$end_form}
Voila ...

Si vous pouvez me dire comment afficher ce template dans le tab de mon adminpanel ...


Merci beaucoup Smile