Osclass forums
Language Specific => Française => Trucs et Astuces => Topic started by: Nicolas30 on April 07, 2014, 06:58:01 pm
-
Bonjour,
Par défaut il n'y a pas de champs "téléphone" dans le dépôt d'une annonce...
Nous allons donc créer ce champs...
Tout d'abord éditez le fichier : oc-include/osclass/installer/struct.sql
CREATE TABLE /*TABLE_PREFIX*/t_item (
pk_i_id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
fk_i_user_id INT(10) UNSIGNED NULL,
fk_i_category_id INT(10) UNSIGNED NOT NULL,
dt_pub_date DATETIME NOT NULL,
dt_mod_date DATETIME NULL,
f_price FLOAT NULL,
i_price BIGINT(20) NULL,
fk_c_currency_code CHAR(3) NULL,
s_contact_name VARCHAR(100) NULL,
s_contact_email VARCHAR(140) NULL,
s_contact_phone VARCHAR(45) NULL, <------------ insérez cette ligne
s_ip VARCHAR(64) NOT NULL DEFAULT '',
b_premium TINYINT(1) NOT NULL DEFAULT 0,
b_enabled TINYINT(1) NOT NULL DEFAULT 1,
b_active TINYINT(1) NOT NULL DEFAULT 0,
b_spam TINYINT(1) NOT NULL DEFAULT 0,
s_secret VARCHAR(40) NULL,
b_show_email TINYINT(1) NULL,
dt_expiration datetime NOT NULL DEFAULT '9999-12-31 23:59:59',
En ce qui concerne la BDD, voici ce que j'ai fais :
je suis allez sur ma BDD, j'ai ouvert la table oc_t_item --> Ajouter après s_contact_email et j'ai rempli les champs :
(http://i58.servimg.com/u/f58/18/57/20/27/table_10.jpg) (http://www.servimg.com/image_preview.php?i=5&u=18572027)
Validez
---
Éditez le fichier : oc-includes/osclass/model/item.php
function __construct()
{
parent::__construct();
$this->setTableName('t_item');
$this->setPrimaryKey('pk_i_id');
$array_fields = array(
'pk_i_id',
'fk_i_user_id',
'fk_i_category_id',
'dt_pub_date',
'dt_mod_date',
'f_price',
'i_price',
'fk_c_currency_code',
's_contact_name',
's_contact_email',
's_contact_phone', <---------------- insérez cette ligne
'b_premium',
's_ip',
'b_enabled',
'b_active',
'b_spam',
's_secret',
'b_show_email',
'dt_expiration'
);
$this->setFields($array_fields);
}
Éditez le fichier : oc-includes/osclass/helpers/hitems.php
Insérez ce code
function osc_item_contact_phone() {
return (string) osc_item_field("s_contact_phone");
}
Éditez le fichier : oc-includes/osclass/helpers/hpremium.php
Insérez ce code
function osc_premium_contact_phone() {
return (string) osc_premium_field("s_contact_phone");
}
Éditez le fichier : oc-includes/osclass/ItemActions.php
Remplacez le code
$contactName = strip_tags( trim( $aItem['contactName'] ) );
$contactEmail = strip_tags( trim( $aItem['contactEmail'] ) );
$aItem['cityArea'] = osc_sanitize_name( strip_tags( trim( $aItem['cityArea'] ) ) );
$aItem['address'] = osc_sanitize_name( strip_tags( trim( $aItem['address'] ) ) );
Par
$contactName = strip_tags( trim( $aItem['contactName'] ) );
$contactEmail = strip_tags( trim( $aItem['contactEmail'] ) );
$contactPhone = strip_tags( trim( $aItem['contactPhone'] ) );
$aItem['cityArea'] = osc_sanitize_name( strip_tags( trim( $aItem['cityArea'] ) ) );
$aItem['address'] = osc_sanitize_name( strip_tags( trim( $aItem['address'] ) ) );
---
ce code
$this->manager->insert(array(
'fk_i_user_id' => $aItem['userId'],
'dt_pub_date' => date('Y-m-d H:i:s'),
'fk_i_category_id' => $aItem['catId'],
'i_price' => $aItem['price'],
'fk_c_currency_code' => $aItem['currency'],
's_contact_name' => $contactName,
's_contact_email' => $contactEmail,
's_secret' => $code,
'b_active' => ($active=='ACTIVE'?1:0),
'b_enabled' => $enabled,
'b_show_email' => $aItem['showEmail'],
'b_spam' => $is_spam,
's_ip' => $aItem['s_ip']
));
par
$this->manager->insert(array(
'fk_i_user_id' => $aItem['userId'],
'dt_pub_date' => date('Y-m-d H:i:s'),
'fk_i_category_id' => $aItem['catId'],
'i_price' => $aItem['price'],
'fk_c_currency_code' => $aItem['currency'],
's_contact_name' => $contactName,
's_contact_email' => $contactEmail,
's_contact_phone' => $contactPhone,
's_secret' => $code,
'b_active' => ($active=='ACTIVE'?1:0),
'b_enabled' => $enabled,
'b_show_email' => $aItem['showEmail'],
'b_spam' => $is_spam,
's_ip' => $aItem['s_ip']
));
---
Le code
$_meta = Field::newInstance()->findByCategory($aItem['catId']);
$meta = Params::getParam("meta");
par
$flash_error .=
((!osc_validate_text($aItem['contactPhone'], 7, false)) ? _m("Phone Number too short.") . PHP_EOL : '' ) .
((!osc_validate_max($aItem['contactPhone'], 20)) ? _m("Phone Number too long.") . PHP_EOL : '' );
$_meta = Field::newInstance()->findByCategory($aItem['catId']);
$meta = Params::getParam("meta");
---
Le code
if($aItem['userId'] != '') {
$user = User::newInstance()->findByPrimaryKey( $aItem['userId'] );
$aItem['userId'] = $aItem['userId'];
$aItem['contactName'] = $user['s_name'];
$aItem['contactEmail'] = $user['s_email'];
} else {
$aItem['userId'] = NULL;
}
par
if($aItem['userId'] != '') {
$user = User::newInstance()->findByPrimaryKey( $aItem['userId'] );
$aItem['userId'] = $aItem['userId'];
$aItem['contactName'] = $user['s_name'];
$aItem['contactEmail'] = $user['s_email'];
$aItem['contactPhone'] = ($user['s_phone_mobile'])? $user['s_phone_mobile'] : $user['s_phone_land'];
} else {
$aItem['userId'] = NULL;
}
---
le code
if( $this->is_admin ) {
$aUpdate['fk_i_user_id'] = $aItem['userId'];
$aUpdate['s_contact_name'] = $aItem['contactName'];
$aUpdate['s_contact_email'] = $aItem['contactEmail'];
} else {
$aUpdate['s_ip'] = $aItem['s_ip'];
}
par
if( $this->is_admin ) {
$aUpdate['fk_i_user_id'] = $aItem['userId'];
$aUpdate['s_contact_name'] = $aItem['contactName'];
$aUpdate['s_contact_email'] = $aItem['contactEmail'];
$aUpdate['s_contact_phone'] = $aItem['contactPhone'];
} else {
$aUpdate['s_ip'] = $aItem['s_ip'];
}
---
le code
$_meta = Field::newInstance()->findByCategory($aItem['catId']);
$meta = Params::getParam("meta");
par
$flash_error .=
((!osc_validate_text($aItem['contactPhone'], 7, false)) ? _m("Phone Number too short.") . PHP_EOL : '' ) .
((!osc_validate_max($aItem['contactPhone'], 20)) ? _m("Phone Number too long.") . PHP_EOL : '' );
$_meta = Field::newInstance()->findByCategory($aItem['catId']);
$meta = Params::getParam("meta");
---
le code
if($userId != null) {
$aItem['contactName'] = $data['s_name'];
$aItem['contactEmail'] = $data['s_email'];
Params::setParam('contactName', $data['s_name']);
Params::setParam('contactEmail', $data['s_email']);
} else {
$aItem['contactName'] = Params::getParam('contactName');
$aItem['contactEmail'] = Params::getParam('contactEmail');
}
par
if($userId != null) {
$aItem['contactName'] = $data['s_name'];
$aItem['contactEmail'] = $data['s_email'];
$aItem['contactPhone'] = ($data['s_phone_mobile'])? $data['s_phone_mobile'] : $data['s_phone_land'];
Params::setParam('contactName', $data['s_name']);
Params::setParam('contactEmail', $data['s_email']);
Params::setParam('contactPhone', ($data['s_phone_mobile'])? $data['s_phone_mobile'] : $data['s_phone_land']);
} else {
$aItem['contactName'] = Params::getParam('contactName');
$aItem['contactEmail'] = Params::getParam('contactEmail');
$aItem['contactPhone'] = Params::getParam('contactPhone');
}
Éditez le fichier : oc-includes/osclass/frm/item.form.class.php
insérez le code
static public function contact_phone_text($item = null) {
if($item==null) { $item = osc_item(); };
if( Session::newInstance()->_getForm('contactPhone') != "" ) {
$item['s_contact_phone'] = Session::newInstance()->_getForm('contactPhone');
}
parent::generic_input_text('contactPhone', (isset($item['s_contact_phone'])) ? $item['s_contact_phone'] : null);
return true;
}
-
Éditez le fichier : oc-content/themes/bender/item-sidebar.php
Sous le code
<h2> <?php _e ( "Contact publisher" , 'bender' ); ?> </h2>
<p class="name"> <?php echo osc_item_contact_name (); ?> <p>
Insérez
$phoneuser = osc_item_contact_phone();
if ($phoneuser != "") { ?>
<p>Phone: <?php echo $phoneuser ; ?> </p>
<?php } ?>
Éditez le fichier : oc-content/themes/bender/item-post.php
Remplacez le code
<div class="control-group">
<label class="control-label" for="contactEmail"> <?php _e ( 'E-mail' , 'bender' ); ?> </label>
<div class="controls">
<?php ItemForm :: contact_email_text (); ?>
</div>
</div>
par
<div class="control-group">
<label class="control-label" for="contactEmail"> <?php _e ( 'E-mail' , 'bender' ); ?> </label>
<div class="controls">
<?php ItemForm :: contact_email_text (); ?>
</div>
</div>
<div class="control-group">
<label class="control-label" for="contactPhone"> <?php _e ( 'Phone' , 'bender' ); ?> </label>
<div class="controls">
<?php ItemForm :: contact_phone_text (); ?>
</div>
</div>
Éditez le fichier : oc-admin/themes/modern/items/frm.php
Remplacez le code
<div class="input-has-placeholder input-separate-top">
<label> <?php _e ( 'E-mail' ); ?> </label>
<?php ItemForm :: contact_email_text (); ?>
</div>
par
<div class="input-has-placeholder input-separate-top">
<label> <?php _e ( 'E-mail' ); ?> </label>
<?php ItemForm :: contact_email_text (); ?>
</div>
<?php if( osc_item_user_id () == null ) { ?>
<div class="input-has-placeholder input-separate-top">
<label> <?php _e ( 'Phone' ); ?> </label>
<?php ItemForm :: contact_phone_text (); ?>
</div>
<?php } ?>
Voila normalement si vous avez tout suivi... vous devriez voir apparaitre un case "téléphone" dans l'ajout d'annonce...
Cordialement
Source : http://forums.osclass.org/themes/add-phone-number-field-for-bender-theme (http://forums.osclass.org/themes/add-phone-number-field-for-bender-theme) (en anglais)
-
Super merci pour ce tuto, le numero s'affiche t'il aussi dans l'annonce? si oui , ou?
-
Bonsoir,
Le téléphone s'affiche à droite sous le Nom de la personne
Cdt
-
Bonjour,
Je souhaiterai afficher un numéro de téléphone mais je me pose deux questions :
- Dans les fichiers de traduction, le "Téléphone" apparaît, y-a t'il désormais moyen de l'avoir dans les fonctionnalités natives d'Osclass ?
- Si j'applique la solution de ce topic, que va t'il se passer lors des mises à jour futures d'OsClass sur mon site (je parle bien d'OsClass et non pas du thème pour lequel me doute du résultat)
Merci d'avance,