All pastes #227036 Raw Edit

Sans titre

public text v1 · immutable
#227036 ·published 2006-10-29 00:14 UTC
rendered paste body
<?php

	/*		
				?>		*/		
                
    require_once 'config.php';
	
	function askConfirm($id, $jobs, $db){
		/* gets the jobs data, in order to ask for delete confirmation */
		$result = $jobs->get($id);
		$new = $db->getObject($result);
		return '
	'.TXT_JOBS_DEL_CONF.'<br/>'.$new->title.'<br/>'.$new->name.'<br/><br/>
	<a href="?action=delJobs&amp;id='.$id.'">'.TXT_YES.'</a> - <a href="?">'.TXT_NO.'</a><br/>
	';
	}
	
    function getFormJobs($id='', $title='', $name='', $department='', $contract='', $author='', $reports_to='', $contacts_in='', $contacts_out='', $jobs='', $rules='', $action='', $active=''){
		//if we are adding	
			// if no id then we need to add the jobs  ||| Est-il important d'utiliser array() pour initialiser un tableau, ou peu-on le faire juste avec array[x] = ''?
			$i=1;
			echo $rules;
			if ($rules!='') {
				echo 'cool';
				$rules = unserialize($rules);
				if (substr($action, 0, 3)=='add'){
					$rules[0]++;
					$rules[$rules[0]]='';
					echo $rules[0];
				} else {
					$rules[0]--;
				}		
				if ($id=='')
					$action = 'addJobs';
				else
					$action = 'modJobs';
			//rules is only set on 'addField' action ---> this is an addField query
	        } elseif ($id=='') {
				$rules = array(1, '');
				$action = 'addJobs';
			//otherwise this is a modify request
			} else {
				$rules[0] = $jobs->countSpecs($id, 'rule');
				$result = $jobs->getSpecs($id, 'rule');
				for ($i=1;$i<=$rules[0];$i++){
					$new=mysql_fetch_array($result);
					$rules[$i] = $new['text']; // 2 is bound to the 'text' row
				}	
				$action = 'modJobs';
	        }
        $form = '
        <form action="?" method="post" enctype="multipart/form-data">
            <input type="hidden" value="'.$action.'" name="action"/>                 
            <input type="hidden" value="'.$id.'" name="id"/>   
			<input type="hidden" value="'.$rules[0].'" name="rules"/>
            <table>
                <tr>
                    <td>'.TXT_FORM_TITLE.'</td>
                    <td><input type="text" value="'.$title.'" id="title" name="title" size="40" maxlength="255"/></td>
                </tr>
				<tr>
                    <td>'.TXT_FORM_NAME.'</td>
                    <td><input type="text" value="'.$name.'" id="name" name="name" size="40" maxlength="255"/></td>
                </tr>                                  
				<tr>
                    <td>'.TXT_FORM_DEPARTMENT.'</td>
                    <td><input type="text" value="'.$department.'" id="department" name="department" size="40" maxlength="255"/></td>
                </tr>                     	
				<tr>
                    <td>'.TXT_FORM_CONTRACT.'</td>
                    <td><input type="text" value="'.$contract.'" id="contract" name="contract" size="40" maxlength="255"/></td>
                </tr>                     	
				<tr>
                    <td>'.TXT_FORM_AUTHOR.'</td>
                    <td><input type="text" value="'.$author.'" id="author" name="author" size="40" maxlength="255"/></td>
                </tr>                               
				<tr>
                    <td>'.TXT_FORM_REPORTS.'</td>
                    <td><input type="text" value="'.$reports_to.'" id="reports_to" name="reports_to" size="40" maxlength="255"/></td>
                </tr>
				<tr>
                    <td>'.TXT_FORM_CONTACTS_IN.'</td>
                    <td><input type="text" value="'.$contacts_in.'" id="contacts_in" name="contacts_in" size="40" maxlength="255"/></td>
                </tr>                     
				<tr>
                    <td>'.TXT_FORM_CONTACTS_OUT.'</td>
                    <td><input type="text" value="'.$contacts_out.'" id="contacts_out" name="contacts_out" size="40" maxlength="255"/></td>
                </tr>';
				for ($i=1;$i<=$rules[0];$i++){
				$form .= 	'<tr>
								<td>'.TXT_FORM_RULES.' '.$i.'</td>
								<td><input type="text" value="'.$rules[$i].'" id="rule'.$i.'" name="rule'.$i.'" size="40" maxlength="255"/></td>
								<td><input type="image" src="'.IMAGES_PATH.'add.png" name="addField" value="+"/></td>
							</tr>';
				}
                $form .= 	'<!--<tr>
								<td style="vertical-align: top">'.TXT_FORM_IMG.'</td>
								<td>
									<input type="file" name="image" size="30"/>
								</td>
							</tr>-->
                <tr>
                    <td>&nbsp;</td>
                    <td><input type="submit" name="submit" value="'.if ($action=='addJobs') echo('Ajouter offre') else echo('Appliquer modifications').'"/></td>
                </tr>                                
            </table>
       
        </form>';
        return $form;
    }

    function editJobs($title, $name, $department, $contract, $author, $reports_to, $contacts_in, $contacts_out, $rules='', $jobs, $db, $mode='add', $id='', $modField=false){     
		//If adding a field, skip the testing sequence
		if (!$modField)
			if (!$jobs->testAllFields($title, $name, $department, $contract, $author, $reports_to, $contacts_in, $contacts_out, $rules)){
				return ERR_FIELD_EMPTY;
			}				
		$rules = (unserialize($rules));
        if  ($mode=='add') {
	            if (!$jobs->add($title, $name, $department, $contract, $author, $reports_to, $contacts_in, $contacts_out))
					return ERR_MSG_ADD_JOBS; //FAIRE ATTENTION A CE QUE RENVOIE add (A TESTER AVEC ATTENTION)
				for ($i=1;$i<=$rules[0];$i++){
					if (!$jobs->addSpecs($rules[$i], 'rule', $i))
						return ERR_MSG_ADD_JOBS;							
				}
            return TXT_MSG_JOB_ADDED;               
			
        } else {
            if (!$jobs->mod($id, $title, $name, $department, $contract, $author, $reports_to, $contacts_in, $contacts_out))
				return ERR_MSG_MOD_JOBS;
			for ($i=1;$i<=$rules[0];$i++){
				if (!$jobs->updateSpecs($rules[$i], 'rule', $i, $id))	
					return ERR_MSG_MOD_JOBS;
			}
            return TXT_MSG_JOB_MOD;                
        }
          
    }

    function updateImg($jobs, $db, &$msgError, $id=''){
       //get the id of the last jobs if needed
       if ($id==''){
           $result = $jobs->getLast();
           $new = $db->getObject($result);
           $id =  $new->id;
       }
       /* if no upload error */
       if ($_FILES["image"]["error"]==UPLOAD_ERR_OK) {
		   if (!stristr($_FILES["image"]["name"], '.jpg')) {$msgError = ERR_MSG_IMG_NOT_JPG; return false;}
           $name = 'imgJobs_'.$id.'.jpg';
           move_uploaded_file($name, IMG_JOBS_PATH.$name);
           createImage(IMG_JOBS_PATH.$name, IMG_JOBS_SIZE_SMALL, "_small");
           createImage(IMG_JOBS_PATH.$name, IMG_JOBS_SIZE_NORMAL, "_normal");           
           return true; 
       }
       return false; 

    }        

    function getLstJobs($db, $jobs){
        $lstJobs = '';
        $allJobs = $jobs->getAll();
        $lstJobs .= '<table>';        
        while ($new = $db->getObject($allJobs)){
            $lstJobs .=  '<tr>';   
			if ($new->active=='y'){
				$lstJobs .=  '<td><input type="checkbox" name="activejob" checked="checked"><td>';
			}
			else{
				$lstJobs .=  '<td><input type="checkbox" name="activejob"><td>';
			}
            $lstJobs .=  '<td>'.substr($new->title, 0, TITLE_MAX_CHARS).'<td>';
			$lstJobs .=  '<td>'.date('d/m/Y '.TXT_ON_TIME.' H:i:s', $new->date).'<td>';
			$lstJobs .=  '<td><a href="?action=getModForm&amp;id='.$new->id.'"><img src="'.IMAGES_PATH.'write.png"/></a><td>';            
            $lstJobs .=  '<td><a href="?action=callDelMsg&amp;id='.$new->id.'"><img src="'.IMAGES_PATH.'delete.png"/></a><td>';            
            $lstJobs .=  '</tr>';            
        }            
        $lstJobs .= '</table>';        
        return  $lstJobs;
    }
    
    $htmlToShow = '';

    /* if there is a task to do */
	if (isset ($_REQUEST['addField'])){
		$_REQUEST['action'] = 'addField';
		$modField = true;
	}	
	if (isset($_REQUEST['rules'])){
		$rules = array($_REQUEST['rules']);
	}
	for ($i=1;isset($_REQUEST['rule'.$i.'']);$i++){
		$rules[$i] = $_REQUEST['rule'.$i.''];
	}
	if (isset($_REQUEST['rules']))
		$rules = serialize($rules);
		
    if (isset($_REQUEST['action'])){
        switch ($_REQUEST['action']){
            case 'getFormJobs':
            	$htmlToShow = getFormJobs();
				break;
            case 'getModForm':
            	$result = $jobs->get($_REQUEST['id']);
                $new = $db->getObject($result);
                $htmlToShow = getFormJobs($new->id, $new->title, $new->name, $new->department, $new->contract, $new->author, $new->reports_to, $new->contacts_in, $new->contacts_out, $jobs);
                break;
            case 'addJobs': 
                $htmlToShow = editJobs($_REQUEST['title'], $_REQUEST['name'], $_REQUEST['department'], $_REQUEST['contract'], $_REQUEST['author'], $_REQUEST['reports_to'], $_REQUEST['contacts_in'], $_REQUEST['contacts_out'], $rules, $jobs, $db, 'add');
            	break;
            case 'modJobs':
                $htmlToShow = editJobs($_REQUEST['title'], $_REQUEST['name'], $_REQUEST['department'], $_REQUEST['contract'], $_REQUEST['author'], $_REQUEST['reports_to'], $_REQUEST['contacts_in'], $_REQUEST['contacts_out'], $rules, $jobs, $db, 'mod', $_REQUEST['id']);            	
            	break;
			case 'callDelMsg':
				$htmlToShow = askConfirm($_REQUEST['id'], $jobs, $db);
				break;
			case 'delJobs':
				$jobs->del($_REQUEST['id']);
				$htmlToShow = TXT_MSG_JOB_DELETED;
				break;
			case 'addField':
				$htmlToShow = getFormJobs('', $_REQUEST['title'], $_REQUEST['name'], $_REQUEST['department'], $_REQUEST['contract'], $_REQUEST['author'], $_REQUEST['reports_to'], $_REQUEST['contacts_in'], $_REQUEST['contacts_out'], $jobs, $rules, $_REQUEST['action']);
				break;
			default:
				break;
        }     
    }

    // The list of all jobs 
    $lstJobs = getLstJobs($db, $jobs);
        
	$htmlToShow .= '<br/><br/>';	
    echo $htmlToShow;
?>

<a href="?action=getFormJobs"><?php echo TXT_ADD_JOBS ?></a>
<br/>
<br/>
<?php echo $lstJobs; ?>
<br/>
<br/>
<a href="index.php"><?php echo TXT_BACK_TO_HOME ?></a>