Ciao a tutti, vi espongo il mio problema. Ho installato il modulo simplenews e nella sezione relativa alla creazione di una newsletter mi trovo una pagina con un form. Questo form è composto da diversi elemnti:
<form id="simplenews-admin-types-form" method="post" accept-charset="UTF-8" action="/admin/content/simplenews/types/add">
<div>
<div id="edit-name-wrapper" class="form-item">...</div>
<div id="edit-description-wrapper" class="form-item">...</div>
<div class="textarea-identifier description">...</div>
<div id="edit-weight-wrapper" class="form-item">...</div>
<fieldset>...</fieldset>
<fieldset>...</fieldset>
<fieldset>...</fieldset>
<input id="edit-vid" type="hidden" value="1" name="vid">
<input id="form-ee1c68dbb83be7012ab85ce953f2e5b6" type="hidden" value="form-ee1c68dbb83be7012ab85ce953f2e5b6" name="form_build_id">
<input id="edit-simplenews-admin-types-form-form-token" type="hidden" value="363902efd8767197826087986e7a1030" name="form_token">
<input id="edit-simplenews-admin-types-form" type="hidden" value="simplenews_admin_types_form" name="form_id">
<input id="edit-submit" class="form-submit" type="submit" value="Salva" name="op">
</div>
</form>
Quello che vorrei è aggiungere del codice css in linea o una classe o un id al tag a seconda che l'utente abbia un ruolo piuttosto che un altro.
Nel modulo simplenews/includes/ si trova questo file "simplenews.admin.inc" e alla riga 186 vi è il codice:
$form['subscription'] = array(
'#type' => 'fieldset',
'#title' => t('Subscription settings'),
'#collapsible' => false,
che genera un aparte del contenuto del primo e in cui io vorrei inserrie il mio codice per il css. Come posso fare ciò?
Grazie a tutti.
Ciò che posso dirti è che non cambierei assolutamente il codice di un modulo.
Una idea protrebbe essere di lavorare creando un nuovo css ed agganciarlo con if al template.php con un hook preprocessor_page.
Devi studiare come si fa.
Giovanni
Ciao giovanni, ho visto che la funzione che genera l'output dei fieldset nei form è la segunte:
function theme_fieldset($element) {
if (!empty($element['#collapsible'])) {
drupal_add_js('misc/collapse.js');
if (!isset($element['#attributes']['class'])) {
$element['#attributes']['class'] = '';
}
$element['#attributes']['class'] .= ' collapsible';
if (!empty($element['#collapsed'])) {
$element['#attributes']['class'] .= ' collapsed';
}
}
if (($_SERVER["REQUEST_URI"] == '/admin/content/simplenews/types/add')) {
return '<fieldset'. drupal_attributes($element['#attributes']) . '>'. ($element['#title'] ? '<legend>'. $element['#title'] .'</legend>' : '') . (isset($element['#description']) && $element['#description'] ? '<div class="description">'. $element['#description'] .'</div>' : '') . (!empty($element['#children']) ? $element['#children'] : '') . (isset($element['#value']) ? $element['#value'] : '') ."</fieldset>\n";
}
}
ora la copio nel mio themplate.php e e cambio theme_fieldset con miotema_fieldset così da poter fare l'override. Ora però come posso creare dei "if" in modo da gestire solo il $form['subscription'] (di simplenews) in base al ruolo dell'utente?
Mentra la tua soluzione come agirebbe, dove potrei documentarmi?
Il duro lavoro fatto con passione, ripaga sempre!!!!
Ho iniziato da quì http://bit.ly/S1bH2s ma poi non è che sono andato tanto avanti.
Ciao.
Giovanni ho risolto grazie mille del tuo preziosissimo aiuto!!!!! :-)
Il duro lavoro fatto con passione, ripaga sempre!!!!