Página 1 de 2

[Resolvido] CAMPO BAIRRO OBRIGATÓRIO

Enviado: 07 Jan 2016, 10:45
por fearozi
Como tornar o campo bairro obrigatório?

Versão 2.1.0.1

Re: CAMPO BAIRRO OBRIGATÓRIO

Enviado: 07 Jan 2016, 14:40
por leandrorppo

Re: CAMPO BAIRRO OBRIGATÓRIO

Enviado: 07 Jan 2016, 20:37
por fearozi
Procuro por um tutorial para alteração e modificação do mesmo se for possível

Re: CAMPO BAIRRO OBRIGATÓRIO

Enviado: 08 Jan 2016, 02:42
por valdeir2000
Template
1. Abra o arquivo catalog/view/theme/*/template/account/register.tpl
2. Pesquise por name="address_2"
3. Abaixo dessa linha digite o código abaixo
Código: Selecionar todos
<?php if ($error_address_2) { ?>
     <div class="text-danger"><?php echo $error_address_2; ?></div>
 <?php } ?>
Controller
Validação
1. Abra o arquivo catalog/controller/account/register.php
2. Pesquise por if ((utf8_strlen(trim($this->request->post['city'])) < 2) || (utf8_strlen(trim($this->request->post['city'])) > 128)) {
3. Acima dessa linha digite o código abaixo
Código: Selecionar todos
if ((utf8_strlen(trim($this->request->post['address_2'])) < 3) || (utf8_strlen(trim($this->request->post['address_2'])) > 128)) {
    $this->error['address_2'] = $this->language->get('error_address_2');
}
Verificação se há erros
1. Pesquise por if (isset($this->error['city'])) {
2. Acima dessa linha digite o código abaixo
Código: Selecionar todos
if (isset($this->error['address_2'])) {
        $data['error_address_2'] = $this->error['address_2'];
    } else {
        $data['error_address_2'] = '';
}
Language
1. Abra o arquivo catalog/language/portuguese-br/account/register.ph
2. Adicione o código abaixo na última linha
Código: Selecionar todos
$_['error_address_2'] = 'Campo Obrigatório';
Observação.
É necessário fazer nos arquivos abaixo também.

Template
catalog/view/theme/*/template/account/address_form.tpl
catalog/view/theme/*/template/checkout/payment_address.tpl
catalog/view/theme/*/template/checkout/shipping_address.tpl
catalog/view/theme/*/template/checkout/guest.tpl
catalog/view/theme/*/template/checkout/guest_shipping.tpl

Controller
catalog/controller/account/address.php
catalog/controller/checkout/register.php
catalog/controller/checkout/payment_adress.php
catalog/controller/checkout/shipping_address.php
catalog/controller/checkout/guest.php
catalog/controller/checkout/guest_shipping.php

Language
catalog/language/*/account/address.php
catalog/language/*/checkout/checkout.php

Re: CAMPO BAIRRO OBRIGATÓRIO

Enviado: 08 Jan 2016, 10:58
por fearozi
Valdeir, tá quase lá aparentemente.

Está retornando um erro na página ao acessa-lá.

Segue:

"Bairro:

Notice: Undefined variable: error_address_2 in /../../public_html/catalog/view/theme/../template/account/register.tpl on line 247"


Segue a parte citada acima:

<div class="form-group required">
<label class="col-sm-2 control-label" for="input-address-1"><?php echo $entry_address_1; ?></label>
<div class="col-sm-10">
<input type="text" name="address_1" value="<?php echo $address_1; ?>" placeholder="<?php echo $entry_address_1; ?>" id="input-address-1" class="form-control" />
<?php if ($error_address_1) { ?>
<div class="text-danger"><?php echo $error_address_1; ?></div>
<?php } ?>
</div>
</div>

<div class="form-group required">
<label class="col-sm-2 control-label" for="input-address-2"><?php echo $entry_address_2; ?></label>
<div class="col-sm-10">
<input type="text" name="address_2" value="<?php echo $address_2; ?>" placeholder="<?php echo $entry_address_2; ?>" id="input-address-2" class="form-control" />
<?php if ($error_address_2) { ?>
<div class="text-danger"><?php echo $error_address_2; ?></div>
<?php } ?>
</div>
</div>

Re: CAMPO BAIRRO OBRIGATÓRIO

Enviado: 08 Jan 2016, 12:33
por valdeir2000
Verifique se você fez o passo Controller > Verificação se há erros

Re: CAMPO BAIRRO OBRIGATÓRIO

Enviado: 08 Jan 2016, 12:52
por fearozi
No passo "Controller" a única alteração que consegui fazer foi essa:

if ((utf8_strlen(trim($this->request->post['address_2'])) < 3) || (utf8_strlen(trim($this->request->post['address_2'])) > 128)) {
$this->error['address_2'] = $this->language->get('error_address_2');
}


Pois a "Verificação se há erros" (citada abaixo) não consta no código destas páginas.

1. Pesquise por if (isset($this->error['city'])) {
2. Acima dessa linha digite o código abaixo
CÓDIGO: SELECIONAR TODOS
if (isset($this->error['address_2'])) {
$data['error_address_2'] = $this->error['address_2'];
} else {
$data['error_address_2'] = '';
}


Solução?

Re: CAMPO BAIRRO OBRIGATÓRIO

Enviado: 09 Jan 2016, 00:31
por valdeir2000
Então pesquise por if (isset($this->error['address_1'])) {

Ou adicione antes do código
Código: Selecionar todos
$data['header'] = $this->load->controller('common/header');
.

O importante é que ele esteja dentro do método index()

Re: CAMPO BAIRRO OBRIGATÓRIO

Enviado: 11 Fev 2016, 22:17
por Diogo José
Olá, Valdeir.

Obrigado pelo tutorial. Segui ele, nos arquivos

catalog/controller/checkout/payment_adress.php
catalog/controller/checkout/shipping_address.php
catalog/controller/checkout/guest.php
catalog/controller/checkout/guest_shipping.php

não têm if (isset($this->error['city'])) { para verificar erros, mas adicionei o código dentro do index().

Aparentemente está funcionando!

A versão do OpenCart é 2.1.0.2.

Um abraço,

Re: CAMPO BAIRRO OBRIGATÓRIO

Enviado: 09 Jan 2017, 20:53
por fabiodepaula
Olá Valdeir,
quero deixar aqui meu agradecimento de coração mesmo... pois estava me quebrando para torna-lo obrigatório para que não desse erro no checkout do pagseguro, e seguindo suas instruções funfou certinho. muito obrigado, Deus abençoe!