Página 1 de 1

[TUTORIAL] Módulo Rapid Image Uploader (1.5.1)

Enviado: 03 Ago 2011, 12:59
por robra
Procurei um Módulo gratuito que facilitasse a seleção e a inclusão de várias fotos ao cadastrar um produto e encontrei o Rapid Image Uploader (1.5.1). O donwload dele pode ser feito na página http://www.opencart.com/index.php?route ... order=DESC, porém, o desenvolvedor adverte que alguns arquivos são alterados e se você tiver algum Módulo instalado poderá ter problemas. Se estiver com a loja "limpa", sem nenhum Módulo instalado aí não terá problemas, tendo apenas que fazer o upload dos arquivos para as respectivas pastas da loja.
Como eu já tinha feito várias alterações em vários arquivos, então, com receio de perdê-las eu fui verificando cada arquivo do Módulo com o original da loja para ver quais e onde as alterações foram realizadas. Assim, pude alterar os arquivos modificados que eu tenho sem perder as alterações que já realizei nos arquivos.
Bem, este Módulo basicamente faz o seguinte:
1- Lhe dá a opção de escolher e inserir várias fotos de uma só vez(usando o Ctrl ou o Shift pressionados) ao cadastrar um novo produto ou ao editar um que já existe na loja. A pasta padrão onde as fotos, ou imagens, são salvas na loja é a image/data. Para alterar o endereço da pasta onde as fotos, ou imagens, serão salvas na loja é preciso alterar o arquivo agile_uploader.php, mas depois falamos sobre isso.
2- As fotos são redimensionadas antes de serem enviadas à loja. O redimensionamento padrão é 500x375 mas também pode ser alterado, e veremos isso depois.
3- Você pode escolher qualquer foto diretamente da lista de fotos para ser a "principal" do produto.
Vamos então a lista dos arquivos que são incluídos e os que são editados:
Arquivos incluídos:
  • admin/controller/common/agile_uploader.php
  • admin/view/image/file-icon.png
  • admin/view/image/trash-icon.png
  • admin/view/image/add-images.jpeg
  • admin/view/javascriptjquery/agile-uploader-3.0.js
  • admin/view/javascriptjquery/jquery.flash.min.js
  • admin/view/javascriptjquery/agile-uploader.swf
Arquivos editados:
  • admin/controller/catalog/category.php
  • admin/controller/catalog/product.php
  • admin/language/portuguese-br/catalog/category.php
  • admin/language/portuguese-br/catalog/product.php
  • admin/view/javascript/jquery/agile-uploader-3.0.js
  • admin/view/stylesheet/stylesheet.css
  • admin/view/template/catalog/category_form.tpl
  • admin/view/template/catalog/product_form.tpl
  • catalog/controller/product/product.php
  • catalog/view/theme/default/template/product/product.tpl
Antes de irmos à edição é aconselhável:
1º) Fazer backup de todos os arquivos a serem editados, porque se tiver algum problema é só restaurá-los.
2º) Utilizar o programa notepad++ para realizar a edição dos arquivos, porque o Dreamweaver altera a codificação de alguns arquivos fazendo aparecer caracteres nas páginas.
Se você não tem o notepad++, baixe-o no link http://download.tuxfamily.org/notepadpl ... .1.bin.zip e após descompactar o arquivo, abra o executável notepad++.exe da pasta "unicode", porque esta versão lhe dá a opção de alterar o idioma do programa para o português.

Vamos às edições, prestando bastante atenção nas instruções de Adicione Depois, Adicione Antes e Substituir:
>>> Abra o arquivo admin\controller\catalog\category.php e ache:
Código: Selecionar todos
$this->data['tab_design'] = $this->language->get('tab_design'); 
Adicione Depois, em uma nova lina:
Código: Selecionar todos
$this->data['text_add_image'] = $this->language->get('text_add_image');
$this->data['text_upload_server'] = $this->language->get('text_upload_server');
$this->data['image_path'] = HTTP_IMAGE; 
>>> Abra o arquivo admin\controller\catalog\product.php e ache:
Código: Selecionar todos
$this->data['entry_layout'] = $this->language->get('entry_layout'); 
Adicione Depois, em uma nova linha:
Código: Selecionar todos
$this->data['entry_main_image'] = $this->language->get('entry_main_image');
$this->data['text_add_images'] = $this->language->get('text_add_images');
$this->data['text_upload_server'] = $this->language->get('text_upload_server'); 
Ache:
Código: Selecionar todos
} else {
              $this->data['weight_class_id'] = $this->config->get('config_weight_class_id');
        } 
Substitua por:
Código: Selecionar todos
} elseif (isset($weight_info)) {
              $this->data['weight_class_id'] = $this->config->get('config_weight_class_id');
        } else {
              $this->data['weight_class_id'] = '';
        } 
Ache:
Código: Selecionar todos
} else {
              $this->data['length_class_id'] = $this->config->get('config_length_class_id');
        } 
Substitua por:
Código: Selecionar todos
} elseif (isset($length_info)) {
              $this->data['length_class_id'] = $this->config->get('config_length_class_id');
        } else {
            $this->data['length_class_id'] = '';
        } 
Ache:
Código: Selecionar todos
$this->data['no_image'] = $this->model_tool_image->resize('no_image.jpg', 100, 100); 
Adicione Depois, em uma nova linha:
Código: Selecionar todos
$this->data['image_path'] = HTTP_IMAGE; 
>>> Abra o arquivo admin/language/portuguese-br/catalog/category.php e Adicione no final da seção // Text as linhas:
Código: Selecionar todos
$_['text_add_image']        = 'Adicionar Imagem';
$_['text_upload_server']    = 'Upload para a Loja'; 
>>> Abra o arquivo admin/language/portuguese-br/catalog/product.php e Adicione no final da seção // Text as linhas:
Código: Selecionar todos
$_['text_add_images']       = 'Adicionar Imagem(ns)';
$_['text_upload_server']    = 'Upload para a Loja'; 
Adicione no final da seção // Entry a linha:
Código: Selecionar todos
$_['entry_main_image']       = 'Imagem Principal'; 
>>> Abra o arquivo admin/view/javascript/jquery/agile-uploader-3.0.js e ache:
Código: Selecionar todos
maxPostSizeMessage: 'Attachments exceed maximum size limit.',
maxFileMessage: 'Μέγιστο όριο αρχείων, try removing a file first.',
duplicateFileMessage: 'This file has already been attached.',
notReadyMessage: 'The form can not be submitted yet because there are still files being resized.',
removeAllText: 'remove all' 
Substitua pelo texto traduzido de sua preferência. Sugestão:
Código: Selecionar todos
maxPostSizeMessage: 'O(s) arquivo(s) anexado(s) excede(m) a capacidade máxima permitida.',
maxFileMessage: 'A quantidade máxima de arquivos anexados foi excedida. Remova alguns arquivos e tente novamente.',
duplicateFileMessage: 'Este arquivo já foi anexado.',
notReadyMessage: 'O upload não pode ser feito porque ainda existem arquivos sendo redimensionados',
removeAllText: 'Remover Tudo' 
>>> Abra o arquivo admin\view\stylesheet\stylesheet.css, e na última linha ache:
Código: Selecionar todos
Adicione Depois, em uma nova linha:
Código: Selecionar todos
.agileUploaderFilePreview {
    float: left;
    width: 20%;
    height: 50px;
    margin: 0px;
    text-align: left;
}
.agileUploaderFileSize {
    float: left;
    width: 10%;
    margin: 0px;
    text-align: left;
}
.agileUploaderFileName {
    float: left;
    width: 50%;
    text-align: left;
    margin: 0px;
}
.agileUploaderRemoveFile {
    width: 20%;
    float: left;
    text-align: right;
    margin: 0px;
    display: block;
}
#agileUploaderInfo {
    width: 100%;
    font-size: 11px;
    font-family: Helvetica, sans-serif;
    display: block;
    height: 200px;
    padding: 0px;
    margin: 0px 0px 4px 0px;
    overflow: auto;
/*    background: #444;*/
    border: 1px solid #ddd;
}
#agileUploaderFileList {
    list-style: none;
    margin: 0px;
    padding: 0px;
    text-indent: 0px;
    display: block;
}
#agileUploaderFileList li {
    list-style: none;
    clear: left;
    margin: 0px;
    padding: 2px 6px 2px 2px;
    display: block;
    overflow: hidden;
    text-indent: 0px;
    background: #ccc;
    border-bottom: solid 1px #444;
}
#agileUploaderFileList li.alt {
    background: #eee;
}
.agileUploaderCurrentProgress {
    height: 50px;
    width: 1%;
    background: #000;
}
.agileUploaderRemoveFile a, .agileUploaderRemoveFile a:hover {
    text-decoration: none;
    border: 0px;
}
.agileUploaderRemoveFile a img {
    border: 0px;
}
#agileUploaderAttachArea {
    width: 100%;
    height: 10px;
}
#agileUploaderMessages {
    font-size: 12px;
    color: #bf0000;
    font-family: Helvetica, sans-serif;
    width: 350px;
    float: left;
    margin: 0px 0px 0px 4px;
    text-align: right;
}
#agileUploaderSWF, #agileUploaderEMBED {
    float: left;
        width:50px;
        height:45px;

}
#agileUploaderRemoveAll {
    height: 14px;
    text-align: right;
    width: 100%;
    font-family: Helvetica, sans-serif;
}
#agileUploaderRemoveAll a {
    color: #555;
    font-size: 11px;
}
#agileUploaderRemoveAll a:hover {
    color: #000;
}
.agileUploaderSingleMessages {
    clear: left !important;
    text-align: left !important;
}
#agileUploaderInfoContainer {
    float: left;
    width: 148px;
    margin-right: 5px;
}
#agileUploaderProgressBar {
    clear: left;
    width: 0px;
    height: 2px;
    margin: 0px;
    padding: 0px;
}
#agileUploaderFileInputText {
    width: 100%;
} 
>>> Abra o arquivo admin\view\template\catalog\category_form.tpl e ache:
Código: Selecionar todos
<div id="tab-data">
Adicione Antes, em uma nova linha:
Código: Selecionar todos
<div id="tab-design">
          <table class="list">
            <thead>
              <tr>
                <td class="left"><?php echo $entry_store; ?></td>
                <td class="left"><?php echo $entry_layout; ?></td>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td class="left"><?php echo $text_default; ?></td>
                <td class="left"><select name="category_layout[0][layout_id]">
                    <option value=""></option>
                    <?php foreach ($layouts as $layout) { ?>
                    <?php if (isset($category_layout[0]) && $category_layout[0] == $layout['layout_id']) { ?>
                    <option value="<?php echo $layout['layout_id']; ?>" selected="selected"><?php echo $layout['name']; ?></option>
                    <?php } else { ?>
                    <option value="<?php echo $layout['layout_id']; ?>"><?php echo $layout['name']; ?></option>
                    <?php } ?>
                    <?php } ?>
                  </select></td>
              </tr>
            </tbody>
            <?php foreach ($stores as $store) { ?>
            <tbody>
              <tr>
                <td class="left"><?php echo $store['name']; ?></td>
                <td class="left"><select name="category_layout[<?php echo $store['store_id']; ?>][layout_id]">
                    <option value=""></option>
                    <?php foreach ($layouts as $layout) { ?>
                    <?php if (isset($category_layout[$store['store_id']]) && $category_layout[$store['store_id']] == $layout['layout_id']) { ?>
                    <option value="<?php echo $layout['layout_id']; ?>" selected="selected"><?php echo $layout['name']; ?></option>
                    <?php } else { ?>
                    <option value="<?php echo $layout['layout_id']; ?>"><?php echo $layout['name']; ?></option>
                    <?php } ?>
                    <?php } ?>
                  </select></td>
              </tr>
            </tbody>
            <?php } ?>
          </table>
        </div>
Ache:
Código: Selecionar todos
</div>
        <div id="tab-design">
          <table class="list">
            <thead>
              <tr>
                <td class="left"><?php echo $entry_store; ?></td>
                <td class="left"><?php echo $entry_layout; ?></td>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td class="left"><?php echo $text_default; ?></td>
                <td class="left"><select name="category_layout[0][layout_id]">
                    <option value=""></option>
                    <?php foreach ($layouts as $layout) { ?>
                    <?php if (isset($category_layout[0]) && $category_layout[0] == $layout['layout_id']) { ?>
                    <option value="<?php echo $layout['layout_id']; ?>" selected="selected"><?php echo $layout['name']; ?></option>
                    <?php } else { ?>
                    <option value="<?php echo $layout['layout_id']; ?>"><?php echo $layout['name']; ?></option>
                    <?php } ?>
                    <?php } ?>
                  </select></td>
              </tr>
            </tbody>
            <?php foreach ($stores as $store) { ?>
            <tbody>
              <tr>
                <td class="left"><?php echo $store['name']; ?></td>
                <td class="left"><select name="category_layout[<?php echo $store['store_id']; ?>][layout_id]">
                    <option value=""></option>
                    <?php foreach ($layouts as $layout) { ?>
                    <?php if (isset($category_layout[$store['store_id']]) && $category_layout[$store['store_id']] == $layout['layout_id']) { ?>
                    <option value="<?php echo $layout['layout_id']; ?>" selected="selected"><?php echo $layout['name']; ?></option>
                    <?php } else { ?>
                    <option value="<?php echo $layout['layout_id']; ?>"><?php echo $layout['name']; ?></option>
                    <?php } ?>
                    <?php } ?>
                  </select></td>
              </tr>
            </tbody>
            <?php } ?>
          </table>
        </div>
      </form>
    </div>
  </div>
</div>
<script type="text/javascript" src="view/javascript/ckeditor/ckeditor.js"></script>
Substitua por:
Código: Selecionar todos
</form>
          <form id="multipleDemo" enctype="multipart/form-data">
        <h2><?php echo $text_add_image; ?></h2>
        <div id="multiple"></div>
    </form>
    <a class="button" onClick="document.getElementById('agileUploaderSWF').submit();"><span><?php echo $text_upload_server; ?></span></a>
      </div>
    </div>
  </div>
</div>
<script type="text/javascript" src="view/javascript/ckeditor/ckeditor.js"></script> 
<script type="text/javascript" src="view/javascript/jquery/jquery.flash.min.js"></script>
<script type="text/javascript" src="view/javascript/jquery/agile-uploader-3.0.js"></script>
<script type="text/javascript">
    $('#multiple').agileUploader({
        flashSrc: 'view/javascript/jquery/agile-uploader.swf',
        formId: 'multipleDemo',
        flashVars: {
            firebug: false,
            return_submit_response: true,
            form_action: 'controller/common/agile_uploader.php',
            file_limit: 1,
            file_filter: '*.jpg;*.jpeg;*.gif;*.png;*.JPG;*.JPEG;*.GIF;*.PNG',
            file_filter_description: 'Image Files',
            max_width: 500,
            max_height: 375,
            max_post_size: (500 * 375),
            preview_max_height: 80,
            preview_max_width: 80,
            button_up:'view/image/add-images.jpeg',
            button_over:'view/image/add-images.jpeg',
            button_down:'view/image/add-images.jpeg'
			},
        removeIcon: 'view/image/trash-icon.png',
        genericFileIcon: 'view/image/file-icon.png'
    });

</script>
<script type="text/javascript"><!--

function addImages(image_name) {
	var ext = image_name.substr(image_name.lastIndexOf('.'));
	var name = image_name.substr(0, image_name.lastIndexOf('.'));
	var im_thumb = name + '-100x100' + ext;

        $('#image').val('data/' + image_name);
	$('#preview').replaceWith('<img src="<?php echo $image_path; ?>' + 'cache/data/' + im_thumb + '" alt="" id="preview" class="image" onclick="image_upload(\'image\', \'preview\');" />');

}
//--></script>
>> Abra o arquivo admin\view\template\catalog\product_form.tpl, ache e EXCLUA:
Código: Selecionar todos
<div id="tab-image">
          <table id="images" class="list">
            <thead>
              <tr>
                <td class="left"><?php echo $entry_image; ?></td>
                <td></td>
              </tr>
            </thead>
            <?php $image_row = 0; ?>
            <?php foreach ($product_images as $product_image) { ?>
            <tbody id="image-row<?php echo $image_row; ?>">
              <tr>
                <td class="left"><img src="<?php echo $product_image['preview']; ?>" alt="" id="preview<?php echo $image_row; ?>" class="image" onclick="image_upload('image<?php echo $image_row; ?>', 'preview<?php echo $image_row; ?>');" />
                  <input type="hidden" name="product_image[<?php echo $image_row; ?>]" value="<?php echo $product_image['image']; ?>" id="image<?php echo $image_row; ?>"  /></td>
                <td class="left"><a onclick="$('#image-row<?php echo $image_row; ?>').remove();" class="button"><span><?php echo $button_remove; ?></span></a></td>
              </tr>
            </tbody>
            <?php $image_row++; ?>
            <?php } ?>
            <tfoot>
              <tr>
                <td></td>
                <td class="left"><a onclick="addImage();" class="button"><span><?php echo $button_add_image; ?></span></a></td>
              </tr>
            </tfoot>
          </table>
        </div>
Ache:
Código: Selecionar todos
</form>
    </div>
  </div>
</div>
<script type="text/javascript" src="view/javascript/ckeditor/ckeditor.js"></script> 
Substitua por:
Código: Selecionar todos
<div id="tab-image">
          <table id="images" class="list">
            <thead>
              <tr>
                <td class="left"><?php echo $entry_image; ?></td>
                <td><?php echo $entry_main_image; ?></td>
                <td></td>
              </tr>
            </thead>
            <?php $image_row = 0; ?>
            <?php foreach ($product_images as $product_image) { ?>
            <tbody id="image-row<?php echo $image_row; ?>">
              <tr>
                <td class="left"><img src="<?php echo $product_image['preview']; ?>" alt="" id="preview<?php echo $image_row; ?>" class="image" onclick="image_upload('image<?php echo $image_row; ?>', 'preview<?php echo $image_row; ?>');" />
                  <input type="hidden" name="product_image[<?php echo $image_row; ?>]" value="<?php echo $product_image['image']; ?>" id="image<?php echo $image_row; ?>"  />
                </td>
                 <td class="left">
                      <?php if ($product_image['image'] == $image) { ?>
                            <input type="radio" name="image" value="<?php echo $product_image['image']; ?>" id="image" checked />
                      <?php }else{ ?>
                            <input type="radio" name="image" value="<?php echo $product_image['image']; ?>" id="image" />
                      <?php } ?>
                  </td>                
                <td class="left"><a onclick="$('#image-row<?php echo $image_row; ?>').remove();" class="button"><span><?php echo $button_remove; ?></span></a></td>
              </tr>
            </tbody>
            <?php $image_row++; ?>
            <?php } ?>
            <tfoot>
              <tr>
                <td></td>
                <td class="left"><a onclick="addImage();" class="button"><span><?php echo $button_add_image; ?></span></a></td>
              </tr>
            </tfoot>
          </table>
      </form>
      <form id="multipleDemo" enctype="multipart/form-data">
            <h2><?php echo $text_add_images; ?></h2>
            <div id="multiple"></div>
      </form>
	<a class="button" onClick="document.getElementById('agileUploaderSWF').submit();"><span><?php echo $text_upload_server; ?></span></a>
      </div>      
    </div>
  </div>
</div>
<script type="text/javascript" src="view/javascript/ckeditor/ckeditor.js"></script> 
<script type="text/javascript" src="view/javascript/jquery/jquery.flash.min.js"></script>
<script type="text/javascript" src="view/javascript/jquery/agile-uploader-3.0.js"></script>
<script type="text/javascript">
    $('#multiple').agileUploader({
        flashSrc: 'view/javascript/jquery/agile-uploader.swf',
        formId: 'multipleDemo',
        flashVars: {
            firebug: false,
            return_submit_response: true,
            form_action: 'controller/common/agile_uploader.php',
            file_limit: 20,
            file_filter: '*.jpg;*.jpeg;*.gif;*.png;*.JPG;*.JPEG;*.GIF;*.PNG',
            file_filter_description: 'Image Files',
            max_width: 500,
            max_height: 375,
            max_post_size: (500 * 375),
            preview_max_height: 80,
            preview_max_width: 80,
            button_up:'view/image/add-images.jpeg',
            button_over:'view/image/add-images.jpeg',
            button_down:'view/image/add-images.jpeg'
			},
        removeIcon: 'view/image/trash-icon.png',
        genericFileIcon: 'view/image/file-icon.png'
    });
	
</script>
Ache:
Código: Selecionar todos
$('#images tfoot').before(html);
	
	image_row++;
}
Acicione Depois, em uma nova linha:
Código: Selecionar todos
//--></script> 
<script type="text/javascript"><!--
var image_row = <?php echo $image_row; ?>;

function addImages(image_name) {
	var ext = image_name.substr(image_name.lastIndexOf('.'));
	var name = image_name.substr(0, image_name.lastIndexOf('.'));
	var im_thumb = name + '-100x100' + ext;
	
        html  = '<tbody id="image_row' + image_row + '">';
	html += '<tr>';
	html += '<td class="left"><input type="hidden" name="product_image[' + image_row + ']" value="data/' + image_name +'" id="image' + image_row + '" /><img src="<?php echo $image_path; ?>' + 'cache/data/' + im_thumb + '" alt="" id="preview' + image_row + '" class="image" onclick="image_upload(\'image' + image_row + '\', \'preview' + image_row + '\');" /></td>';
        html += '<td class="left"><input type="radio" name="image" value="data/' + image_name +'" id="image" /></td>'
	html += '<td class="left"><a onclick="$(\'#image_row' + image_row  + '\').remove();" class="button"><span><?php echo $button_remove; ?></span></a></td>';
	html += '</tr>';
	html += '</tbody>';
	
	$('#images tfoot').before(html);
	
	image_row++;
}
>>> Abra o arquivo catalog\controller\product\product.php e ache:
Código: Selecionar todos
$this->data['images'] = array(); 
Adicione Antes, em uma nova linha:
Código: Selecionar todos
if ($product_info['image']) {
                                $this->data['extra'] = $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_additional_width'), $this->config->get('config_image_additional_height'));
            } else {
                $this->data['extra'] = '';
            } 
>>> Abra o arquivo catalog\view\theme\default\template\product\product.tpl e ache:
Código: Selecionar todos
<?php foreach ($images as $image) { ?>
        <a href="<?php echo $image['popup']; ?>" title="<?php echo $heading_title; ?>" class="fancybox" rel="fancybox"><img src="<?php echo $image['thumb']; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a>
Substitua por:
Código: Selecionar todos
<?php foreach ($images as $image) { ?>
            <?php if ($image['thumb'] != $extra) { ?>
                <a href="<?php echo $image['popup']; ?>" title="<?php echo $heading_title; ?>" class="fancybox" rel="fancybox"><img src="<?php echo $image['thumb']; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a>
            <?php } ?>
Estou usando este Módulo e funciona perfeitamente.
Espero ter ajudado.

Abraço. Imagem

Alterando a pasta padrão para o upload das fotos

Enviado: 03 Ago 2011, 13:20
por robra
Para alterar a pasta padrão image/data, Faça o seguinte:
Digamos que a sua pasta onde a fotos serão salvas chama-se fotos.
1- Crie a pasta image/data/fotos e a image/cache/data/fotos na raiz da sua loja.
2- Abra o arquivo admin/controller/common/agile_uploader.php, EXCLUA TODO o seu conteúdo e Substitua por:
Código: Selecionar todos
<?php

$productDir = 'fotos/';
$uploads_dir = '../../../image/data/' . $productDir;

$myFiles = array();

if(count($_FILES["Filedata"]["error"]) < 2) 
{
   // Single file
   $tmp_name = $_FILES["Filedata"]["tmp_name"];
   $name = $_FILES["Filedata"]["name"];
   $ext = substr(strrchr($name, '.'), 1);
   switch(strtolower($ext)) 
   {
         case 'jpg':
         case 'jpeg':
         case 'png':
         case 'gif':
         case 'png':
         case 'doc':
         case 'txt':
               move_uploaded_file($tmp_name, "$uploads_dir/$name");
         break;
         default:
               exit();
         break;
   }
   
   array_push($myFiles, resize($uploads_dir.$name, 100, 100));
        
} 
else 
{
   // Multiple files
   foreach ($_FILES["Filedata"]["error"] as $key => $error) 
   {
      if ($error == UPLOAD_ERR_OK) 
      {
         $tmp_name = $_FILES["Filedata"]["tmp_name"][$key];
         $name = $_FILES["Filedata"]["name"][$key];
         $ext = substr(strrchr($name, '.'), 1);
         switch(strtolower($ext)) 
         {
               case 'jpg':
               case 'jpeg':
               case 'png':
               case 'gif':
               case 'png':
               case 'doc':
               case 'txt':
                     move_uploaded_file($tmp_name, "$uploads_dir/$name");
               break;
               default:
                     exit();
               break;
         }

         array_push($myFiles, resize($uploads_dir.$name, 100, 100));                        
            
      }
   }
}
//echo 'RETURN DATA!';
echo implode(';', $myFiles);

function resize($filename, $width, $height) 
{
   require_once('../../../system/library/image.php');
   
   global $productDir;
   $image_dir = '../../../image/data/' . $productDir;
   $cache_dir = '../../../image/cache/data/' . $productDir;

    $info = pathinfo($filename);
    $extension = $info['extension'];

    $new_image = substr($info['filename'], 0, strrpos($filename, '.')) . '-' . $width . 'x' . $height . '.' . $extension;

if(!file_exists($cache_dir)) 
      { 
         mkdir($cache_dir ); 
      } 

   if (file_exists($image_dir . $info['basename']))
   {
        $myimage = new Image($image_dir . $info['basename']);
        $myimage->resize($width, $height);
        $myimage->save($cache_dir . $new_image);
    }
   
   $tempPathName = $productDir . $info['basename'];   
   
   return $tempPathName;
}
?>

Abraço. Imagem

Alterando o redimensionamento das fotos no upload

Enviado: 03 Ago 2011, 13:35
por robra
O redimensionamento padrão das fotos no upload é de 500x375. Para alterá-la, faça o seguinte:
>>> Abra o arquivo admin\view\template\catalog\category_form.tpl e ache:
Código: Selecionar todos
max_width: 500,
max_height: 375,
Altere os valores 500 e 375 para os quais deseja que as fotos sejam redimensionadas.

>>> Abra o arquivo admin\view\template\catalog\product_form.tpl e ache:
Código: Selecionar todos
max_width: 500,
max_height: 375,
Altere os valores 500 e 375 para os quais deseja que as fotos sejam redimensionadas.

Abraço. Imagem

Re: [TUTORIAL] Módulo Rapid Image Uploader (1.5.1)

Enviado: 04 Ago 2011, 09:56
por walfrido
Ele funciona nas versões 1.4.9.x ???

Re: [TUTORIAL] Módulo Rapid Image Uploader (1.5.1)

Enviado: 04 Ago 2011, 10:19
por robra
walfrido escreveu:Ele funciona nas versões 1.4.9.x ???
No Tópico que o desenvolvedor usa para o suporte, na página http://www.opencart.com/forum/viewtopic ... 21&t=29748, ele desenvolveu inicialmente para as versões 1.4.9.3 / 1.4.9.4. O link para estas versões é o http://www.opencart.com/forum/viewtopic ... 48#p152225 e já possui algumas correções como também a inclusão da foto para a categoria.
Neste caso, não sei quais os arquivos a serem incluídos e os editados, nem quais são as edições e nem onde elas ocorrem dentro dos arquivos, mas isso não é difícil de saber. É só você comparar os arquivos editados com os originais da sua versão e você vai encontrar onde as edições ocorreram.

Abraço. Imagem

Re: [TUTORIAL] Módulo Rapid Image Uploader (1.5.1)

Enviado: 04 Ago 2011, 22:08
por Manoel Vidal
Esse deve ter dado trabalho :)
Parabéns pela contribuição :D

Re: [TUTORIAL] Módulo Rapid Image Uploader (1.5.1)

Enviado: 04 Ago 2011, 22:45
por robra
É... o esquema de instalação dos Módulos é diferente dos MODs para Fórum, e já que eu tinha que comparar os arquivos do Módulo com os originais, fui separando as alterações para depois montar o Tutorial de instalação para quem quiser instalar também.

Abraço. Imagem

Re: [TUTORIAL] Módulo Rapid Image Uploader (1.5.1)

Enviado: 26 Ago 2011, 13:47
por dealstation
.