Aller au contenu

Problème avec un formulaire et l'attribut "name"


vespa

Sujets conseillés

Bonjour,

J'utilises ce module sur un site joomla xhtml 1.0 valide et j'ai un problème pour le valider w3c a cause de ce formulaire a cause de l'attribut "name" et je ne sais pas comment faire pour le rendre valide (j'ai lu de la doc, mais je ne maitrise pas assez le code :(

Si quelqu'un peut m'expliquer comment faire :)


<?php
// --------------------------------------------------------------------------------
// YaNC - Yet another Newsletter Component
// Copyright © 2003-2004 TIM_online
// [url="http://www.tim-online.nl"]http://www.tim-online.nl[/url]
//
// All rights reserved. YaNC is a component for Mambo 4.5.
// It allows you to compose various newsletters and send then to subscribers
// to different lists. You can use HTML or text mailings
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,USA.
//
// The "GNU General Public License" (GPL) is available at
// [url="http://www.gnu.org/copyleft/gpl.html"]http://www.gnu.org/copyleft/gpl.html[/url]
// --------------------------------------------------------------------------------
// $Id: mod_yancsubscribe.php,v 1.3 2005/06/22 12:04:36 websmurf Exp $


/** Based on
*
* Yanc Newsletter Subscribe Module for Yanc 1.3
*
* _AT_author Wee Keat Chin
* _AT_Copyright © 2000 - 2004 Visualdensity
* @ All rights reserved
* @ Released under GNU/GPL License : [url="http://www.gnu.org/copyleft/gpl.html"]http://www.gnu.org/copyleft/gpl.html[/url]
* _AT_version 1.0
*
* Email: weekeat_AT_visualdensity.com
**/


defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );


/**

* Configuration
* ------------------
* Please refer to YancSubscribe's install_help folder in its ZIP package for more information.
*/


//$chars_limit = @$params->chars_limit ? intval( $params->chars_limit ) : 1; //1 to limit the number of characters of title, 2 to disable it
//$chars = @$params->chars ? intval( $params->chars) : 15; // used with character limits enabled. the value signifies the number of characters to display
//$hide_name_field = @$params->hide_name_field ? intval( $params->hide_name_field) : 0; //to hide the name field, set it to 1
//$menuitem = @$params->menuitem ? intval( $params->menuitem) : 0; //to hide the name field, set it to 1


$chars_limit = ($params->get( 'chars_limit' )) ? $params->get( 'chars_limit' ) : 1;
$chars = ($params->get( 'chars' )) ? $params->get( 'chars' ) : 15;
$hide_name_field = ($params->get( 'hide_name_field' )) ? $params->get( 'hide_name_field' ) : 0;
$menuitem = ($params->get( 'menuitem' )) ? $params->get( 'menuitem' ) : 0;
$listid = ($params->get( 'listid' )) ? $params->get( 'listid' ) : 0;
$module_description = ($params->get( 'module_description' )) ? $params->get( 'module_description' ) : 'Keep yourself updated with our FREE newsletters now!';
$moduleclass_sfx = ($params->get( 'moduleclass_sfx' )) ? $params->get( 'moduleclass_sfx' ) : 'moduletable';


/**
* Other configs
* -------------
* This are not needed to change in most cases
*/


$folder = "components/com_yanc/";
$absolute_path = $mosConfig_absolute_path . "/";




/**
* The language support files. This bit of code is extracted
* from the newsletter.php from Yanc component.
*/
global $lang;
if(!class_exists('translator')){
require_once( $absolute_path . $folder . 'languages/class.translator.php');
$lang = new translator();
}




$query = 'SELECT list_name, hidden, id from #__newsletter_letters ';
$query .= 'WHERE hidden = 0 ';
if($listid != 0){
$query .= 'AND id = ' . $listid . ' ';
}
$query .= 'ORDER BY id ASC';


$database->setQuery( $query );
$rows = $database->loadObjectList();


?>
<script type="text/javascript">
<!--


function changeAction()
{
var listid = document.yancMod.listid.value;
var name = document.yancMod.name.value;;
var email;
var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i


if (filter.test(document.yancMod.email.value)) {
email = document.yancMod.email.value;
var a = true;
} else {
alert("Please enter a valid email address.");
var a = true;
return false;
}

if(document.yancMod.yancAction[0].checked == true) {
var yancAction = document.yancMod.yancAction[0].value;
}

if (document.yancMod.yancAction[1].checked == true) {
var yancAction = document.yancMod.yancAction[1].value;
}

var data = 'index.php?option=yanc&Itemid=<?php echo $menuitem; ?>&listid='+ listid + '&action=' + yancAction;


if( a ) {
document.yancMod.action = data;
}

return true;
}
// -->

</script>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="yanc<?php echo $moduleclass_sfx; ?>">
<tr>
<td align="left" valign="top">
<?php
echo $module_description;
?>
</td>
</tr>
<tr>
<td>
<form method="post" action="index.php?option=yanc&Itemid=<?php echo $menuitem; ?>" name="yancMod">
<p>
<?php if ( count($rows) > 1 ) { ?>
<?php echo $lang->translate('header_title_newsletter'); ?><br />
<select name="listid">
<?php
foreach ($rows as $row) {
if($chars_limit == 1) {
if(strlen($row->list_name) > $chars) {
$title = substr( strip_tags( $row->list_name ), 0, $chars );
$title .= "...";
} else {
$title = strip_tags($row->list_name);
}
} else {
$title = strip_tags($row->list_name);
}
echo '<option value="'.$row->id.'">'.$title.'</option>';
}

?>
</select><br /><br />
<?php } elseif (count($rows) == 1) { ?>

<input type="hidden" name="listid" value="<?php echo $rows[0]->id; ?>" />
<?php }; ?>

<?php if($hide_name_field == 1) { ?>
<input type="hidden" name="name" value="">
<?php } else { ?>
<?php echo $lang->translate('input_name'); ?><br /><input type="text" name="name" class="inputbox" size="15" /> <br />
<?php }; ?>

<?php echo $lang->translate('input_email') ?><br /><input type="text" name="email" class="inputbox" size="15" />
<br />
<input name="html" type="checkbox" value="1" /><?php echo $lang->translate('receive_html'); ?><br />
<input name="yancAction" type="radio" value="subscribe" checked="checked"/><?php echo $lang->translate('subscribe'); ?>
<input name="yancAction" type="radio" value="unsubscribe" /><?php echo $lang->translate('unsubscribe'); ?><br />
<input type="submit" class="button" value="Envoyer" onclick="return changeAction();"/>
</p>
</form>
</td>
</tr>
</table>

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Dan,

Je vais mettre ce site en ligne ce week end et je reviendrai dans ce topic donner l'url de la page de validation sur le W3C alors :)

Toutefois à priori le problème vient de cette ligne :

<form method="post" action="index.php?option=yanc&Itemid=<?php echo $menuitem; ?>" name="yancMod">

Lien vers le commentaire
Partager sur d’autres sites

L'attribut name pour la balise <form...> a été gardé pour des raisons de compatibilité avec les versions précédentes.

Tu devrais plutôt utiliser l'attribut "id"

Dan

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

J'utilises ce module sur un site joomla xhtml 1.0 valide et j'ai un problème pour le valider w3c a cause de ce formulaire a cause de l'attribut "name" et je ne sais pas comment faire pour le rendre valide

en remplaçant le name par id ?
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...