Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

Suporte geral sobre problemas técnicos para OpenCart v1.x.
#46446
Olá pessoal,

Recentemente eu comprei uma extensão para o Opencart que me permite criar campos personalizados para o produto. A extensão funciona muito bem na página de produtos, só que eu gostaria que o display dessas informações seja feito na página de categorias tb.
Eu tentei duplicar o código que ele utilizou na página de produtos para a página de categoria, mas vem em branco. Também tentei inserir o código do controler/product em controller/category e nada:

Eis abaixo:

catalog/controller/product/product.php:
Código: Selecionar todos
$this->data['text_download'] = $this->language->get('text_download');
				
				if ($this->config->get('cpf_fields')) {
					$fields = $this->config->get('cpf_fields');
				} else {
					$fields = array();
				}
				
				$field_data = array();
				
				if (!empty($product_info['cpf'])) {
					$cpf = unserialize($product_info['cpf']);
				} else {
					$cpf = array();
				}
				
				$this->load->model('catalog/option');
			
				foreach ($fields as $field) {
					$option = $this->model_catalog_option->getOption($field['option_id']);
					
					if ($option) {
						if ($option['type'] == 'select' || $option['type'] == 'radio') {
							$values = array();
							
							$option_values = $this->model_catalog_option->getOptionValues($field['option_id']);
							
							foreach ($option_values as $option_value) {
								$selected = (!empty($cpf[$field['option_id']])) ? $cpf[$field['option_id']] : 0;
								
								$values[] = array(
									'option_value_id'		=> $option_value['option_value_id'],
									'name'					=> $option_value['name'],
									'selected'				=> $selected
								);
							}
							
							$field_data[] = array(
								'name' 			=> $option['name'],
								'type' 			=> $option['type'],
								'status'		=> $field['status'],
								'sort_order'	=> $field['sort_order'],
								'values'		=> $values
							);
						} elseif ($option['type'] == 'checkbox') {
							$values = array();
							
							$option_values = $this->model_catalog_option->getOptionValues($field['option_id']);
							
							foreach ($option_values as $option_value) {
								$selected = (!empty($cpf[$field['option_id']]) && is_array($cpf[$field['option_id']]) && in_array($option_value['option_value_id'], $cpf[$field['option_id']])) ? $option_value['option_value_id'] : 0;
								
								$values[] = array(
									'option_value_id'		=> $option_value['option_value_id'],
									'name'					=> $option_value['name'],
									'selected'				=> $selected
								);
							}
							
							$field_data[] = array(
								'name' 			=> $option['name'],
								'type' 			=> $option['type'],
								'status'		=> $field['status'],
								'sort_order'	=> $field['sort_order'],
								'values'		=> $values
							);
						} else {
							$value = (!empty($cpf[$field['option_id']])) ? $cpf[$field['option_id']] : '';;

							$field_data[] = array(
								'name' 			=> $option['name'],
								'type' 			=> $option['type'],
								'status'		=> $field['status'],
								'sort_order'	=> $field['sort_order'],
								'value'			=> $value
							);
						}
					}
				}
				
				$sort_order = array(); 
				
				foreach ($field_data as $key => $value) {
					$sort_order[$key] = $value['sort_order'];
				}
				
				array_multisort($sort_order, SORT_ASC, $field_data);
				
				$this->data['fields'] = array();
				
				foreach ($field_data as $field) {
					$this->data['fields'][] = $field;
				}

catalog/model/catalog/product.php
Código: Selecionar todos
'cpf'     => $query->row['cpf']

e catalog/view/theme/*/template/product/product.tpl
Código: Selecionar todos
<?php foreach ($fields as $field) { ?>

				  <?php if ($field['status'] && (!empty($field['value']) || !empty($field['values']))) { ?>
					  <?php $selected = false; ?>

					  <?php if ($field['type'] == 'select' || $field['type'] == 'radio') { ?>
						<?php foreach ($field['values'] as $value) { ?>
						  <?php if ($value['selected'] && !$selected) { ?>
						    <?php $selected = true; ?>
							<span><?php echo $field['name']; ?></span>
						  <?php } ?>
						  <?php if ($value['selected'] == $value['option_value_id']) { ?>
							<?php echo $value['name']; ?>
						  <?php } ?>
						<?php } ?><?php if ($selected) { ?><br /><?php } ?>
					  <?php } elseif ($field['type'] == 'checkbox') { ?>
						<?php $checkbox_value = ''; ?>
						<?php foreach ($field['values'] as $value) { ?>
						  <?php if ($value['selected'] && !$selected) { ?>
						    <?php $selected = true; ?>
							<span><?php echo $field['name']; ?></span>
						  <?php } ?>
						  <?php if ($value['selected'] == $value['option_value_id']) { ?>
							<?php $checkbox_value .= $value['name'] . ', '; ?>
						  <?php } ?>
						<?php } ?>
						<?php echo substr($checkbox_value, 0, -2); ?><?php if ($selected) { ?><br /><?php } ?>
					  <?php } elseif ($field['type'] == 'file') { ?>
						<span><?php echo $field['name']; ?></span>
						<a href="index.php?route=product/product/download&file=<?php echo $field['value']; ?>"><?php echo $text_download; ?></a><br />
					  <?php } else { ?>
						<span><?php echo $field['name']; ?></span>
						<?php echo $field['value']; ?><br />
					  <?php } ?>
				  <?php } ?>
				<?php } ?>

Alguém poderia me ajudar?

Como é urgente e caso seja uma modificação muito grande e trabalhosa que não possa ser resolvida por aqui, estou disposta a pagar.
Os interessados por favor me mandem um email [carol.carizzo@gmail.com]com o valor ou o q é necessário para um orçamento.