Ir ao conteúdo
  • Cadastre-se

Luan Valle

Membro Pleno
  • Posts

    49
  • Cadastrado em

  • Última visita

  1. @Netobarbuio Em qual célula você precisa digitar essas informações, e em qual célula ou de que forma você quer que a planilha te informe o resultado? Poderia disponibilizar essa planilha?
  2. Fala pessoal! Tenho um tanquinho que uso bem no meu apartamento, que tem apenas um interrupor em forma de temporizador, com um ciclo completo de 25min, sendo duas paradas de 5min cada. Adicionei uma bomba para esvaziar o tanquinho e um botão pequeno para acionamento assim que eu quisesse, claro, quando acabasse o ciclo. Adicionei também um solenóide para entrada de água para o tanquinho, já que a torneira que fica aberta é a mesma da máquina de lavar que fica ao lado. Já faço o uso dos Smart Switch Mini para as lâmpadas de casa, e como tenho alguns sobrando, coloquei três no tanquinho, um pra cada acionador (solenóide, batedor e bomba de saída), e a ligação fica conforme abaixo: Ou seja, faço o acionamento tanto pelos botões no tanquinho quanto pelo app Tuya. O que eu quero saber é se há a possibilidade de automatizar o ciclo completo ao invés de eu ter de fazer os acionamentos ainda de forma manual, seja por onde for. Por exemplo, quando eu dizer para Alexa: "Ligar Tanquinho no modo pesado"... - Solenóide ligado por 4:40min - Batedor ligado por 10 min - Batedor desligado por 10min - Batedor ligado por 5 - Batedor desligado - Bomba ligada por 2min. - Bomba desligada - Cilco recomeça igualzinho acima para enxague com amaciante. Do que mais eu preciso pra fazer esse projeto?
  3. Bom dia senhores! Recebi um vídeo onde dizia que alterar o DNS conforme a imagem abaixo, porém selecionando a última opção, eu pararia de ver anúncios. Problema é que meu instagram ficou bugado, não consigo mais ver os stories de mais ninguém, nem mesmo os recebidos via direct. Já alterei novamente para o Automático, já reiniciei, desinstalei, limpei cache e nada resolve. Algum de vocês sabe como resolver? Valeu!
  4. Consegui desta forma, usando seu código: Sub ExportarNG() Application.ScreenUpdating = False Call ExportarNGENTRADAS Call ExportarNGDESPESAS Call ExportarNGTransf Call Copiarparte1 Call sequenciar Call ExportarNGENTRADAS2 Call ExportarNGDESPESAS2 Call ExportarNGTransf2 Call Copiarparte2 Call sequenciar Call CopiarApenas1planilha Call Classificar Call SalvarAba Call ExcluirdadosNG Application.ScreenUpdating = True End Sub Sub ExportarNGENTRADAS() Dim UL As Long, ws As Worksheet 'Sheets.Add(After:=Sheets(Sheets.Count)).Name = "Entradas" Sheets.Add After:=ActiveSheet ActiveSheet.Name = "Entradas" For Each ws In Worksheets(Array("ENT_JAN", "ENT_FEV", "ENT_MAR", "ENT_ABR", "ENT_MAI", "ENT_JUN", "ENT_JUL", "ENT_AGO", "ENT_SET", "ENT_OUT", "ENT_NOV", "ENT_DEZ")) UL = ws.Range("AI:AI").Find("*", , xlValues, xlPart, xlByRows, xlPrevious, False).Row If UL > 6 Then ws.Range("AI7:BA" & UL).Copy Cells(Rows.Count, 1).End(xlUp).Offset(0).PasteSpecial xlPasteValuesAndNumberFormats Next ws Columns("A:S").AutoFit End Sub Sub ExportarNGENTRADAS2() Dim UL As Long, ws As Worksheet 'Sheets.Add(After:=Sheets(Sheets.Count)).Name = "Entradas2" Sheets.Add After:=ActiveSheet ActiveSheet.Name = "Entradas2" For Each ws In Worksheets(Array("ENT_JAN", "ENT_FEV", "ENT_MAR", "ENT_ABR", "ENT_MAI", "ENT_JUN", "ENT_JUL", "ENT_AGO", "ENT_SET", "ENT_OUT", "ENT_NOV", "ENT_DEZ")) UL = ws.Range("P:P").Find("*", , xlValues, xlPart, xlByRows, xlPrevious, False).Row If UL > 6 Then ws.Range("P7:AH" & UL).Copy Cells(Rows.Count, 1).End(xlUp).Offset(0).PasteSpecial xlPasteValuesAndNumberFormats Next ws Columns("A:S").AutoFit End Sub Sub ExportarNGDESPESAS() Dim UL As Long, ws As Worksheet 'Sheets.Add(After:=Sheets(Sheets.Count)).Name = "Despesas" Sheets.Add After:=ActiveSheet ActiveSheet.Name = "Despesas" For Each ws In Worksheets(Array("DESP_JAN", "DESP_FEV", "DESP_MAR", "DESP_ABR", "DESP_MAI", "DESP_JUN", "DESP_JUL", "DESP_AGO", "DESP_SET", "DESP_OUT", "DESP_NOV", "DESP_DEZ")) UL = ws.Range("R:AJ").Find("*", , xlValues, xlPart, xlByRows, xlPrevious, False).Row If UL > 6 Then ws.Range("R7:AJ" & UL).Copy Cells(Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial xlPasteValuesAndNumberFormats Next ws Columns("A:S").AutoFit End Sub Sub ExportarNGDESPESAS2() Dim UL As Long, ws As Worksheet 'Sheets.Add(After:=Sheets(Sheets.Count)).Name = "Despesas2" Sheets.Add After:=ActiveSheet ActiveSheet.Name = "Despesas2" For Each ws In Worksheets(Array("DESP_JAN", "DESP_FEV", "DESP_MAR", "DESP_ABR", "DESP_MAI", "DESP_JUN", "DESP_JUL", "DESP_AGO", "DESP_SET", "DESP_OUT", "DESP_NOV", "DESP_DEZ")) UL = ws.Range("AK:BC").Find("*", , xlValues, xlPart, xlByRows, xlPrevious, False).Row If UL > 6 Then ws.Range("AK7:BC" & UL).Copy Cells(Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial xlPasteValuesAndNumberFormats Next ws Columns("A:S").AutoFit End Sub Sub ExportarNGTransf() Dim UL As Long, ws As Worksheet 'Sheets.Add(After:=Sheets(Sheets.Count)).Name = "Transferencias" Sheets.Add After:=ActiveSheet ActiveSheet.Name = "Transf" For Each ws In Worksheets(Array("Transferências")) UL = ws.Range("P:AH").Find("*", , xlValues, xlPart, xlByRows, xlPrevious, False).Row If UL > 6 Then ws.Range("P5:AH" & UL).Copy Cells(Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial xlPasteValuesAndNumberFormats Next ws Columns("A:S").AutoFit End Sub Sub ExportarNGTransf2() Dim UL As Long, ws As Worksheet 'Sheets.Add(After:=Sheets(Sheets.Count)).Name = "Transferencias" Sheets.Add After:=ActiveSheet ActiveSheet.Name = "Transf2" For Each ws In Worksheets(Array("Transferências")) UL = ws.Range("AI:BA").Find("*", , xlValues, xlPart, xlByRows, xlPrevious, False).Row If UL > 6 Then ws.Range("AI5:BA" & UL).Copy Cells(Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial xlPasteValuesAndNumberFormats Next ws Columns("A:S").AutoFit End Sub Sub Copiarparte1() Sheets("Despesas").Select Range("A2:S2").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("Entradas").Select Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select ActiveSheet.Paste Sheets("Transf").Select Range("A2:S2").Select Range(Selection, Selection.End(xlDown)).Select Application.CutCopyMode = False Selection.Copy Sheets("Entradas").Select Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select ActiveSheet.Paste End Sub Sub Copiarparte2() Sheets("Despesas2").Select Range("A2:S2").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("Entradas2").Select Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select ActiveSheet.Paste Sheets("Transf2").Select Range("A2:S2").Select Range(Selection, Selection.End(xlDown)).Select Application.CutCopyMode = False Selection.Copy Sheets("Entradas2").Select Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select ActiveSheet.Paste End Sub Sub sequenciar() 'Sequenciar lançamentos Dim lr As Long lr = Cells(Rows.Count, "A").End(xlUp).Row ' Range("A2").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "2" Range("A1:A2").Select Selection.AutoFill Destination:=Range("A1:A" & lr) End Sub Sub CopiarApenas1planilha() Sheets("Entradas2").Select Range("A1:S1").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("Entradas").Select Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select ActiveSheet.Paste End Sub Sub Classificar() Dim lr As Long ls = Cells(Rows.Count, "S").End(xlUp).Row la = Cells(Rows.Count, "A").End(xlUp).Row Sheets("Entradas").Select Range("A1:S1").Select Range(Selection, Selection.End(xlDown)).Select ActiveWorkbook.Worksheets("Entradas").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Entradas").Sort.SortFields.Add2 Key:=Range( _ "A1:A" & la), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("Entradas").Sort .SetRange Range("A1:S" & ls) .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub Sub ExcluirdadosNG() Application.DisplayAlerts = False ThisWorkbook.Activate Sheets(Array("Entradas", "Entradas2", "Despesas2", "Despesas", "Transf2", "Transf")) _ .Select Sheets("Transf").Activate ActiveWindow.SelectedSheets.Delete Sheets("Inicial").Select Application.DisplayAlerts = True End Sub Sub SalvarAba() 'Impede que o Excel atualize a tela Application.ScreenUpdating = False 'Impede que o Excel exiba alertas Application.DisplayAlerts = False 'Seta uma variável para se referir a nova pasta de trabalho Dim NovoWB As Workbook 'Cria esta nova aba Set NovoWB = Workbooks.Add(xlWBATWorksheet) With NovoWB 'Copia a aba atual para o novo arquivo, como a segunda aba ThisWorkbook.ActiveSheet.Copy After:=.Worksheets(.Worksheets.Count) 'Deleta a primeira aba do arquivo criado (Aba em branco) .Worksheets(1).Delete 'Salva o novo arquivo para a mesma pasta do arquivo atual 'Troque "Novo Arquivo" para um outro nome qualquer que preferir .SaveAs ThisWorkbook.Path & "\MOVCTB_" & Range("I1") & ".csv" 'Fecha o novo arquivo .Close False End With 'Permite que o Excel volte a atualizar a tela Application.ScreenUpdating = False 'Permite que o Excel volte a exibir alertas Application.DisplayAlerts = False End Sub Muito obrigado pela ajuda! @OreiaG Tentei adaptar o código adicionando o restante dos meses dessa forma: Sub ExportarNGENTRADAS() Dim UL As Long, ws As Worksheet Sheets.Add(after:=Sheets(Sheets.Count)).Name = "Entradas" For Each ws In Worksheets(Array("ENT_JAN", "ENT_FEV", "ENT_MAR", "ENT_ABR", "ENT_MAI", "ENT_JUN", "ENT_JUL", "ENT_AGO", "ENT_SET", "ENT_OUT", "ENT_NOV", "ENT_DEZ")) UL = ws.Range("AI:AI").Find("*", , xlValues, xlPart, xlByRows, xlPrevious, False).Row If UL > 6 Then ws.Range("AI7:BA" & UL).Copy Cells(Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial xlPasteValuesAndNumberFormats Next ws Columns("A:S").AutoFit End Sub Mas deu erro novamente. Eu tenho um problema específico e acabo me esbarrando em outro, então vou colocar a finalidade de tudo que preciso de uma vez: PRIMEIRA PARTE: 1. Copiar e Colar primeiro de AI7:BA302 de todos os meses de Entradas (ENT_JAN, ENT_FEV...); 2. Copiar R7:AJ602 de todas as planilhas de despesas (DESP_JAN, DESP_FEV...) e colar abaixo da última linha preenchida; 3. Copiar P5:AH499 da planilha "Transferências" e colar abaixo da última linha preenchida; 4. Sequenciar a coluna A de 1 em 1 (Por exemplo, se depois de tudo deu 114 lançamentos, sequenciar de 1 a 114) SEGUNDA PARTE 5. Copiar e Colar primeiro de P7:AH302 de todos os meses de Entradas (ENT_JAN, ENT_FEV...); 6. Copiar AK7:BC602 de todas as planilhas de despesas (DESP_JAN, DESP_FEV...) e colar abaixo da última linha preenchida; 7. Copiar AI5:BA499 da planilha "Transferências" e colar abaixo da última linha preenchida; 8. Sequenciar novamente essa segunda parte igual a primeira parte. Por exemplo, se deu 114 lançamentos, essa segunda parte também terá a sequencia de 1 a 114. Isso porque o sistema da MasterMaq aceita cada lançamento em duas linhas, então a cada duas linhas terá uma sequencia igual. Depois desse trabalho todo, as sequencias deverão ficar 1,1,2,2,3,3... e assim sucessivamente na coluna A. Na coluna G ficará a letra D e C se alternando e na coluna S o número 1 e 2 se alternando. No final, quero que esses dados salvem em outra com o nome "MOVCTB_(número do CNPJ)" que consta na planilha "Inicial" célula B17, no mesmo local em que esta pasta de trabalho está salva. O arquivo bruto está anexado. Dentro deixei um botão para desproteger e a senha da macro. Master38223897!
  5. @OreiaG Tentei adaptar o código adicionando o restante dos meses dessa forma: Sub ExportarNGENTRADAS() Dim UL As Long, ws As Worksheet Sheets.Add(after:=Sheets(Sheets.Count)).Name = "Entradas" For Each ws In Worksheets(Array("ENT_JAN", "ENT_FEV", "ENT_MAR", "ENT_ABR", "ENT_MAI", "ENT_JUN", "ENT_JUL", "ENT_AGO", "ENT_SET", "ENT_OUT", "ENT_NOV", "ENT_DEZ")) UL = ws.Range("AI:AI").Find("*", , xlValues, xlPart, xlByRows, xlPrevious, False).Row If UL > 6 Then ws.Range("AI7:BA" & UL).Copy Cells(Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial xlPasteValuesAndNumberFormats Next ws Columns("A:S").AutoFit End Sub Mas deu erro novamente. Eu tenho um problema específico e acabo me esbarrando em outro, então vou colocar a finalidade de tudo que preciso de uma vez: PRIMEIRA PARTE: 1. Copiar e Colar primeiro de AI7:BA302 de todos os meses de Entradas (ENT_JAN, ENT_FEV...); 2. Copiar R7:AJ602 de todas as planilhas de despesas (DESP_JAN, DESP_FEV...) e colar abaixo da última linha preenchida; 3. Copiar P5:AH499 da planilha "Transferências" e colar abaixo da última linha preenchida; 4. Sequenciar a coluna A de 1 em 1 (Por exemplo, se depois de tudo deu 114 lançamentos, sequenciar de 1 a 114) SEGUNDA PARTE 5. Copiar e Colar primeiro de P7:AH302 de todos os meses de Entradas (ENT_JAN, ENT_FEV...); 6. Copiar AK7:BC602 de todas as planilhas de despesas (DESP_JAN, DESP_FEV...) e colar abaixo da última linha preenchida; 7. Copiar AI5:BA499 da planilha "Transferências" e colar abaixo da última linha preenchida; 8. Sequenciar novamente essa segunda parte igual a primeira parte. Por exemplo, se deu 114 lançamentos, essa segunda parte também terá a sequencia de 1 a 114. Isso porque o sistema da MasterMaq aceita cada lançamento em duas linhas, então a cada duas linhas terá uma sequencia igual. Depois desse trabalho todo, as sequencias deverão ficar 1,1,2,2,3,3... e assim sucessivamente na coluna A. Na coluna G ficará a letra D e C se alternando e na coluna S o número 1 e 2 se alternando. No final, quero que esses dados salvem em outra pasta de trabalho com o nome "MOVCTB_(número do CNPJ)" que consta na planilha "Inicial" célula B17, no mesmo local em que esta pasta de trabalho está salva. As planilhas que ficarem nesta pasta de trabalho podem ser excluídas, deixando ela como estava. O arquivo bruto está anexado. Dentro deixei um botão para desproteger e a senha da macro. Master38223897! Agradeço novamente a ajuda. Caixa para Igrejas.rar
  6. @OreiaG Meu irmão, não sei o que dizer.... soltei um palavrão aqui de tão badass que foi esse código. Além de conseguir o que eu solicitei, ainda reduziu o tamanho do código drásticamente. Que toda a sorte do mundo te acompanhe amigo, muito obrigado!
  7. Estou com um problema ao copiar dados de várias planilhas em uma só. Na planilha abaixo, uso a fórmula =SE(B7="";"";B7) das colunas P:BA para copiar algumas informações da parte das colunas B:F e adicionar algumas informações, apenas para exportar para um outro programa. A coluna O em diante serão ocultadas para o cliente. Meu intuito é copiar todas as células que foram preenchidas para outra planilha recém-criada na macro e sempre copiasse a próxima planilha para a próxima célula em branco. Porém, usando o código abaixo, a planilha entende que as células em branco também estão preenchidas. Como quero copiar apenas Ai7:BA302, usei o código abaixo: Sub ExportarNG() ' ' Marco para Criar nova planilha ' Sheets.Add After:=ActiveSheet ActiveSheet.Name = "Entradas" 'Copiar Entradas ''JANEIRO Sheets("Ent_JAN").Select Range("AI7:BA302").Select Selection.Copy Sheets("Entradas").Select Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False ''FEVEREIRO Sheets("Ent_FEV").Select Range("AI7:BA302").Select Selection.Copy Sheets("Entradas").Select Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False ''MARÇO Sheets("Ent_MAR").Select Range("AI7:BA302").Select Selection.Copy Sheets("Entradas").Select Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False End Sub Ela copia a próxima planilha (ENT_FEV) começando na linha 298, sendo que deveria continuar na linha 4, já que na primeira planilha já havia duas linhas. Como resolver isso? Planilha Caixa para Igrejas.rar
  8. Marcarei o tópico como resolvido pois, achei outra forma de fazê-lo. Apenas continuei a partir das colunas AA em diante e ocultei elas.
  9. Senhores, bom dia! Mais uma vez necessito da ajuda de vocês quanto a um código que não consigo criar de nenhuma forma. De modo geral, tenho uma planilha de lançamentos contábeis que meus clientes fazem, onde eu faço a exportação. Quando faço a exportação, consigo apenas a primeira parte, a segunda deveria ser quase idêntica. Vou colocar abaixo o código que a planilha faz até aqui e o que eu queria que acontecesse. Sub ExportarENTJAN() 'Copiar Entradas ''JANEIRO Sheets("Ent_JAN").Select Range("A7:S302").Select Selection.Copy Sheets("Entradas").Select Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=True, Transpose:=False Sheets("Ent_JAN").Select Range("A7:S302").Select Selection.Copy Sheets("Entradas2").Select Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=True, Transpose:=False End Sub O que acontece é: E o que quero que aconteça é que na planilha "Entradas2", a Coluna G contenha a letra "D" no lugar de todos os "C", na coluna S contenha o número 1 no lugar de todos os 2. Isso é padrão, sempre vai ter o C e o 2 nas colunas G e S, respectivamente. Na coluna F constam as contas contábeis. Na planilha Entradas2 deveria estar a conta contábil relacionada a conta bancária, que estão na planilha "CADASTRO". Após tudo isso, a planilha "Entradas" deveria ficar conforme abaixo: Deixarei abaixo de onde vem os dados copiados para estas planilhas: É isso. Talvez seja simples a substituição das colunas G e S, mas a F tá me pegando. Obrigado até aqui.
  10. Boa tarde senhores! Vou tentar ser breve no que preciso. Tenho um site de adesivos onde o cliente pode personalizar como deseja. Eu comprei um addon para que as estampas aparecessem para o cliente apenas clicar e abrirá o editor. O addon faz com que apareça desta forma: Onde está em azul é o addon por completo. Onde coloquei a linha vermelha por baixo é onde estava escrito "Templates" e "Cliparts", respectivamente. Consegui alterar no código php dentro do diretório do plugin, inclusive, consegui reverter para que a aba "Estampas" viesse primeiro e que estivesse ativada. No entanto, quando o cliente entra na página inicial do site, mesmo a aba "Estampas" estando ativa, aparece as imagens dos "Adicionais", antigo "Cliparts", conforme abaixo: O que eu quero apenas é alterar o código PHP pra que as estampas apareçam já de início, e não as adicionais. Não consegui encontrar no código como fazer esta alteração. Anexarei aqui o código em txt. Agradeço muito a ajuda! O site é joygrafica.com.br. <?php /* Name: Display template and clipart Description: Display template and clipart on page Version: 1.0 Compatible: 1.7.5 */ class lumise_addon_display_template_clipart extends lumise_addons { function __construct() { global $lumise; // header menu $lumise->add_action('header_lumise_php', array(&$this, 'header_lumise_php_addon')); // add js $lumise->add_action('editor-footer', array(&$this, 'editor_footer')); $lumise->add_action('footer_lumise_php', array(&$this, 'editor_footer_php')); // Access core js via your JS function name $this->access_corejs('lumise_addon_display_template_clipart_js'); // register shortcode if($lumise->connector->platform == 'woocommerce'){ add_shortcode('lumise_template_clipart_list', array(&$this, 'lumise_lumise_template_clipart_list')); } // ajax $lumise->add_action('addon-ajax', array(&$this, 'ajax_action')); // $lumise->add_filter('list-products-after', array(&$this, 'list_products_after')); } public function ajax_action($comp) { global $lumise; if (isset($_POST['ajax']) && $_POST['ajax'] == 'frontend' && isset($_POST['action']) && $_POST['action'] == 'addon' && isset($_POST['component']) && $_POST['component'] == 'clipart_templates_shortcode_html' ) { if(isset($_REQUEST['per_page'])){ $args['per_page'] = intval($_REQUEST['per_page']); } if(isset($_REQUEST['left_column'])){ $args['left_column'] = $_REQUEST['left_column']; } if(isset($_REQUEST['columns'])){ $args['columns'] = intval($_REQUEST['columns']); } if(isset($_REQUEST['search'])){ $args['search'] = $_REQUEST['search']; } echo $this->lumise_lumise_template_clipart_list($args, ''); } if (isset($_POST['ajax']) && $_POST['ajax'] == 'frontend' && isset($_POST['action']) && $_POST['action'] == 'addon' && isset($_POST['component']) && $_POST['component'] == 'clipart_templates_shortcode' && isset($_POST['id']) && isset($_POST['resource']) && ($_POST['resource'] == 'cliparts' || $_POST['resource'] == 'templates') ) { $type = ''; if($_POST['resource'] == 'cliparts'){ $type = 'image'; } if($_POST['resource'] == 'templates'){ $type = 'template'; } $query = "SELECT SQL_CALC_FOUND_ROWS item.*, '".$_POST['resource']."' as resource FROM {$lumise->db->prefix}".$_POST['resource']." item WHERE item.author='' AND item.active = 1 AND item.id = ".intval($_POST['id'])." "; // $queryTemplates = "SELECT SQL_CALC_FOUND_ROWS item.*, 'templates' as resource FROM lumise_templates item WHERE item.author='' AND item.active = 1 GROUP BY item.id ORDER BY `item`.`order` DESC, `item`.`created` DESC LIMIT 0, 48"; $item = $lumise->db->rawQuery($query); if(empty($item) || count($item) != 1){ echo json_encode(array('status' => 0, 'message' => 'Not found item')); die(); } if($_POST['resource'] == 'cliparts'){ $result = array(array( 'cates' => '', 'id' => strval($_POST['id']), 'name' => $item[0]['name'], 'price' => floatval($item[0]['price']), 'resource' => $_POST['resource'], 'resource_id' => intval($item[0]['id']), 'tags' => '', 'type' => $type, 'url' => $item[0]['upload'] )); } if($_POST['resource'] == 'templates'){ $result = array(array( 'cates' => '', 'id' => strval($_POST['id']), 'name' => $item[0]['name'], 'screenshot' => $item[0]['screenshot'], 'price' => floatval($item[0]['price']), 'tags' => '', 'type' => $type, 'url' => $item[0]['upload'] )); } echo json_encode(array('status' => 1, 'message' => $result)); die(); } if (isset($_POST['ajax']) && $_POST['ajax'] == 'frontend' && isset($_POST['action']) && $_POST['action'] == 'addon' && isset($_POST['component']) && $_POST['component'] == 'get_lumise_tc' ) { $result = array(); $filter = array(); $cate_id = intval($_REQUEST['cate_id']); $cate_type = $_REQUEST['cate_type']; $search = $_REQUEST['search']; $c_page = intval($_REQUEST['c_page']); $limit = intval($_REQUEST['limit']); if ($cate_id != 0) { $filter['cate_id'] = $cate_id; } if ($cate_type != '') { $filter['cate_type'] = $cate_type; } if ($search != '') { $filter['search'] = $search; } if ($c_page != 0) { $filter['c_page'] = $c_page; } if ($limit != 0) { $filter['limit'] = $limit; } $listoftc = $this->getListOfTemplateClipart($filter); echo json_encode(array('status' => 1, 'message' => $listoftc)); die(); } } public function header_lumise_php_addon(){ global $lumise; $addon_design_lib = false; $actives = $lumise->get_option('active_addons'); if ($actives !== null && !empty($actives)){ $actives = (Array)@json_decode($actives); } if (!is_array($actives)){ $actives = array(); } foreach ($actives as $key => $value) { if($key == 'display_template_clipart' && $value == 1){ echo "<li><a href=".$lumise->cfg->url.'design-library.php'.">".$lumise->lang('Biblioteca de design')."</a></li>"; } } } public function editor_footer_php(){ global $lumise; if($lumise->connector->platform == 'php' && !$this->is_backend() && strpos($_SERVER['REQUEST_URI'], 'design-library.php') !== false){ $this->editor_file(); } } public function editor_footer() { if(!$this->is_backend()) { echo '<script type="text/javascript" src="'.$this->get_url('assets/js/edit_design_addon.js?ver=1').'"></script>'; } } public function settings() { global $lumise; return array( array( 'type' => 'input', 'name' => 'tutorial_shortcode_lumise_template_clipart', 'desc' => 'Ex : <font color="red">[lumise_template_clipart_list per_page="30" left_column="true" columns="4" search="true"]</font><br/><br/>per_page : '.$lumise->lang('* Número de exibição por páginas').'<br/>left_column : '.$lumise->lang('* Exibir lista de adicionais e estampas').'<br/>columns : '.$lumise->lang('* A coluna deve ser um número par').'<br/>search : '.$lumise->lang('* Exibir área de pesquisa')."<style>.lumise_form_submit, input[name=".'"tutorial_shortcode_lumise_template_clipart"'."]{display: none !important;}</style>", 'label' => 'Tutorial Shortcode' ) ); } public function lumise_lumise_template_clipart_list($args, $content){ global $lumise; // add css & js if($lumise->connector->platform == 'woocommerce'){ $this->editor_file(); } $listofctc = $this->getListOfCategoriesTemplateClipart(); $cateTemplates = $this->filterData($listofctc, 'templates'); $cateCliparts = $this->filterData($listofctc, 'cliparts'); ob_start(); ?> <input type="hidden" name="lumise_shortcode_per_page" value="<?php echo (isset($args['per_page']) && intval($args['per_page'])) ? intval($args['per_page']) : '10' ?>"> <input type="hidden" name="lumise_shortcode_columns" value="<?php echo (isset($args['columns']) && intval($args['columns'])) ? intval($args['columns']) : '4' ?>"> <div id="lumise_template_clipart_shortcode" class="lumise-addon-shortcode-tc-container-fluid"> <div class="lumise-addon-shortcode-tc-row"> <?php if(isset($args['left_column']) && $args['left_column'] == 'true') : ?> <div class="lumise_shortcode-tc-categories lumise-addon-shortcode-tc-col-md-3"> <div class="lumise_addon_tc_tabs"> <ul> <li class="lumise_addon_tc_tabs_title active"data-tab="template" >Estampas</li> <li class="lumise_addon_tc_tabs_title " data-tab="clipart">Adicionais</li> </ul> <div class="data-tab-content-clipart "> <div class="bigsize"> <ul> <?php echo '<li class="lumise-addon-shortcode-list-cliparts" data-type="cliparts" data-cat="0"><span data-type="cliparts" data-cat="0" class="list_name">Todos os Adicionais</span></li>'; foreach ($cateCliparts as $indexCateTemplate => $valueCateTemplate) { echo '<li class="lumise-addon-shortcode-list-cliparts" data-type="'.$valueCateTemplate['type'].'" data-cat="'.$valueCateTemplate['id'].'"><span data-type="'.$valueCateTemplate['type'].'" data-cat="'.$valueCateTemplate['id'].'" class="list_name">'.$valueCateTemplate['name'].'</span>'; $this->dequy_list($valueCateTemplate, 'clipart_list'); echo '</li>'; } ?> </ul> </div> </div> <div class="data-tab-content-template active"> <ul> <?php echo '<li class="lumise-addon-shortcode-list-templates" data-type="templates" data-cat="0"><span data-type="templates" data-cat="0" class="list_name">Todas as Estampas</span></li>'; foreach ($cateTemplates as $indexCateTemplate => $valueCateTemplate) { echo '<li class="lumise-addon-shortcode-list-templates" data-type="'.$valueCateTemplate['type'].'" data-cat="'.$valueCateTemplate['id'].'"><span data-type="'.$valueCateTemplate['type'].'" data-cat="'.$valueCateTemplate['id'].'" class="list_name">'.$valueCateTemplate['name'].'</span>'; $this->dequy_list($valueCateTemplate, 'template_list'); echo '</li>'; } ?> </ul> </div> </div> </div> <?php endif; ?> <div class="lumise_shortcode-tc-listing lumise-addon-shortcode-tc-col-md-<?php echo (isset($args['left_column']) && $args['left_column'] == 'true') ? '9' : '12' ?>"> <input type="hidden" id="cate_id"> <input type="hidden" id="cate_type"> <?php if(isset($args['search']) && $args['search'] == 'true') : ?> <div class="lumise-addon-shortcode-tc-search"><input id="search_adon" type="text" placeholder="Search"></div> <?php endif; ?> <div class="lumise-addon-shortcode-tc-list"></div> <div class="lumise-addon-shortcode-tc-pagination"></div> </div> </div> </div> <?php $content = ob_get_contents(); ob_clean(); ob_end_flush(); return $content; } public function dequy_list($valueCateTemplate, $type = ''){ if(isset($valueCateTemplate['child'])){ echo '<span data-cat="'.$valueCateTemplate['id'].'" class="list_icon"><svg style="width: 14px;" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512.011 512.011" style="enable-background:new 0 0 512.011 512.011;" xml:space="preserve"><g><g><path d="M505.755,123.592c-8.341-8.341-21.824-8.341-30.165,0L256.005,343.176L36.421,123.592c-8.341-8.341-21.824-8.341-30.165,0s-8.341,21.824,0,30.165l234.667,234.667c4.16,4.16,9.621,6.251,15.083,6.251c5.462,0,10.923-2.091,15.083-6.251l234.667-234.667C514.096,145.416,514.096,131.933,505.755,123.592z"/></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg></span>'; echo '<ul data-id="child_'.$valueCateTemplate['id'].'" class="hidden_submenu">'; foreach ($valueCateTemplate['child'] as $key => $value) { if($type == 'clipart_list'){ echo '<li class="lumise-addon-shortcode-list-cliparts" data-type="'.$value['type'].'" data-cat="'.$value['id'].'"><span data-type="'.$value['type'].'" data-cat="'.$value['id'].'" class="list_name">'.$value['name'].'</span>'; } if($type == 'template_list'){ echo '<li class="lumise-addon-shortcode-list-templates" data-type="'.$value['type'].'" data-cat="'.$value['id'].'"><span data-type="'.$value['type'].'" data-cat="'.$value['id'].'" class="list_name">'.$value['name'].'</span>'; } $this->dequy_list($value, $type); echo "</li>"; } echo '</ul>'; } return false; } public function getListOfTemplateClipart($filter){ global $lumise; $listofData = array(); $limit = 10; $c_page = 0; $tableDefault = $lumise->lib->sql_esc($lumise->db->prefix."cliparts"); $defaultSelect = "id, thumbnail_url, created, 'cliparts' as type"; $nameSearch = ''; if (isset($filter['cate_type']) && $filter['cate_type'] == 'templates') { $tableDefault = $lumise->lib->sql_esc($lumise->db->prefix."templates"); $defaultSelect = "id, screenshot, created, 'templates' as type"; } $queryFilter = " WHERE "; if(isset($filter['cate_id']) && isset($filter['cate_type']) && ($filter['cate_type'] == 'cliparts' || $filter['cate_type'] == 'templates')){ if ($filter['cate_type'] == 'templates') { $table1 = $lumise->lib->sql_esc($lumise->db->prefix."templates"); $defaultSelect = " ".$table1.".id, ".$table1.".screenshot, ".$table1.".created, 'templates' as type "; $tableDefault = $table1.' INNER JOIN '.$lumise->db->prefix.'categories_reference ON '.$lumise->db->prefix.'categories_reference.item_id = '.$table1.'.id '; $queryFilter .= ' '.$lumise->db->prefix.'categories_reference.category_id = '.$filter['cate_id'].' AND '.$lumise->db->prefix.'categories_reference.type = "'.$filter['cate_type'].'" AND '; } if ($filter['cate_type'] == 'cliparts') { $table1 = $lumise->lib->sql_esc($lumise->db->prefix."cliparts"); $defaultSelect = " ".$table1.".id, ".$table1.".thumbnail_url, ".$table1.".created, 'cliparts' as type "; $tableDefault = $table1.' INNER JOIN '.$lumise->db->prefix.'categories_reference ON '.$lumise->db->prefix.'categories_reference.item_id = '.$table1.'.id '; $queryFilter .= ' '.$lumise->db->prefix.'categories_reference.category_id = '.$filter['cate_id'].' AND '.$lumise->db->prefix.'categories_reference.type = "'.$filter['cate_type'].'" AND '; } } if(isset($filter['search']) && $filter['search'] != ''){ $queryFilter .= "name like '%s' "; $nameSearch = $filter['search']; $listFilter = $gr_cate = $gr_tag = array(); // search type $typeSearch = "cliparts"; if (isset($filter['cate_type']) && $filter['cate_type'] == 'templates') { $typeSearch = "templates"; } // search cate $searchCate = "SELECT GROUP_CONCAT(".$lumise->db->prefix."categories_reference.item_id) AS gr_cate FROM ".$lumise->db->prefix."categories_reference INNER JOIN ".$lumise->db->prefix."categories ON ".$lumise->db->prefix."categories_reference.category_id = ".$lumise->db->prefix."categories.id WHERE ".$lumise->db->prefix."categories.name LIKE '%s' AND ".$lumise->db->prefix."categories.active = 1 AND ".$lumise->db->prefix."categories_reference.type = '".$typeSearch."' "; $querySearchCate = sprintf($searchCate, $lumise->lib->sql_esc($nameSearch)); $excuteSearchCate = $lumise->db->rawQuery($querySearchCate); if(isset($excuteSearchCate[0]) && isset($excuteSearchCate[0]['gr_cate']) && $excuteSearchCate[0]['gr_cate'] != '' && $excuteSearchCate[0]['gr_cate'] != NULL ){ $gr_cate = explode(',', $excuteSearchCate[0]['gr_cate']); } // search tag $searchCate = "SELECT GROUP_CONCAT(".$lumise->db->prefix."tags_reference.item_id) AS gr_tag FROM ".$lumise->db->prefix."tags_reference INNER JOIN ".$lumise->db->prefix."tags ON ".$lumise->db->prefix."tags_reference.tag_id = ".$lumise->db->prefix."tags.id WHERE ".$lumise->db->prefix."tags.name LIKE '%s' AND ".$lumise->db->prefix."tags_reference.type = '".$typeSearch."' "; $querySearchCate = sprintf($searchCate, $lumise->lib->sql_esc($nameSearch)); $excuteSearchCate = $lumise->db->rawQuery($querySearchCate); if(isset($excuteSearchCate[0]) && isset($excuteSearchCate[0]['gr_tag']) && $excuteSearchCate[0]['gr_tag'] != '' && $excuteSearchCate[0]['gr_tag'] != NULL ){ $gr_tag = explode(',', $excuteSearchCate[0]['gr_tag']); } foreach ($gr_cate as $index => $detailID) { if(!in_array($detailID, $listFilter)){ $listFilter[] = $detailID; } } foreach ($gr_tag as $index => $detailID) { if(!in_array($detailID, $listFilter)){ $listFilter[] = $detailID; } } if(!empty($listFilter)){ $table = $tableDefault; if(isset($table1)){ $table = $table1; } $queryFilter.= ' OR '.$table.'.id IN('.implode(',', $listFilter).') AND '; } else { $queryFilter.= ' AND '; } } if(isset($filter['limit']) && $filter['limit']){ $limit = $filter['limit']; } if(isset($filter['c_page']) && $filter['c_page']){ $c_page = $filter['c_page']; } // get list $query = sprintf( "SELECT ".$defaultSelect." FROM ".$tableDefault." ".$queryFilter." active=1 LIMIT ".$c_page*$limit.",".$limit, $lumise->lib->sql_esc($nameSearch) ); // var_dump($lumise->cfg); // die(); // var_dump($query); // die(); $showData = $lumise->db->rawQuery($query); // make data foreach ($showData as $indexShowData => $valueShowData) { $listofData['list'][] = $valueShowData; } // count total if(isset($table1)){ $query = sprintf( "SELECT COUNT(".$table1.".id) as total FROM ".$tableDefault." ".$queryFilter." active=1 ", $lumise->lib->sql_esc($nameSearch) ); // var_dump($query); $showData = $lumise->db->rawQuery($query); } else { $query = sprintf( "SELECT COUNT(id) as total FROM ".$tableDefault." ".$queryFilter." active=1 ", $lumise->lib->sql_esc($nameSearch) ); // var_dump($query); $showData = $lumise->db->rawQuery($query); } $listofData['count_page'] = 0; $listofData['cpage'] = $c_page; if(isset($showData[0]['total'])){ $listofData['count_page'] = floor((intval($showData[0]['total'])-1)/$limit); } // var_dump($showData[0]['total']); // var_dump($limit); // var_dump(intval($showData[0]['total'])/$limit);die(); $design_editor_url = ''; if(strpos($lumise->cfg->tool_url, '?') !== false && substr($lumise->cfg->tool_url, -1) == '?'){ $design_editor_url = $lumise->cfg->tool_url; } if(strpos($lumise->cfg->tool_url, '?') !== false && substr($lumise->cfg->tool_url, -1) != '?'){ $design_editor_url = $lumise->cfg->tool_url.'&'; } if(strpos($lumise->cfg->tool_url, '?') === false ){ $design_editor_url = $lumise->cfg->tool_url.'?'; } $listofData['design_editor_url'] = $design_editor_url; return $listofData; } public function getListOfCategoriesTemplateClipart(){ global $lumise; $listofData = array(); // get list of clipart $query = sprintf( "SELECT id, name, parent, type FROM `%s` WHERE active=1", $lumise->lib->sql_esc($lumise->db->prefix."categories") ); $categories = $lumise->db->rawQuery($query); // make data foreach ($categories as $indexCategories => $valueCategories) { $listofData[] = $valueCategories; } return $listofData; } public function date_compare($a, $b){ $t1 = strtotime($a['created']); $t2 = strtotime($b['created']); return $t1 - $t2; } public function filterData($filter = array(), $filtertype = ''){ $filterReturn = array(); foreach ($filter as $index => $detailFilter) { if(intval($detailFilter['parent']) == 0 && $detailFilter['type'] == $filtertype){ $filterReturn[] = $detailFilter; } } foreach ($filterReturn as $key => $detailValue) { if($detailValue['type'] == $filtertype){ $filterReturn[$key] = $this->dequytree($filter, $detailValue, $filtertype); } } return $filterReturn; } public function dequytree($filter, $parent, $filtertype){ foreach ($filter as $index => $detailFilter) { if(intval($detailFilter['parent']) == intval($parent['id']) && $detailFilter['type'] == $filtertype){ $detailFilter = $this->dequytree($filter, $detailFilter, $filtertype); $parent['child'][] = $detailFilter; } } // no child return $parent; } public function editor_file(){ global $lumise; if(!$this->is_backend()){ echo '<script type="text/javascript"> var lumiseAddonDesign = { loading_gif : "'.$this->get_url('assets/images/loading.gif').'" }; var LumiseDesign = { url : "'.htmlspecialchars_decode($lumise->cfg->url).'", admin_url : "'.htmlspecialchars_decode($lumise->cfg->admin_url).'", ajax : "'.htmlspecialchars_decode($lumise->cfg->admin_ajax_url).'", assets : "'.$lumise->cfg->assets_url.'", jquery : "'.$lumise->cfg->load_jquery.'", nonce : "'.lumise_secure::create_nonce("LUMISE_ADMIN").'", filter_ajax: function(ops) { return ops; } };</script>'; } // add css if ( !$this->is_backend() && $lumise->connector->platform == 'woocommerce') { wp_enqueue_style( 'lumise-addon-template-clipart-base', $this->get_url('assets/css/base.css?ver=1'), false, '1.0', 'all'); wp_enqueue_style( 'lumise-addon-template-clipart-style', $this->get_url('assets/css/style.css?ver=1'), false, '1.0', 'all'); } if ( !$this->is_backend() && $lumise->connector->platform == 'php') { echo '<link rel="stylesheet" href="'.$this->get_url('assets/css/base.css?ver=1').'">'; echo '<link rel="stylesheet" href="'.$this->get_url('assets/css/style.css?ver=1').'">'; } // add js if(!$this->is_backend() && $lumise->connector->platform == 'woocommerce'){ wp_enqueue_script( 'lumise_addon_shortcode_template_clipart_js', $this->get_url('assets/js/script.js?ver=1') ); // wp_localize_script( 'lumise_addon_shortcode_template_clipart_js', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'loading_gif' => $this->get_url('assets/images/loading.gif') ) ); } if(!$this->is_backend() && $lumise->connector->platform == 'php'){ echo '<script type="text/javascript" src="'.$this->get_url('assets/js/script.js?ver=1').'"></script>'; } } /* Actions on active or deactive this addon */ static function active() { global $lumise; } static function deactive() { global $lumise; } } Código php lumise addon display templates and cliparts.txt
  11. @darkstrikerd ter acesso ao php do diretório do plugin não resolve? No mais, obrigado pela ajuda!
  12. Bom dia senhores! Estou desenvolvendo um site de adesivos de cartões e estou utilizando o plugin "Lumise" para o cliente personalizar o produto da forma que preferir. Eu fiz upload de várias estampas que o Lumise entende como "Templates", então o cliente escolhe um template para personalizar e faz a compra. Existe um Addon do Lumise que se chama "Addons for Bundle", "Display Template Clipart" que comprei, onde consigo fazer uma página personalizada com todas as categorias dos templates. O problema é que eles só me dão uma única linha de código, [lumise_template_clipart_list per_page="30" left_column="true" columns="4" search="true"] , mostrando todos os templates de todas as categorias de uma vez. Preciso de ajuda pra descobrir algum outro código onde eu separo esses templates por categoria. Quando o cliente clica em um desses templates, é redirecionado para a página de personalização. O site é joygrafica.com.br. Serei grato pela ajuda. Obrigado!
  13. Boa noite senhores! Estou criando um produto personalizável e já conheço um plugin chamado Lumise, porém ele não me atenderia muito. Pretendo vender vários tipos de produtos personalizáveis, sendo que cada um tem sua grade de estampas diferente. Eu preciso de algo em que o cliente possa achar a estampa adequada que ele goste, dos Vingadores por exemplo, e que tenha duas opções, "Comprar" pra receber daquele jeito ou "Personalizar" pra que ele adicione outras opções em cima da estampa já pronta. E que quando clique em personalizar, ele seja direcionado já na estampa.
  14. @Alex Temnyk Acabei de achar um programa que faz exatamente isso, se chama Mouse Recorder Pro. Como ´são apenas cliques com mouse, ele atende fácil. Primeiro gravo o movimento e clique no mouse uma vez e configuro pra que esse movimento seja repetido n vezes, até mesmo infinitamente. Tem inclusive um editor dos movimentos e acelerador dos movimentos.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...