Bonjour à tous,
Je lance la première astuce, afin de créer un champs "liste déroulante" dans l'ajout d'une annonce et de récupérer sa valeur pour l'ajouter dans le détail de l'annonce (ou/et ailleurs).
Merci à :
- @zasami
- @emanwebdev
Pour leur aide précieuse...
---
Cette astuce permet de créer une liste déroulante avec le choix
Offre et
DemandeTout d'abord créez un
champs personnalisé et dans
options avancées donnez lui un nom d'identifiant
Éditez le fichier : \oc-content\themes\bender\
item-post.phpPlacez ce code ou vous voulez voir apparaitre votre "liste déroulante"
<label for="meta_typeannonce">Type d'annonce: </label>
<div class="controls">
<select id="meta_typeannonce" name="typeannonce" class="valid">
<option value="Offre">Offre</option>
<option value="Demande">Demande</option>
</select>
</div>
Éditez le fichier \oc-content\themes\bender\
item.phpPlacez ce code, là ou vous souhaitez voir apparaitre la valeur du champs récupéré
<?php
$typeannonce = Field::newInstance()->findBySlug('typeannonce');
$dao = new DAO();
$dao->dao->select('*');
$dao->dao->from(DB_TABLE_PREFIX.'t_item_meta');
$dao->dao->where('fk_i_field_id', $typeannonce['pk_i_id'] );
$dao->dao->where('fk_i_item_id', osc_item_id() );
$result = $dao->dao->get();
if( $result == false ) {
return array();
}
$custom_data = $result->result();
$typeannonce['s_value'] = $custom_data[0]['s_value'];
View::newInstance()->_exportVariableToView('metafields', array($typeannonce));
?>
<strong><?php echo osc_item_meta_name(); ?> :</strong> <?php echo osc_item_meta_value(); ?><br />
un peu plus bas changer le code
<p><?php echo osc_item_description(); ?></p>
<div id="custom_fields">
<?php if( osc_count_item_meta() >= 1 ) { ?>
<br />
<div class="meta_list">
<?php while ( osc_has_item_meta() ) { ?>
<?php if(osc_item_meta_value()!='') { ?>
<div class="meta">
<strong><?php echo osc_item_meta_name(); ?>:</strong> <?php echo osc_item_meta_value(); ?>
</div>
<?php } ?>
<?php } ?>
</div>
<?php } ?>
</div>
par
<p><?php echo osc_item_description(); ?></p>
<?php View::newInstance()->_exportVariableToView('metafields', Item::newInstance()->metaFields(osc_item_id()) );?>
<div id="custom_fields">
<?php if( osc_count_item_meta() >= 1 ) { ?>
<br />
<div class="meta_list">
<?php while ( osc_has_item_meta() ) { ?>
<?php if(osc_item_meta_value()!='') { ?>
<div class="meta">
<strong><?php echo osc_item_meta_name(); ?>:</strong> <?php echo osc_item_meta_value(); ?>
</div>
<?php } ?>
<?php } ?>
</div>
<?php } ?>
</div>
Et là vous verrez apparaitre dans le détail de l'annonce, le champs récupéré
ou
ENCORE PLUS LOIN...
Faire apparaitre la valeur récupéré sur la page d'
AccueilÉditez le fichier \oc-content\themes\bender\
loop-single.php (bender) et placer ce code ou bon vous semble
<?php
$typeannonce = Field::newInstance()->findBySlug('typeannonce');
$dao = new DAO();
$dao->dao->select('*');
$dao->dao->from(DB_TABLE_PREFIX.'t_item_meta');
$dao->dao->where('fk_i_field_id', $typeannonce['pk_i_id'] );
$dao->dao->where('fk_i_item_id', osc_item_id() );
$result = $dao->dao->get();
if( $result == false ) {
return array();
}
$custom_data = $result->result();
$typeannonce['s_value'] = $custom_data[0]['s_value'];
View::newInstance()->_exportVariableToView('metafields', array($typeannonce));
?>
<strong><?php echo osc_item_meta_name(); ?> :</strong> <?php echo osc_item_meta_value(); ?><br />
ÉGALEMENT POUR LA PARTIE
ADMINÉditez le fichier \oc-admin\themes\modern\items\
frm.phpet placer ce code sous
<div id="left-side">
<label for="meta_typeannonce">Type d'annonce</label>
<div class="controls">
<select id="meta_typeannonce" name="meta[43]" class="valid">
<option value="Offre">Offre</option>
<option value="Demande">Demande</option>
</select>
</div><br />
Et vous aurez ceci, lors d'une modification d'annonce
Voila... amusez vous bien