vpess Posted May 22, 2014 Share Posted May 22, 2014 Bom dia, Preciso que me dêem uma ajuda. Comecei uma aplicação em VB6 que faz a integração de produtos, categorias. Algo simples, onde só tem de configurar um ficheiro .ini com os dados do servidor sql e mysql. Depois existe um ecrã onde definimos os filtros: Acontece que estou a ter dificuldade com as imagens. Queria fazer o upload de todas as imagens para uma pasta ftp e depois mapeava o nome da imagem com o id. Mas estive a estudar o processo do prestashop e é um pouco complicado. Ele cria pastas e subpastas. Por exemplo.: id 100 - cria a pasta 1-> 0-> 0 -> 100.jpg Não existe maneira de mapear só o url com o id? Estou a usar a versão 1.6.0.6. Obrigado Link to comment Share on other sites More sharing options...
selectshop.at Posted May 22, 2014 Share Posted May 22, 2014 Quando vc., adiciona um produto ele é adicionado ao banco de dados com um id.- Este ID mapea todos os outros dados com o produto (imagens, pedidos, acessórios, features, combinacoes, etc, etc.) Vc. vai ter que primeiramente verificar o ID que foi reservado no banco de dados para depois poder mapear o resto a este ID. O URL na verdade contém o ID do produto se vc. desativar o URL amigável (verifique vc. mesmo desativando Frindly urls). També o URL da imagem contém o ID se desativar URL amigável. Link to comment Share on other sites More sharing options...
vpess Posted May 22, 2014 Author Share Posted May 22, 2014 (edited) Quando vc., adiciona um produto ele é adicionado ao banco de dados com um id.- Este ID mapea todos os outros dados com o produto (imagens, pedidos, acessórios, features, combinacoes, etc, etc.) Vc. vai ter que primeiramente verificar o ID que foi reservado no banco de dados para depois poder mapear o resto a este ID. O URL na verdade contém o ID do produto se vc. desativar o URL amigável (verifique vc. mesmo desativando Frindly urls). També o URL da imagem contém o ID se desativar URL amigável. Boas, Antes demais obrigado pela resposta. Eu tenho uma pasta local que se chama "imagens" que esta ligada ao ERP. As imagens estão mapeadas com o produtos pelo campo reference. Depois na bd prestashop, posso pegar o id ou o campo reference. O que me causa mais problema é o prestashop criar tantas pastas. Não dá para configurar de forma a que coloque todas as imagens numa só pasta "imagens" por exemplo. Pois por exemplo para uma foto de id - 10, o prestashop vai criar uma pasta com nome 1 e depois uma subpasta com nome 0. E ai coloca a imagem com o nome 10.jpg. Não da para simplificar isto?? Edited May 22, 2014 by vpess (see edit history) Link to comment Share on other sites More sharing options...
selectshop.at Posted May 25, 2014 Share Posted May 25, 2014 Infelizmente nao, pois todos os módulos e features ligados ao core usam o mesmo processo. Se vc. for alterar entao vai dar bagunca e módulos que for comprar ou instalar mais tarde nao mais funcionarao sem adaptacao. É melhor vc. aprender o processo e integrar o mesmo no seu processo. Link to comment Share on other sites More sharing options...
vpess Posted May 25, 2014 Author Share Posted May 25, 2014 Infelizmente nao, pois todos os módulos e features ligados ao core usam o mesmo processo. Se vc. for alterar entao vai dar bagunca e módulos que for comprar ou instalar mais tarde nao mais funcionarao sem adaptacao. É melhor vc. aprender o processo e integrar o mesmo no seu processo. Não tem ai algum topico que ajude a perceber a rotina das imagens. Link to comment Share on other sites More sharing options...
selectshop.at Posted May 25, 2014 Share Posted May 25, 2014 Talvez lhe sirva: http://doc.prestashop.com/display/PS15/Chapter+9+-+Image+management A possibilidade que vc. tem é de pegar um tamanho só de uma imagem e mapear esta imagem (por ex. 1.jpg) 1.jpg é a imagem tamanho "normal" ou seja o tamanho que vc. carregou ao servidor para o produto com ID 1 e se encontra na pasta /img/p/1. o produto com ID 10 já vai na pasta /img/p/1/0 - a imagem "normal" seria 10.jpg lá naquela pasta. Já se um produto tiver mais do que uma imagem complica tudo, pois as imagens vao ser encontradas em outras pastas. Sendo que a segunda imagem do produto com ID 1 pode estar na pasta /img/p/6/6 por exemplo se for a imagem de ID 6, ou seja a sexta imagem que foi carregada ou servidro. Quando uma imagem é carregada ao servidor ela recebe um ID próprio com o valor "auto_increment" e é escrita na tabela ps_product_attribute_image. A ID da imagem para o produto é escrita na tabela ps_image. Vc. retirando de lá o mapeamento deverá acessar às imagens corretas. Mas somente se o produto nao tem combinacoes/attributos com imagens próprias. Link to comment Share on other sites More sharing options...
vpess Posted May 26, 2014 Author Share Posted May 26, 2014 Talvez lhe sirva: http://doc.prestashop.com/display/PS15/Chapter+9+-+Image+management A possibilidade que vc. tem é de pegar um tamanho só de uma imagem e mapear esta imagem (por ex. 1.jpg) 1.jpg é a imagem tamanho "normal" ou seja o tamanho que vc. carregou ao servidor para o produto com ID 1 e se encontra na pasta /img/p/1. o produto com ID 10 já vai na pasta /img/p/1/0 - a imagem "normal" seria 10.jpg lá naquela pasta. Já se um produto tiver mais do que uma imagem complica tudo, pois as imagens vao ser encontradas em outras pastas. Sendo que a segunda imagem do produto com ID 1 pode estar na pasta /img/p/6/6 por exemplo se for a imagem de ID 6, ou seja a sexta imagem que foi carregada ou servidro. Quando uma imagem é carregada ao servidor ela recebe um ID próprio com o valor "auto_increment" e é escrita na tabela ps_product_attribute_image. A ID da imagem para o produto é escrita na tabela ps_image. Vc. retirando de lá o mapeamento deverá acessar às imagens corretas. Mas somente se o produto nao tem combinacoes/attributos com imagens próprias. Boas, Eu fiz esse processo, mas não funcionou. Eu peguei o id de um produto para testar, ou seja: id produto - 1571 Depois dentro da pasta img -> p criei as pastas 1->5->7->1 e coloquei a imagem 1571.jpg A tabela ps_product_attribute_image e a tabela ps_image estão vazias. ou seja não existe mapeamento. Link to comment Share on other sites More sharing options...
selectshop.at Posted May 27, 2014 Share Posted May 27, 2014 ps_product_attribute deverá estar vazia se nao existier combinacoes de produto. Isto está correto. ps_image nao deve estar vazia, mas sim conter: id_product=1571, e id_image sejá lá qual for, pois isto é auto-incrmente e nao necessáriamente corresponde à 1571. Na tabela ps_image vc. encontra o mapeamento produto à imagem do produto. Veja o exemplo do meu banco de dados anexo. Link to comment Share on other sites More sharing options...
vpess Posted May 27, 2014 Author Share Posted May 27, 2014 ps_product_attribute deverá estar vazia se nao existier combinacoes de produto. Isto está correto. ps_image nao deve estar vazia, mas sim conter: id_product=1571, e id_image sejá lá qual for, pois isto é auto-incrmente e nao necessáriamente corresponde à 1571. Na tabela ps_image vc. encontra o mapeamento produto à imagem do produto. Veja o exemplo do meu banco de dados anexo. Boas, Mas nesse caso as imagens ficam na pasta id image ou id produto? Sabe qual a rotina que o prestashop usa para verificar e criar as pastas? Assim eu aproveitava e tentava migrar esse codigo para visual basic 6. Muito obrigado por toda a atenção. Link to comment Share on other sites More sharing options...
selectshop.at Posted May 27, 2014 Share Posted May 27, 2014 As imagens ficam no FTP na pasta /img/p p=product No banco de dados a imagem do produto, se nao for combinacao (camista tamanho G ou camiseta tamanho G, cor azul e tiver imagem própria) é mapeada em ps_images. Se o produto tiver combinacao (camiseta tamnho G ou camiseta tamnho G, cor azul tiver uma imgem própria com a cor azul por ex. enta é mapeada em ps_product_attribute_image que por sua vez é mapeado com a tabela ps_product_attribute Link to comment Share on other sites More sharing options...
selectshop.at Posted May 27, 2014 Share Posted May 27, 2014 Quanto a rotina. Estude os ficheiros /classes/Image.php /clases/ImageManager.php /controllers/admin/AdminImagesCpontroller.php Todas as imagens a serem escritas primeiramente vao para a pasta /tmp em /img/tmp, para depois serem escritas de lá em sua pasta própria com o tamanho próprio. Se o processor falhar, as imagens podem ser regeneradas e sao tiradas desta pasta /img/tmp. Link to comment Share on other sites More sharing options...
vpess Posted May 27, 2014 Author Share Posted May 27, 2014 As imagens ficam no FTP na pasta /img/p Mas é essa parte que nao estou a perceber. Ficam na raiz da pasta "p", ou dentro da pasta "p" são criadas as tais subpastas de acordo com o id?? É que facilitava-me muito de desse para colocar todas as imagens juntas. Link to comment Share on other sites More sharing options...
selectshop.at Posted May 28, 2014 Share Posted May 28, 2014 Nas subpastas, como acima descrito. Na pasta da raíz /img/p nao existe nenhuma imagem (a nao ser no sistema antigo (legacy) que já nao mais é aplicado em Prestashop desde a versao 1.5.) A partir de PS 1.5. fica assim: img/p/1/2/3/123.jpg Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now