Поле номер телефона для не зарегистрированных пользователей.
Перед внесением изменений советую сделать резервную копию сайта, а так же базы данных!
Откроем Нашу базу данных, и в поле oc_t_items вставим новую строку:
Для существующего сайта вносить изменения можно через Phpmyadmin, сделайте тоже самое, что на картинке.
Далее изменим файл вывода объявлений oc-includes/osclass/model/item.php
добавим строку s_contact_phone
Далее добавим новую функцию в файл oc-includes/osclass/helpers/hitems.php
Затем добавим в oc-includes/osclass/helpers/hpremium.php
функцию:
Теперь изменим файл отвечающий за форму объявления: c-includes/osclass/ItemActions.php
Затем:
Теперь изменим форму редактирования объявления:
Далее форма, ее тоже отредактируем
Далее:
В итоге должно получиться вот так:
Теперь отредактируем oc-includes/osclass/frm/item.form.class.php
добавим функцию contact_phone_text()
Перед внесением изменений советую сделать резервную копию сайта, а так же базы данных!
Откроем Нашу базу данных, и в поле oc_t_items вставим новую строку:
Код:
s_contact_phone VARCHAR(45) NULL,

Далее изменим файл вывода объявлений oc-includes/osclass/model/item.php
добавим строку s_contact_phone
Код:
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',
'b_premium',
's_ip',
'b_enabled',
'b_active',
'b_spam',
's_secret',
'b_show_email',
'dt_expiration'
);
$this->setFields($array_fields);
}
Код:
function osc_item_contact_phone() {
return (string) osc_item_field("s_contact_phone");
}
функцию:
Код:
function osc_premium_contact_phone() {
return (string) osc_premium_field("s_contact_phone");
}
Код:
//после строки -
$contactEmail = strip_tags( trim( $aItem['contactEmail'] ) );
//добавим -
$contactPhone = strip_tags( trim( $aItem['contactPhone'] ) );
Код:
//после строки
's_contact_email' => $contactEmail,
//добавим эту строчку
's_contact_phone' => $contactPhone,
Код:
//так же ищем строку
$aItem['contactEmail'] = $user['s_email'];
//и после нее добавим
$aItem['contactPhone'] = ($user['s_phone_mobile'])? $user['s_phone_mobile'] : $user['s_phone_land'];
Код:
//ищем строчку
$aUpdate['s_contact_email'] = $aItem['contactEmail'];
//и после нее добавим
$aUpdate['s_contact_phone'] = $aItem['contactPhone'];
Код:
//ищем строчку
Params::setParam('contactEmail', $data['s_email']);
//после нее добавим
Params::setParam('contactPhone', ($data['s_phone_mobile'])? $data['s_phone_mobile'] : $data['s_phone_land']);
В итоге должно получиться вот так:
Код:
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');
}
Теперь отредактируем oc-includes/osclass/frm/item.form.class.php
добавим функцию contact_phone_text()
Код:
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;
}