Rendre une donnée non obligatoire dans formulaire

WRInaute impliqué
Bonjour,

Je suis actuellement en train de faire une énorme mise à jour de mon système de petites annonces et je bloque sur une chose...

J'ai un formulaire avec des données à remplir seulement dans le script d'origine le téléphone doit être obligatoire (ce que je ne souhaite vraiment pas). J'aimerai donc savoir comment je dois faire pour rendre la donnée non obligatoire.

Voici le morceau de code concernant le téléphone :
Code:
<div style="margin-bottom:5px;"><b><?=Yii::t('publish_page', 'T&eacutel&eacutephone')?></b> (<span style="color:red;">*</span>)</div>
	<div style="margin-bottom:5px;">
		<input type="text" name="ad_phone" id="ad_phone" class="publish_input" value="<?=$this->view->defaultFormArray['ad_phone']?>"/>
	</div>
	<?if(isset($this->view->errorArray['ad_phone'])){?>
	<div class="publish_error"><?=$this->view->errorArray['ad_phone']?></div>
	<?}?>

Mais je crois que cette donnée ne sert à rien et que la modification se fait ailleurs ...
Dans la base de données ... j'ai cherché mais je ne trouve rien ...

adresse : cheloniophilie.com/annonce/ad/publish
 
WRInaute accro
Ça se fait dans le code du script. C'est un script "maison" ou un CMS ?
Tu peux faire une recherche dans les fichiers pour trouver: $_POST['ad_phone'] (c'est pas tjs ça, mais fort probable)
 
WRInaute passionné
cheloniologue a dit:
Mais je crois que cette donnée ne sert à rien
Tout à fait ! C'est le gabarit HTML de ta page, ce n'est pas ici que se trouve le processus de traitement des données.

cheloniologue a dit:
et que la modification se fait ailleurs ...
Oui. Mais où ... ?
Ca dépendra du script sur lequel est basé ton site.
Regarde dans sa configuration qui est sans doute enregistrée en base de données.
 
WRInaute impliqué
Y a pas grand chose dans les tables .... j'ai tout fouillé et je n'ai rien trouvé donc cette ligne de code se trouverait donc dans un des dossiers ... (ça pourra pas être dans le java cette fonction par hasard ?)

Merci pour vos premières réponses ...
 
WRInaute accro
Non c'est côté serveur, j'avais testé en désactivant le JS (ça aurait pu être qu'en JS ou les 2). Tu dois faire une recherche, sans connaitre ton script impossible de t'aider plus.

Pour rechercher le $_POST['ad_phone'], sous linux en CLI c'est:
Code:
grep -n -r "\$_POST['ad_phone']" *
Sinon tu fais la recherche avec ton éditeur texte préféré...
 
WRInaute impliqué
Alors j'ai trouvé une partie :
Code:
	//set required fields							
		$requiredFieldsArray = array(	'category_id', 
										'location_id', 
										'ad_title', 
										'ad_description', 
										'ad_email',
										'ad_phone'
										);

Quand je remplace par /*'ad_phone'*/ ou quand j'enlève ... alors le système fonctionne mais l'annonce n'est pas publiée !!! Cela m'écrit votre annonce a été publiée avec succès mais dans la base elle n'y est pas !!!
 
WRInaute impliqué
Voici les lignes :
Code:
<?
/**********************************************************************************
* DClassifieds                                                                    *
* Open-Source Project Inspired by Dinko Georgiev (webmaster@dclassifieds.eu)      *
* =============================================================================== *
* Software Version:           0.1b                                           	  *
* Software by:                Dinko Georgiev     								  *
* Support, News, Updates at:  http://www.dclassifieds.eu                       	  *
***********************************************************************************
* This program is free software; you may redistribute it and/or modify it under   *
* the terms of the provided license.          									  *
*                                                                                 *
* This program is distributed in the hope that it is and will be useful, but      *
* WITHOUT ANY WARRANTIES; without even any implied warranty of MERCHANTABILITY    *
* or FITNESS FOR A PARTICULAR PURPOSE.                                            *
*                                                                                 *
* See the "license.txt" file for details of the license.                          *
* The latest version can always be found at http://www.gnu.org/licenses/gpl.txt   *
**********************************************************************************/
class AdController extends Controller
{
	public function actionIndex()
	{
		//get incoming params
		$cid = isset($_GET['cid']) ? $_GET['cid'] : null;
		$lid = isset($_SESSION['lid']) ? $_SESSION['lid'] : null;
		
		//create criteria object
		$criteria = new CDbCriteria();
		
		//init vars
		$whereArray 	= array();
		$pagerParams 	= array();
		$breadcrump		= array();
		
		//check incoming params
		if(!empty($cid) && is_numeric($cid)){
			$categoryInfo = Category::model()->findByPk( $cid );
			
			//check for category childs
			$childs = $categoryInfo->childs;
			
			//if childs create where
			if(!empty($childs)){
				$this->view->childs = $childs;
				
				$inWhereArray = array();
				foreach ($childs as $k){
					$inWhereArray[] = $k->category_id;
				}
			}
			
			//generate where
			if(!empty($inWhereArray)){
				$inWhereArray[] = $cid;
				$whereArray[] = 't.category_id IN (' . join(' , ', $inWhereArray) . ')';
			} else {
				$whereArray[] = 't.category_id = ' . $cid;
			}
			
			//set params to pager
			$pagerParams['cid'] = $cid;
			
			//set breadcrump
			$breadcrump[] = $categoryInfo->category_title;
			
			//set category title in to the view
			$this->view->category_title = $categoryInfo->category_title;
		}
		
		//check incoming params
		if(!empty($lid) && is_numeric($lid)){
			$whereArray[] = 't.location_id = ' . $lid;
			$pagerParams['lid'] = $lid;
		}
		
		//if valid incoming params generate where
		if(!empty($whereArray)){
			$criteria->condition = join(' AND ', $whereArray);
		}
		
		//set order
		$criteria->order = 't.ad_vip DESC, t.ad_id DESC';
		
		//get ad count that match criteria
		$cache_key_name = md5(json_encode($criteria->toArray()));
		if(!$count = Yii::app()->cache->get( $cache_key_name )) {
	    	$count=Ad::model()->count($criteria);
	    	Yii::app()->cache->set($cache_key_name , $count);
		}
	    
	    //create pagination object
	    $pages=new CPagination($count);
	
	    //init pagination object
	    $pages->pageSize = NUM_CLASSIFIEDS_ON_PAGE;
	    $pages->applyLimit($criteria);
	    if(!empty($pagerParams)){
	    	$pages->params = $pagerParams;
	    }
	    
	    //get classifieds
	    $cache_key_name = md5(json_encode($criteria->toArray()));
		if(!$adList = Yii::app()->cache->get( $cache_key_name )) {
	    	$adList = Ad::model()->with('location', 'category')->findAll($criteria);
	    	Yii::app()->cache->set($cache_key_name , $adList);
		}	
	    
	    //inject classifieds data into the view
	    $this->view->adList = $adList;
	    
	    if(!empty($breadcrump)){
	    	$this->view->breadcrump = $breadcrump;
	    }
	    
	    if(isset($this->view->category_title)){
		    $this->view->pageTitle 			= $this->view->category_title;
		    $this->view->pageDescription 	= $this->view->category_title;
		    $this->view->pageKeywords 		= $this->view->category_title;
	    }
    
	    //render view
	    $this->render('index_tpl', array('pages' => $pages));	
	}
	
	public function actionSearch()
	{
		//get params
		$search_string 	= isset($_GET['search_string']) ? $_GET['search_string'] : null;
		$location_id 	= isset($_SESSION['lid']) ? $_SESSION['lid'] : null;
		
		//init vars
		$whereArray 	= array();
		$pagerParams 	= array();
		$options		= array();
		$breadcrump		= array();
		
		//check incoming params
		if(!empty($search_string)){
			$search_string_fixed = trim(DCUtil::sanitize( urldecode($search_string) ));
			if( mb_strlen($search_string_fixed) > 0 ){
				$options['search_string'] = $search_string_fixed;
				$breadcrump[] = stripslashes($search_string_fixed);
			}
		}
		
		if(!empty($location_id) && is_numeric($location_id)){
			$options['location_id'] = $location_id;
		}
		
		//get ad count that match criteria
	    $count = Ad::model()->getSearchCount( $options );
	    
	    //create pagination object
	    $pages=new CPagination($count);
	
	    //init pagination object
	    $pages->pageSize	= NUM_CLASSIFIEDS_ON_PAGE;
		$options['offset'] 	= $pages->getOffset();
		$options['limit'] 	= $pages->getPageSize();
		
	    if(!empty($pagerParams)){
	    	$pages->params = $pagerParams;
	    }
	    
	    //get classifieds
	    $adList = Ad::model()->getSearchList( $options );
	    
	    //inject classifieds data into the view
	    $this->view->adList = $adList;
	    
	    if(!empty($breadcrump)){
	    	$this->view->breadcrump = $breadcrump;
	    }
	    
	    $this->view->pageTitle 			= stripslashes($search_string_fixed);
	    $this->view->pageDescription 	= stripslashes($search_string_fixed);
	    $this->view->pageKeywords 		= stripslashes($search_string_fixed);
    
	    $this->render('search_tpl', array('pages' => $pages));	
	}
	
	public function actionDetail()
	{
		$adId = isset($_GET['id']) ? $_GET['id']: null;
		if(empty($adId) || (int)$adId == 0){
			$this->redirect(Yii::app()->createUrl('site/index'));
		}
		
		if(!empty( $adId ) && is_numeric( $adId )){
			//get classified info
			if(!$adInfo = Yii::app()->cache->get( 'ad_info_' . $adId )) {
				$adInfo = Ad::model()->with('location', 'category', 'pics')->findByPk( $adId );
				Yii::app()->cache->set('ad_info_' . $adId , $adInfo);	
			}
			$this->view->adInfo = $adInfo;
			
			//get similar classifieds info
			$similarAdsOptions = array('location_id' 	=> $adInfo->location_id, 
									   'search_string'	=> $adInfo->ad_title,
									   'where'			=> 'CA.ad_id <> ' . $adId,
									   'offset' 		=> 0,
									   'limit' 			=> NUM_SIMILAR_CLASSIFIEDS);
			$cache_key_name = 'similarAds_' . md5(json_encode($similarAdsOptions));
			if(!$similarAds = Yii::app()->cache->get( $cache_key_name )) {									   
				$similarAds = Ad::model()->getSearchList( $similarAdsOptions );
				Yii::app()->cache->set($cache_key_name , $similarAds);	
			}
			$this->view->similarAds = $similarAds;
			
			/**
			 * handle classified contact
			 */
			//set default values
			$defaultFormArray = array(	'email'		=> '',
										'message'	=> '');
										
			//set required fields							
			$requiredFieldsArray = array(	'email', 
											'message');
								
			//define error array
			$errorArray = array();
			
			if(!empty($_POST)){
				$postParams 		= $_POST;
				$defaultFormArray 	= array_merge($defaultFormArray, $postParams);
				
				foreach($requiredFieldsArray as $k){
					if(!isset($defaultFormArray[$k]) || empty($defaultFormArray[$k])){
						$errorArray[$k] = Yii::t('publish_page', 'Please fill in this field.');
					}
				}
				
				if (!preg_match("/^[A-Z0-9._%-]+@[A-Z0-9-]+\.[A-Z]{2,4}$/i", $defaultFormArray['email'])){
					$errorArray['email'] = Yii::t('publish_page', 'Please fill in valid e-mail');
				}
				
				if(!isset($_SESSION['captcha_keystring']) || $_SESSION['captcha_keystring'] != $defaultFormArray['keystring']){
					$errorArray['keystring'] = Yii::t('publish_page', 'Please fill in correct numbers');
				}
				
				if(empty($errorArray)){
					foreach ($defaultFormArray as $k => $v){
						$defaultFormArray[$k] = DCUtil::sanitize($v);
					}
					
					//send email
					Yii::import('ext.Swift.lib.*');
					Yii::import('ext.Swift.lib.classes.*');
					require_once('Swift.php');
					Yii::registerAutoloader(array('Swift','autoload'));
					require_once('swift_init.php');
			
					//Create the Transport
					
					if(EMAIL_TYPE == 'smtp'){
						$transport = Swift_SmtpTransport::newInstance(EMAIL_HOST, EMAIL_PORT)
						  ->setUsername(EMAIL_USER)
						  ->setPassword(EMAIL_PASS)
						  ;
					} else if (EMAIL_TYPE == 'mail') {
						$transport = Swift_MailTransport::newInstance();
					}
					
					//Create the Mailer using your created Transport
					$mailer = Swift_Mailer::newInstance($transport);
					
					$viewPath = Yii::app()->theme->basePath . '/views/mail/ad_contact_mail_tpl.php';
					$content = $this->renderInternal($viewPath , array('adModel' => $adInfo, 'message' => $defaultFormArray['message']), true);
			
					//Create a message
					$message = Swift_Message::newInstance()
					  ->setSubject(Yii::t('detail_page', 'Ad Contact'))
					  ->setFrom(array(CONTACT_EMAIL))
					  ->setTo(array($defaultFormArray['email']))
					  ->setBody($content, 'text/html');
					  
					//Send the message
					$result = $mailer->send($message);
					//end of send email				
					
					//send control mail
					if(SEND_CONTROL_MAIL){
						$viewPath = Yii::app()->theme->basePath . '/views/mail/control_ad_contact_mail_tpl.php';
						$content = $this->renderInternal($viewPath , array('adModel' => $adInfo, 'message' => $defaultFormArray['message']), true);
				
						//Create a message
						$message = Swift_Message::newInstance()
						  ->setSubject(Yii::t('detail_page', 'Control Ad Contact'))
						  ->setFrom(array(CONTACT_EMAIL))
						  ->setTo(array(CONTACT_EMAIL))
						  ->setBody($content, 'text/html');
						  
						//Send the message
						$result = $mailer->send($message);	
					}
					//end of control mail
	
					$defaultFormArray = array();
				}//end of error check if
			}//end of check $_POST if	
			$this->view->defaultFormArray 	= $defaultFormArray;	
			$this->view->errorArray 		= $errorArray;
			/**
			 * end of classified contact 
			 */
		}
		
		$this->view->breadcrump 		= array(stripslashes($adInfo->ad_title));
		$this->view->pageTitle 			= stripslashes($adInfo->ad_title);
		$this->view->pageDescription 	= stripslashes(DCUtil::getShortDescription(stripslashes($adInfo->ad_title)));
		$this->view->pageKeywords 		= stripslashes($adInfo->ad_title);
		
		$this->render('detail_tpl');	
	}
	
	public function actionPublish()
	{
		//create ad model
		$adModel = new Ad;

		//get city list
		if(!$cityList = Yii::app()->cache->get( 'cityList' )) {
			$cityList = array(0 => Yii::t('publish_page', 'Select Location')) + Location::model()->getLocationList();
			Yii::app()->cache->set('cityList' , $cityList);	
		}
		$this->view->cityList = $cityList;
		
		//get category list
		if(!$category_html_list = Yii::app()->cache->get( 'category_html_list' )) {
			$category_list = Category::model()->getCategoryList();
			$category_html_list = array(0 => Yii::t('publish_page', 'Select Category'));
			Category::model()->getCategoryHtmlList( $category_html_list , $category_list );
			Yii::app()->cache->set('category_html_list' , $category_html_list);	
		}
		$this->view->categoryList = $category_html_list;
		
		
		//set default values
		$defaultFormArray = array(	'category_id'				=> 0,
									'location_id'				=> 0,
									'ad_title'					=> '',
									'ad_description'			=> '',
									'ad_price'					=> '',
									'ad_email'					=> '',
									'ad_phone'					=> '',
									'ad_tag'					=> '');
									
		
		//set required fields							
		$requiredFieldsArray = array(	'category_id', 
										'location_id', 
										'ad_title', 
										'ad_description', 
										'ad_email',
										'ad_phone'
										);
							
		//define error array
		$errorArray = array();
		
		//form is submitted
		if(!empty($_POST)){
			$postParams 		= $_POST;
			$defaultFormArray 	= array_merge($defaultFormArray, $postParams);
			
			foreach($requiredFieldsArray as $k){
				if(!isset($defaultFormArray[$k]) || empty($defaultFormArray[$k])){
					$errorArray[$k] = Yii::t('publish_page', 'Please fill in this field.');
				}
			}
			
			if (!preg_match("/^[A-Z0-9._%-]+@[A-Z0-9-]+\.[A-Z]{2,4}$/i", $defaultFormArray['ad_email'])){
				$errorArray['ad_email'] = Yii::t('publish_page', 'Please fill in valid e-mail');
			}
			
			if (!empty($defaultFormArray['ad_price']) && !is_numeric($defaultFormArray['ad_price'])){
				$errorArray['ad_price'] = Yii::t('publish_page', 'Please fill in only digits');
			}
			
			if(!isset($_SESSION['captcha_keystring']) || $_SESSION['captcha_keystring'] != $defaultFormArray['keystring']){
				$errorArray['keystring'] = Yii::t('publish_page', 'Please fill in correct numbers');
			}
			
			//files validation
			if(!empty($_FILES['ad_pic']) && isset($_FILES['ad_pic']) && $_FILES['ad_pic']['error'][0] != 4){
				
				foreach($_FILES['ad_pic']['error'] as $k => $v){
					$error_message = '';
					if($v == 2){
						$error_message .= Yii::t('publish_page', 'File {file} is bigger than 200kb.', array('{file}' => $_FILES['ad_pic']['name'][$k])) . '<br />';
					}
					if(!empty($error_message)){
						$errorArray['ad_pic'] = $error_message;
					}
				}
				
				foreach($_FILES['ad_pic']['name'] as $k => $v){
					$extension = strtolower(substr($v, -3));
					$error_message = '';
					if($extension != 'jpg' && $extension != 'gif'){
						$error_message .= Yii::t('publish_page', 'File {file} is not .gif or .jpg.', array('{file}' => $_FILES['ad_pic']['name'][$k])) . '<br />';
					}
					if(!empty($error_message)){
						$errorArray['ad_pic'] = $error_message;
					}
				}
			}
			
			if(empty($errorArray)){
				foreach ($defaultFormArray as $k => $v){
					$defaultFormArray[$k] = DCUtil::sanitize($v);
				}
				
				$defaultFormArray['ad_description'] 	= nl2br($defaultFormArray['ad_description']);
				$defaultFormArray['ad_publish_date'] 	= date('Y-m-d');
				$defaultFormArray['ad_ip'] 				= $_SERVER['REMOTE_ADDR'];
				$defaultFormArray['ad_title'] 			= DCUtil::ucfirst($defaultFormArray['ad_title']);
				$defaultFormArray['ad_title'] 			= mb_substr($defaultFormArray['ad_title'], 0, 90, 'utf-8');
				
				//fix tags if any
				if(!empty($defaultFormArray['ad_tag'])){
					$defaultFormArray['ad_tag'] = AdTag::array2string(array_unique(AdTag::string2array($defaultFormArray['ad_tag'])));
					$defaultFormArray['ad_tags'] = $defaultFormArray['ad_tag'];
				}
			
				//generate delete code
				do{
					$code = md5(time());
				} while ($adModel->isFreeCode( $code ));
				
				$defaultFormArray['code'] = $code;
				
				//set attributes to model and save it
				$adModel->attributes = $defaultFormArray;
				$adModel->save();
				
				//resize and rename pics
				$adId = $adModel->ad_id;
				if(!empty($_FILES['ad_pic']) && isset($_FILES['ad_pic'])  && $_FILES['ad_pic']['error'][0] != 4){
					
					define('ASIDO_GD_JPEG_QUALITY', 100);
					
					foreach($_FILES['ad_pic']['name'] as $k => $v){
						$adPicModel = new AdPic;
						
						move_uploaded_file($_FILES['ad_pic']['tmp_name'][$k], PATH_UF_CLASSIFIEDS . $adId . '-classifieds-' . $_FILES['ad_pic']['name'][$k]);
						
						$source			= $adId . '-classifieds-' . $_FILES['ad_pic']['name'][$k];
						$destination 	= $source;
						
						$pic_variations = array('small' => array('name' => 'small-' . $destination, 'width' => 120, 'height' => 90));
						
						Yii::import('application.extensions.asido.*');
						require_once('class.asido.php');
						asido::driver('gd');
						
						foreach ($pic_variations as $k => $v){
							$img = asido::image(PATH_UF_CLASSIFIEDS . $source , PATH_UF_CLASSIFIEDS . $v['name']);
							asido::frame($img, $v['width'], $v['height'], Asido::color(255, 255, 255));
							$img->save( ASIDO_OVERWRITE_ENABLED );
						}//end of foreach
						
						$adPicModel->ad_id = $adModel->ad_id;
						$adPicModel->ad_pic_path = $source;
						$adPicModel->save();
						
						unset($adPicModel);
					}
				}
				
				//save tags
				$tagsArray = AdTag::string2array( $defaultFormArray['ad_tag'] );
				if(!empty($tagsArray)){
					AdTag::model()->addTags( $tagsArray );
				}
				
				//send email
				Yii::import('ext.Swift.lib.*');
				Yii::import('ext.Swift.lib.classes.*');
				require_once('Swift.php');
				Yii::registerAutoloader(array('Swift','autoload'));
				require_once('swift_init.php');
		
				//Create the Transport
				
				if(EMAIL_TYPE == 'smtp'){
					$transport = Swift_SmtpTransport::newInstance(EMAIL_HOST, EMAIL_PORT)
					  ->setUsername(EMAIL_USER)
					  ->setPassword(EMAIL_PASS)
					  ;
				} else if (EMAIL_TYPE == 'mail') {
					$transport = Swift_MailTransport::newInstance();
				}
				
				//Create the Mailer using your created Transport
				$mailer = Swift_Mailer::newInstance($transport);
				
				$viewPath = Yii::app()->theme->basePath . '/views/mail/publish_mail_tpl.php';
				$content = $this->renderInternal($viewPath , array('adModel' => $adModel, 'code' => $code), true);
		
				//Create a message
				$message = Swift_Message::newInstance()
				  ->setCharset('utf-8')
				  ->setSubject(Yii::t('publish_page', 'Your Classified is published') . ' ' . DOMAIN_URL)
				  ->setFrom(array(CONTACT_EMAIL))
				  ->setTo(array($defaultFormArray['ad_email']))
				  ->setBody($content, 'text/html');
				  
				//Send the message
				$result = $mailer->send($message);
				//end of send email	
				
				//control mail
				if(SEND_CONTROL_MAIL){
					$viewPath = Yii::app()->theme->basePath . '/views/mail/control_publish_mail_tpl.php';
					$content = $this->renderInternal($viewPath , array('adModel' => $adModel, 'code' => $code), true);
			
					//Create a message
					$message = Swift_Message::newInstance()
					  ->setCharset('utf-8')
					  ->setSubject(Yii::t('publish_page', 'Control Your Classified is published') . ' ' . DOMAIN_URL)
					  ->setFrom(array(CONTACT_EMAIL))
					  ->setTo(array(CONTACT_EMAIL))
					  ->setBody($content, 'text/html');
					  
					//Send the message
					$result = $mailer->send($message);
				}
				//end of control mail			

				$defaultFormArray = array();
				Yii::app()->cache->flush();
			}
		}
		
		//publish vars to view
		$this->view->defaultFormArray 	= $defaultFormArray;	
		$this->view->errorArray 		= $errorArray;
		$this->view->breadcrump			= array(Yii::t('publish_page', 'pageTitle'));
		$this->view->pageTitle 			= Yii::t('publish_page', 'pageTitle');
		$this->view->pageDescription 	= Yii::t('publish_page', 'pageDescription');
		$this->view->pageKeywords 		= Yii::t('publish_page', 'pageKeywords');
		
		//render the view
		$this->render('publish_tpl');
	}
	
	public function actionDelete()
	{
		$adModel = new Ad;
		
		$adId = isset($_GET['id']) ? $_GET['id']: null;
		if(empty($adId) || (int)$adId == 0){
			$this->redirect(Yii::app()->createUrl('site/index'));
		}
		
		if(!$adModel->getAdById($adId)){
			$this->redirect(Yii::app()->createUrl('site/index'));
		}
		
		$this->view->id = $adId;
		
		$defaultFormArray 		= array('code');
		$requiredFieldsArray 	= array('code');
							
		$errorArray = array();
		
		//form is submitted
		if(!empty($_POST)){
			$postParams 		= $_POST;
			$defaultFormArray 	= array_merge($defaultFormArray, $postParams);
			
			foreach($requiredFieldsArray as $k){
				if(!isset($defaultFormArray[$k]) || empty($defaultFormArray[$k])){
					$errorArray[$k] = Yii::t('publish_page', 'Please fill in this field.');
				}
			}
			
			if(!isset($_SESSION['captcha_keystring']) || $_SESSION['captcha_keystring'] != $defaultFormArray['keystring']){
				$errorArray['keystring'] = Yii::t('publish_page', 'Please fill in correct numbers');
			}
			
			if(empty($errorArray)){
				
				$defaultFormArray['code'] = DCUtil::sanitize($defaultFormArray['code']);
				
				if($adModel->getAdByIdAndCode( $adId, $defaultFormArray['code'])){
					
					try{
						$adTagModel = new AdTag;
						$adData = $adModel->findByPk( $adId );
						$adTagModel->removeTags( $adTagModel->string2array( $adData->ad_tags) );
						
						$adPicModel = new AdPic;
						$adPicArray = $adPicModel->findAll("ad_id = {$adId}");
						if(!empty($adPicArray)){
							foreach ($adPicArray as $k => $v){
								@unlink(PATH_UF_CLASSIFIEDS . $v['ad_pic_path']);
								@unlink(PATH_UF_CLASSIFIEDS . 'small-' . $v['ad_pic_path']);
							}
							$adPicModel->deleteAll( "ad_id = {$adId}" );
						}
						
						$adModel->ad_id = $adId;
						$adModel->setIsNewRecord( false );
						$adModel->delete();
						
					} catch (Exception $e){}
				}
				
				$defaultFormArray = array();
				Yii::app()->cache->flush();
			}
		}

		$this->view->defaultFormArray 	= $defaultFormArray;	
		$this->view->errorArray 		= $errorArray;
		$this->view->pageTitle 			= Yii::t('delete_page', 'pageTitle');
		$this->view->pageDescription 	= Yii::t('delete_page', 'pageDescription');
		$this->view->pageKeywords 		= Yii::t('delete_page', 'pageKeywords');

		$this->render('delete_tpl');	
	}
	
	public function actionLocation()
	{
		$lid = isset($_GET['lid']) ? $_GET['lid'] : null;
		if(!empty($lid) && is_numeric($lid)){
			$_SESSION['lid'] = $lid;
		} else {
			$_SESSION['lid'] = '';
		}
		
		Yii::app()->cache->flush();		
		$this->redirect( SITE_URL );
	}
}
 
WRInaute accro
Et dans protected/models/Ad.php => public function rules() => en enlevant tt les références à ad_price ?
 
WRInaute impliqué
spout a dit:
Et dans protected/models/Ad.php => public function rules() => en enlevant tt les références à ad_price ?
Je comprends pas ce que tu essaies de me dire ... je voudrai que ad_phone ne soit plus obligatoire. Que dois je supprimer selon toi ? par contre je veux que les internautes puisse le renseigner facultativement.
 
WRInaute accro
Ben j'ai juste regardé le code, c'est le framework Yii et les règles de validation se trouvent dans le model Ad.php. Je ne sais pas t'aider plus je n'ai pas ce code qui tourne sous la main pour tester.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut