Jump to content

razaro

Global Moderators
  • Posts

    2,524
  • Joined

  • Last visited

  • Days Won

    20

Everything posted by razaro

  1. If you think on Stock, More info.. tabs then depends on theme you are using that may be already included. Even if not it is easy to add tab in code. There are modules for that too
  2. Hi and welcome to the forum. That looks like something this module could help with https://addons.prestashop.com/en/combinaisons-customization/26032-attribute-grid.html#overview There could be other "attribute / combination grid " modules but Presto-Changeo have always have great code and support.
  3. Hi Ivka And welcome to the forum, after 4 months. Generally when you do not get replay soon enough, you should think if you may need to add more information to your post. For example you did not mention theme you are using? Also link to your site could be useful so we could check if there is maybe some JavaScript errors that is blocking change in image. Also if you are using paid theme or even free you can contact theme developers for help. as that feature should be working in every theme.
  4. Hi and welcome to the forum To change that you need to make some CSS changes. First on line 13367 change/add two lines so it looks like #home-page-tabs{ padding-bottom: 10px; margin: 20px auto 10px; width: 100%; display: flex; } and also line 13939 change to .tabs .nav-tabs .nav-link { padding: 6px; font-size: 16px; } Save file, clear PrestaShop cache and it should make them horizontal.
  5. Hi Liam Welcome to the forum. For Chrome inspector you just make changes temporarily in browser. Like you saw they got lost after a refresh and they are visible just for you. But it is great help to quickly style/fix things and then use same code in your PrestaShop files. Most of the times you will have to make changes to theme .css files (themes/classic/assets/css/custom.css) or in some cases to modules css files. You can do that from your hosting file manager but it is better to use some text editor ( DreamWeaver, Visual Studio Code, Sublime...) To get files from server you can use Fillezilla or some editors have integrated way to connect to your server. Check few links and search forum/Google for specific parts. OLD but you can check or find newer
  6. In this topic you did not share your store link. And you did not give any other info, like your PrestaShop version, what Stipe module you have... But yes, open browser console, go to checkout and see error. OK just saw your error, and like message say UK is not in list of countries. Bit strange think Stripe is available in UK. Not sure if that GB is for Great Britain. But you should contact module developers with error you have.
  7. Check https://documentation.concretecms.org/tutorials/how-open-browser-console-view-errors To open browser console and see any possible error. Also do share your store link.
  8. Hi and welcome to the forum. If you can not access back-office you could try to manually change back language in database. Check your hosting and there should be some section with databases, most likely phpMyAdmin. Open table you use for PrestaShop, find table ps_employee (ps_ is default prefix). In that table you have probably just few records so look for id_lang column in row with your record. Change value to 1 probably, if you had just Romanian. Or if currently it is 1 then that is English and Romanian is 2 or 3.
  9. Hi and welcome to the forum. What you describe is basic use of modules in PrestaShop. Some content you add to in back office is saved. Then depending on code and "hooks" chosen, you can display it at front-end. Check documentation on https://devdocs.prestashop.com/1.7/modules/ but also study how some of included free modules are coded and working.
  10. So have you tried with literal ? And can you share code you need to add? Without any personal data.
  11. Have you tried <script> {literal} // your code here {/literal} </script>
  12. Sorry for that, link in first post is also for 1.6 though it does not say it. In 1.7 code is moved to contactform module.
  13. Not tested on 1.7 but most likely it does not work. So just for 1.6. It is override of ContactController.php and like tutorial you linked it should be placed in override/controllers/front .
  14. Try with this, similar override but bit different options. Can block messages that contain Chinese, Russian and from list of temporal or spam emails. It is for 1.6 version of PrestaShop, and you can add to long list of domains. Or can combine with solution from link in first post and from @endriu107 <?php class ContactController extends ContactControllerCore { public function postProcess() { if (Tools::isSubmit('submitMessage')) { $extension = array('.txt', '.rtf', '.doc', '.docx', '.pdf', '.zip', '.png', '.jpeg', '.gif', '.jpg'); $file_attachment = Tools::fileAttachment('fileUpload'); $message = Tools::getValue('message'); // Html entities is not usefull, iscleanHtml check there is no bad html tags. /* Check if language is Chinese or Russian or it comes from spam domain */ if (preg_match("/\p{Han}+/u", $message)) { $this->errors[] = Tools::displayError('Invalid message'); return; } if (preg_match("/\p{Hangul}+/u", $message)) { $this->errors[] = Tools::displayError('Invalid message'); return; } if ($this->isRussian($message)) { $this->errors[] = Tools::displayError('Invalid message'); return; } if ($this->isBadDomain(trim(Tools::getValue('from')))) { $this->errors[] = Tools::displayError('Invalid message'); return; } /* end */ if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from)) { $this->errors[] = Tools::displayError('Invalid email address.'); } elseif (!$message) { $this->errors[] = Tools::displayError('The message cannot be blank.'); } elseif (!Validate::isCleanHtml($message)) { $this->errors[] = Tools::displayError('Invalid message'); } elseif (!($id_contact = (int)Tools::getValue('id_contact')) || !(Validate::isLoadedObject($contact = new Contact($id_contact, $this->context->language->id)))) { $this->errors[] = Tools::displayError('Please select a subject from the list provided. '); } elseif (!empty($file_attachment['name']) && $file_attachment['error'] != 0) { $this->errors[] = Tools::displayError('An error occurred during the file-upload process.'); } elseif (!empty($file_attachment['name']) && !in_array(Tools::strtolower(substr($file_attachment['name'], -4)), $extension) && !in_array(Tools::strtolower(substr($file_attachment['name'], -5)), $extension)) { $this->errors[] = Tools::displayError('Bad file extension'); } else { $customer = $this->context->customer; if (!$customer->id) { $customer->getByEmail($from); } $id_order = (int)$this->getOrder(); if (!(( ($id_customer_thread = (int)Tools::getValue('id_customer_thread')) && (int)Db::getInstance()->getValue(' SELECT cm.id_customer_thread FROM '._DB_PREFIX_.'customer_thread cm WHERE cm.id_customer_thread = '.(int)$id_customer_thread.' AND cm.id_shop = '.(int)$this->context->shop->id.' AND token = \''.pSQL(Tools::getValue('token')).'\'') ) || ( $id_customer_thread = CustomerThread::getIdCustomerThreadByEmailAndIdOrder($from, $id_order) ))) { $fields = Db::getInstance()->executeS(' SELECT cm.id_customer_thread, cm.id_contact, cm.id_customer, cm.id_order, cm.id_product, cm.email FROM '._DB_PREFIX_.'customer_thread cm WHERE email = \''.pSQL($from).'\' AND cm.id_shop = '.(int)$this->context->shop->id.' AND ('. ($customer->id ? 'id_customer = '.(int)$customer->id.' OR ' : '').' id_order = '.(int)$id_order.')'); $score = 0; foreach ($fields as $key => $row) { $tmp = 0; if ((int)$row['id_customer'] && $row['id_customer'] != $customer->id && $row['email'] != $from) { continue; } if ($row['id_order'] != 0 && $id_order != $row['id_order']) { continue; } if ($row['email'] == $from) { $tmp += 4; } if ($row['id_contact'] == $id_contact) { $tmp++; } if (Tools::getValue('id_product') != 0 && $row['id_product'] == Tools::getValue('id_product')) { $tmp += 2; } if ($tmp >= 5 && $tmp >= $score) { $score = $tmp; $id_customer_thread = $row['id_customer_thread']; } } } $old_message = Db::getInstance()->getValue(' SELECT cm.message FROM '._DB_PREFIX_.'customer_message cm LEFT JOIN '._DB_PREFIX_.'customer_thread cc on (cm.id_customer_thread = cc.id_customer_thread) WHERE cc.id_customer_thread = '.(int)$id_customer_thread.' AND cc.id_shop = '.(int)$this->context->shop->id.' ORDER BY cm.date_add DESC'); if ($old_message == $message) { $this->context->smarty->assign('alreadySent', 1); $contact->email = ''; $contact->customer_service = 0; } if ($contact->customer_service) { if ((int)$id_customer_thread) { $ct = new CustomerThread($id_customer_thread); $ct->status = 'open'; $ct->id_lang = (int)$this->context->language->id; $ct->id_contact = (int)$id_contact; $ct->id_order = (int)$id_order; if ($id_product = (int)Tools::getValue('id_product')) { $ct->id_product = $id_product; } $ct->update(); } else { $ct = new CustomerThread(); if (isset($customer->id)) { $ct->id_customer = (int)$customer->id; } $ct->id_shop = (int)$this->context->shop->id; $ct->id_order = (int)$id_order; if ($id_product = (int)Tools::getValue('id_product')) { $ct->id_product = $id_product; } $ct->id_contact = (int)$id_contact; $ct->id_lang = (int)$this->context->language->id; $ct->email = $from; $ct->status = 'open'; $ct->token = Tools::passwdGen(12); $ct->add(); } if ($ct->id) { $cm = new CustomerMessage(); $cm->id_customer_thread = $ct->id; $cm->message = $message; if (isset($file_attachment['rename']) && !empty($file_attachment['rename']) && rename($file_attachment['tmp_name'], _PS_UPLOAD_DIR_.basename($file_attachment['rename']))) { $cm->file_name = $file_attachment['rename']; @chmod(_PS_UPLOAD_DIR_.basename($file_attachment['rename']), 0664); } $cm->ip_address = (int)ip2long(Tools::getRemoteAddr()); $cm->user_agent = $_SERVER['HTTP_USER_AGENT']; if (!$cm->add()) { $this->errors[] = Tools::displayError('An error occurred while sending the message.'); } } else { $this->errors[] = Tools::displayError('An error occurred while sending the message.'); } } if (!count($this->errors)) { $var_list = array( '{order_name}' => '-', '{attached_file}' => '-', '{message}' => Tools::nl2br(stripslashes($message)), '{email}' => $from, '{product_name}' => '', ); if (isset($file_attachment['name'])) { $var_list['{attached_file}'] = $file_attachment['name']; } $id_product = (int)Tools::getValue('id_product'); if (isset($ct) && Validate::isLoadedObject($ct) && $ct->id_order) { $order = new Order((int)$ct->id_order); $var_list['{order_name}'] = $order->getUniqReference(); $var_list['{id_order}'] = (int)$order->id; } if ($id_product) { $product = new Product((int)$id_product); if (Validate::isLoadedObject($product) && isset($product->name[Context::getContext()->language->id])) { $var_list['{product_name}'] = $product->name[Context::getContext()->language->id]; } } if (empty($contact->email)) { Mail::Send($this->context->language->id, 'contact_form', ((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail::l('Your message has been correctly sent')), $var_list, $from, null, null, null, $file_attachment); } else { if (!Mail::Send($this->context->language->id, 'contact', Mail::l('Message from contact form').' [no_sync]', $var_list, $contact->email, $contact->name, null, null, $file_attachment, null, _PS_MAIL_DIR_, false, null, null, $from) || !Mail::Send($this->context->language->id, 'contact_form', ((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail::l('Your message has been correctly sent')), $var_list, $from, null, null, null, $file_attachment, null, _PS_MAIL_DIR_, false, null, null, $contact->email)) { $this->errors[] = Tools::displayError('An error occurred while sending the message.'); } } } if (count($this->errors) > 1) { array_unique($this->errors); } elseif (!count($this->errors)) { $this->context->smarty->assign('confirmation', 1); } } } } public function isRussian($text) { return preg_match('/[А-Яа-яЁё]/u', $text); } public function isBadDomain($user_email) { $dea_array = array ( '0-mail.com', '001.igg.biz', '027168.com', '0815.ru', '0815.su', '0clickemail.com', '0wnd.net', '0wnd.org', '0x00.name', '1-8.biz', '1.emailfake.ml', '1000rebates.stream', '10host.top', '10mail.org', '10minut.com.pl', '10minutemail.cf', '10minutemail.co.uk', '10minutemail.co.za', '10minutemail.com', '10minutemail.de', '10minutemail.ga', '10minutemail.gq', '10minutemail.ml', '10minutemail.net', '10minutemail.us', '10minutenemail.de', '117.yyolf.net', '11top.xyz', '123-m.com', '12hosting.net', '12minutemail.com', '12storage.com', '14n.co.uk', '1ce.us', '1chuan.com', '1clck2.com', '1fsdfdsfsdf.tk', '1mail.ml', '1pad.de', '1rentcar.top', '1ss.noip.me', '1up.orangotango.gq', '1usemail.com', '1zhuan.com', '2-ch.space', '2000rebates.stream', '2014mail.ru', '20email.eu', '20mail.eu', '20mail.in', '20mail.it', '20minute.email', '20minutemail.com', '2120001.net', '21cn.com', '24hourmail.com', '291.usa.cc', '2ch.coms.hk', '2fdgdfgdfgdf.tk', '2prong.com', '2sea.xyz', '3.emailfake.ml', '3.fackme.gq', '30minutemail.com', '30wave.com', '33mail.com', '3d-painting.com', '3ew.usa.cc', '3l6.com', '3mail.ga', '3trtretgfrfe.tk', '4-n.us', '487.nut.cc', '4gfdsgfdgfd.tk', '4mail.cf', '4mail.ga', '4tb.host', '4w.io', '4warding.com', '4warding.net', '4warding.org', '5.fackme.gq', '54np.club', '5ghgfhfghfgh.tk', '5gramos.com', '5july.org', '5mail.cf', '5mail.ga', '5music.info', '5music.top', '6.emailfake.ml', '6.fackme.gq', '60minutemail.com', '675hosting.com', '675hosting.net', '675hosting.org', '69-ew.tk', '6hjgjhgkilkj.tk', '6ip.us', '6mail.cf', '6mail.ga', '6mail.ml', '6paq.com', '6url.com', '7.fackme.gq', '75hosting.com', '75hosting.net', '75hosting.org', '7days-printing.com', '7ddf32e.info', '7mail.ga', '7mail.ml', '7rent.top', '7tags.com', '7uy35p.tk', '8.fackme.gq', '806.flu.cc', '80665.com', '88clean.pro', '8mail.cf', '8mail.ga', '8mail.ml', '99experts.com', '9mail.cf', '9me.site', '9ox.net', 'a-bc.net', 'a.betr.co', 'a.sach.ir', 'a.wxnw.net', 'a0f7ukc.com', 'a41odgz7jh.com', 'a45.in', 'a54pd15op.com', 'aaaw45e.com', 'abusemail.de', 'abyssemail.com', 'abyssmail.com', 'ac20mail.in', 'academiccommunity.com', 'acentri.com', 'adbet.co', 'add3000.pp.ua', 'adesktop.com', 'adobeccepdm.com', 'adrianou.gq', 'advantimo.com', 'adwaterandstir.com', 'adx-telecom.com', 'aegia.net', 'aeonpsi.com', 'afrobacon.com', 'ag.us.to', 'agedmail.com', 'agustusmp3.xyz', 'ahk.jp', 'aistis.xyz', 'ajaxapp.net', 'akademiyauspexa.xyz', 'akorde.al', 'al-qaeda.us', 'aldeyaa.ae', 'aligamel.com', 'alimunjaya.xyz', 'alisongamel.com', 'alivance.com', 'allthegoodnamesaretaken.org', 'alph.wtf', 'alsheim.no-ip.org', 'alumnimp3.xyz', 'ama-trade.de', 'amail.com', 'amazon-aws.org', 'amilegit.com', 'amiri.net', 'amiriindustries.com', 'amoksystems.com', 'ampsylike.com', 'an.id.au', 'anappthat.com', 'andthen.us', 'animesos.com', 'ano-mail.net', 'anon.leemail.me', 'anonbox.net', 'anonmails.de', 'anonymail.dk', 'anonymbox.com', 'anonymize.com', 'anotherdomaincyka.tk', 'ansibleemail.com', 'anthony-junkmail.com', 'anthropologycommunity.com', 'antichef.com', 'antichef.net', 'antireg.ru', 'antispam.de', 'antispammail.de', 'antonelli.usa.cc', 'apkmd.com', 'appinventor.nl', 'appixie.com', 'armyspy.com', 'aron.us', 'art-en-ligne.pro', 'artman-conception.com', 'arur01.tk', 'arurgitu.gq', 'arurimport.ml', 'asdasd.nl', 'asdfghmail.com', 'ass.pp.ua', 'asspoo.com', 'assurancespourmoi.eu', 'astroempires.info', 'augmentationtechnology.com', 'autorobotica.com', 'aver.com', 'avia-tonic.fr', 'azazazatashkent.tk', 'azjuggalos.com', 'azmeil.tk', 'b.reed.to', 'b9x45v1m.com', 'babau.cf', 'babau.flu.cc', 'babau.ga', 'babau.gq', 'babau.igg.biz', 'babau.ml', 'babau.nut.cc', 'babau.usa.cc', 'backalleybowling.info', 'badgerland.eu', 'badhus.org', 'ballsofsteel.net', 'bandai.nom.co', 'bareed.ws', 'barryogorman.com', 'barrypov.com', 'barryspov.com', 'bartoparcadecabinet.com', 'baxomale.ht.cx', 'bccto.me', 'bdmuzic.pw', 'beck-it.net', 'beddly.com', 'beefmilk.com', 'belastingdienst.pw', 'bho.hu', 'big1.us', 'bigprofessor.so', 'bigstring.com', 'bigwiki.xyz', 'bin.8191.at', 'binka.me', 'binkmail.com', 'bio-muesli.net', 'biometicsliquidvitamins.com', 'bione.co', 'bitwerke.com', 'bladesmail.net', 'blip.ch', 'blogmyway.org', 'bloxter.cu.cc', 'bluedumpling.info', 'bluewerks.com', 'blutig.me', 'boatmail.us', 'bobmail.info', 'bodhi.lawlita.com', 'bofthew.com', 'bogotadc.info', 'bongobongo.cf', 'bongobongo.flu.cc', 'bongobongo.ga', 'bongobongo.igg.biz', 'bongobongo.ml', 'bongobongo.nut.cc', 'bongobongo.tk', 'bongobongo.usa.cc', 'bonobo.email', 'bookthemmore.com', 'bootybay.de', 'boun.cr', 'bouncr.com', 'boxformail.in', 'boximail.com', 'boxtemp.com.br', 'breadtimes.press', 'breakthru.com', 'brefmail.com', 'brennendesreich.de', 'broadbandninja.com', 'bsnow.net', 'bspamfree.org', 'bspooky.com', 'bst-72.com', 'btcmail.pw', 'bu.mintemail.com', 'buffemail.com', 'bugmenot.com', 'bugmenot.ml', 'bum.net', 'bumpymail.com', 'bunchofidiots.com', 'bund.us', 'bundes-li.ga', 'bungabunga.cf', 'bunsenhoneydew.com', 'burnthespam.info', 'burstmail.info', 'businesscredit.xyz', 'buxap.com', 'buygapfashion.com', 'buymoreplays.com', 'buyordie.info', 'buyusedlibrarybooks.org', 'bwa33.net', 'by8006l.com', 'byebyemail.com', 'byespm.com', 'byom.de', 'c.andreihusanu.ro', 'c.hcac.net', 'c.kadag.ir', 'c.theplug.org', 'c.wlist.ro', 'c2.hu', 'c51vsgq.com', 'cachedot.net', 'cafecar.xyz', 'car101.pro', 'card.zp.ua', 'carrnelpartners.com', 'cartelera.org', 'caseedu.tk', 'casualdx.com', 'cbair.com', 'cd.mintemail.com', 'ce.mintemail.com', 'cek.pm', 'cellurl.com', 'centermail.com', 'centermail.net', 'central-servers.xyz', 'centrallosana.ga', 'cetpass.com', 'chacuo.net', 'chammy.info', 'cheaphorde.com', 'cheaphub.net', 'cheatmail.de', 'chechnya.conf.work', 'chef.asana.biz', 'chielo.com', 'childsavetrust.org', 'chilelinks.cl', 'chinatov.com', 'choco.la', 'chogmail.com', 'choicemail1.com', 'chong-mail.com', 'chong-mail.net', 'chong-mail.org', 'chris.burgercentral.us', 'christopherfretz.com', 'cigar-auctions.com', 'civilizationdesign.xyz', 'ckaazaza.tk', 'cl.gl', 'clandest.in', 'clay.xyz', 'clinicatbf.com', 'clipmail.eu', 'clixser.com', 'cloud99.pro', 'cloud99.top', 'clrmail.com', 'cls-audio.club', 'clubfier.com', 'cmail.com', 'cmail.net', 'cmail.org', 'cnamed.com', 'cnn.coms.hk', 'cobarekyo1.ml', 'cocodani.cf', 'codeandscotch.com', 'cognitiveways.xyz', 'coldemail.info', 'colorweb.cf', 'communitybuildingworks.xyz', 'comwest.de', 'consumerriot.com', 'contentwanted.com', 'contrasto.cu.cc', 'cool.fr.nf', 'coolandwacky.us', 'coolimpool.org', 'correo.blogos.net', 'cortex.kicks-ass.net', 'cosmorph.com', 'courriel.fr.nf', 'courrieltemporaire.com', 'cr97mt49.com', 'crankhole.com', 'crankmails.com', 'crapmail.org', 'crastination.de', 'crazespaces.pw', 'crazymailing.com', 'cream.pink', 'crossroadsmail.com', 'crotslep.ml', 'crotslep.tk', 'cubiclink.com', 'cultmovie.com', 'curryworld.de', 'cust.in', 'cutout.club', 'cuvox.de', 'cx.de-a.org', 'cyber-innovation.club', 'cyber-phone.eu', 'cybersex.com', 'czqjii8.com', 'd3p.dk', 'd58pb91.com', 'd8u.us', 'dacoolest.com', 'daemsteam.com', 'daintly.com', 'dammexe.net', 'dancemanual.com', 'dandikmail.com', 'darkharvestfilms.com', 'darknode.org', 'dasdasdascyka.tk', 'dash-pads.com', 'dataarca.com', 'datarca.com', 'datazo.ca', 'davidkoh.net', 'dayrep.com', 'dbunker.com', 'dcemail.com', 'deadaddress.com', 'deadchildren.org', 'deadfake.cf', 'deadfake.ga', 'deadfake.ml', 'deadfake.tk', 'deadspam.com', 'deagot.com', 'dealja.com', 'deekayen.us', 'defomail.com', 'degradedfun.net', 'delikkt.de', 'derder.net', 'despam.it', 'despammed.com', 'dev-null.cf', 'dev-null.ga', 'dev-null.gq', 'dev-null.ml', 'devnullmail.com', 'dff55.dynu.net', 'dfg6.kozow.com', 'dfgh.net', 'dfghj.ml', 'dharmatel.net', 'diapaulpainting.com', 'digdown.xyz', 'digitalmariachis.com', 'digitalsanctuary.com', 'dingbone.com', 'dinkmail.com', 'disaq.com', 'disario.info', 'discard-email.cf', 'discard.cf', 'discard.email', 'discard.ga', 'discard.gq', 'discard.ml', 'discard.tk', 'discardmail.com', 'discardmail.de', 'disign-concept.eu', 'disign-revelation.com', 'dispo.in', 'dispomail.eu', 'disposable-email.ml', 'disposable.cf', 'disposable.ga', 'disposable.ml', 'disposableaddress.com', 'disposableemailaddresses.com', 'disposableemailaddresses.emailmiser.com', 'disposableinbox.com', 'disposablemails.com', 'dispose.it', 'disposeamail.com', 'disposemail.com', 'dispostable.com', 'divermail.com', 'divismail.ru', 'dlemail.ru', 'dm.w3internet.co.uk', 'dm.w3internet.co.ukexample.com', 'dmarc.ro', 'doanart.com', 'dodgeit.com', 'dodgit.com', 'dodgit.org', 'dodsi.com', 'doiea.com', 'dolphinnet.net', 'domforfb1.tk', 'domforfb2.tk', 'domforfb3.tk', 'domforfb4.tk', 'domforfb5.tk', 'domforfb6.tk', 'domforfb7.tk', 'domforfb8.tk', 'domforfb9.tk', 'domozmail.com', 'donemail.ru', 'dontreg.com', 'dontsendmespam.de', 'doquier.tk', 'dot-ml.ml', 'dot-ml.tk', 'dotmsg.com', 'dotslashrage.com', 'douchelounge.com', 'doxcity.net', 'dqkerui.com', 'dr69.site', 'dragons-spirit.org', 'drdrb.com', 'drdrb.net', 'drivetagdev.com', 'droplar.com', 'dropmail.me', 'drynic.com', 'dspwebservices.com', 'dt.com', 'duam.net', 'dudmail.com', 'dukedish.com', 'dump-email.info', 'dumpandjunk.com', 'dumpmail.de', 'dumpyemail.com', 'duskmail.com', 'dw.now.im', 'dwse.edu.pl', 'dx.abuser.eu', 'dx.allowed.org', 'dx.awiki.org', 'dx.ez.lv', 'dx.sly.io', 'e-mail.com', 'e-mail.org', 'e.4pet.ro', 'e.amav.ro', 'e.arno.fi', 'e.blogspam.ro', 'e.discard-email.cf', 'e.l5.ca', 'e.milavitsaromania.ro', 'e.nodie.cc', 'e.shapoo.ch', 'e.wupics.com', 'e0yk-mail.ml', 'e4ward.com', 'e7n06wz.com', 'eastwan.net', 'easytrashmail.com', 'eatrnet.com', 'eb609s25w.com', 'eco.ilmale.it', 'ecolo-online.fr', 'edrishn.xyz', 'ee2.pl', 'eelmail.com', 'einmalmail.de', 'einrot.com', 'einrot.de', 'eintagsmail.de', 'email-fake.cf', 'email-fake.ga', 'email-fake.gq', 'email-fake.ml', 'email-fake.tk', 'email.cbes.net', 'email60.com', 'emailage.cf', 'emailage.ga', 'emailage.gq', 'emailage.ml', 'emailage.tk', 'emaildienst.de', 'emailfake.ml', 'emailgo.de', 'emailias.com', 'emailigo.de', 'emailinfive.com', 'emailisvalid.com', 'emaillime.com', 'emailmenow.info', 'emailmiser.com', 'emailproxsy.com', 'emails.ga', 'emailsensei.com', 'emailsingularity.net', 'emailspam.cf', 'emailspam.ga', 'emailspam.gq', 'emailspam.ml', 'emailspam.tk', 'emailtea.com', 'emailtemporanea.com', 'emailtemporanea.net', 'emailtemporar.ro', 'emailtemporario.com.br', 'emailthe.net', 'emailtmp.com', 'emailto.de', 'emailwarden.com', 'emailx.at.hm', 'emailxfer.com', 'emailz.cf', 'emailz.ga', 'emailz.gq', 'emailz.ml', 'emeil.in', 'emeil.ir', 'emil.com', 'emkei.cf', 'emkei.ga', 'emkei.gq', 'emkei.ml', 'emkei.tk', 'eml.pp.ua', 'emltmp.com', 'emz.net', 'enterto.com', 'eonmech.com', 'ephemail.net', 'eqiluxspam.ga', 'erasf.com', 'ero-tube.org', 'ese.kr', 'est.une.victime.ninja', 'estate-invest.fr', 'etgdev.de', 'etranquil.com', 'etranquil.net', 'etranquil.org', 'eu.igg.biz', 'everytg.ml', 'evopo.com', 'evyush.com', 'exitstageleft.net', 'explodemail.com', 'express.net.ua', 'extremail.ru', 'eyepaste.com', 'ezfill.club', 'ezlo.co', 'ezstest.com', 'f4k.es', 'f5.si', 'facebook-email.cf', 'facebook-email.ga', 'facebook-email.ml', 'facebookmail.gq', 'facebookmail.ml', 'failbone.com', 'faithkills.org', 'fake-box.com', 'fake-email.pp.ua', 'fake-mail.cf', 'fake-mail.ga', 'fake-mail.ml', 'fake.i-3gk.cf', 'fake.i-3gk.ga', 'fake.i-3gk.gq', 'fake.i-3gk.ml', 'fakeinbox.cf', 'fakeinbox.com', 'fakeinbox.ga', 'fakeinbox.info', 'fakeinbox.ml', 'fakeinbox.tk', 'fakeinformation.com', 'fakemail.fr', 'fakemailgenerator.com', 'fakemailz.com', 'fammix.com', 'fangoh.com', 'fansworldwide.de', 'fantasymail.de', 'fartwallet.com', 'fast-mail.fr', 'fastacura.com', 'fastchevy.com', 'fastchrysler.com', 'fastemails.us', 'fastkawasaki.com', 'fastmazda.com', 'fastmitsubishi.com', 'fastnissan.com', 'fastsubaru.com', 'fastsuzuki.com', 'fasttoyota.com', 'fastyamaha.com', 'fatflap.com', 'faze.biz', 'fbi.coms.hk', 'fbmail1.ml', 'fc66998.com', 'fdfdsfds.com', 'fetchnet.co.uk', 'ficken.de', 'fightallspam.com', 'figjs.com', 'figshot.com', 'fiifke.de', 'filzmail.com', 'fingermouse.org', 'fishfortomorrow.xyz', 'fivemail.de', 'fixmail.tk', 'fizmail.com', 'flashbox.5july.org', 'fleckens.hu', 'flemail.ru', 'flowu.com', 'fls4.gleeze.com', 'flurred.com', 'flyinggeek.net', 'flyspam.com', 'foodbooto.com', 'footard.com', 'foquita.com', 'forecastertests.com', 'forgetmail.com', 'fornow.eu', 'forspam.net', 'forward.cat', 'fr33mail.info', 'fragolina2.tk', 'francanet.com.br', 'frapmail.com', 'frappina.tk', 'frappina99.tk', 'free-email.cf', 'free-email.ga', 'freebullets.net', 'freecat.net', 'freechristianbookstore.com', 'freefattymovies.com', 'freelance-france.eu', 'freemail.ms', 'freemail.tweakly.net', 'freemails.cf', 'freemails.ga', 'freemails.ml', 'freemeil.ga', 'freemeil.gq', 'freemeil.ml', 'freemommyvids.com', 'freeplumpervideos.com', 'freeschoolgirlvids.com', 'freeshemaledvds.com', 'freesistervids.com', 'freetubearchive.com', 'freundin.ru', 'friendlymail.co.uk', 'front14.org', 'fsagc.xyz', 'fuckedupload.com', 'fuckingduh.com', 'fudgerub.com', 'fulvie.com', 'fun2.biz', 'fun64.com', 'fun64.net', 'furusato.tokyo', 'furzauflunge.de', 'fuwamofu.com', 'fux0ringduh.com', 'fw.moza.pl', 'fyii.de', 'g.hmail.us', 'gafy.net', 'gamegregious.com', 'gamgling.com', 'gamno.config.work', 'garliclife.com', 'garrymccooey.com', 'gav0.com', 'gawab.com', 'gehensiemirnichtaufdensack.de', 'gelitik.in', 'genderfuck.net', 'gero.us', 'get-mail.cf', 'get-mail.ga', 'get-mail.ml', 'get-mail.tk', 'get.pp.ua', 'get1mail.com', 'get2mail.fr', 'getairmail.cf', 'getairmail.com', 'getairmail.ga', 'getairmail.gq', 'getairmail.ml', 'getairmail.tk', 'getmails.eu', 'getnada.com', 'getnowtoday.cf', 'getonemail.com', 'getonemail.net', 'ghosttexter.de', 'giantmail.de', 'gibit.us', 'gimesson.pe.hu', 'girlsundertheinfluence.com', 'gishpuppy.com', 'giuras.club', 'giuypaiw8.com', 'globaltouron.com', 'glubex.com', 'glucosegrin.com', 'gmial.com', 'go.irc.so', 'go2usa.info', 'godataflow.xyz', 'godut.com', 'goemailgo.com', 'goodjab.club', 'goooogle.flu.cc', 'goooogle.igg.biz', 'goooogle.nut.cc', 'goooogle.usa.cc', 'gorillaswithdirtyarmpits.com', 'gotmail.com', 'gotmail.net', 'gotmail.org', 'gotti.otherinbox.com', 'gowikibooks.com', 'gowikicampus.com', 'gowikicars.com', 'gowikifilms.com', 'gowikigames.com', 'gowikimusic.com', 'gowikimusic.great-host.in', 'gowikinetwork.com', 'gowikitravel.com', 'gowikitv.com', 'grandmamail.com', 'grandmasmail.com', 'great-host.in', 'greensloth.com', 'greenst.info', 'greggamel.net', 'gregorygamel.com', 'gregorygamel.net', 'greyjack.com', 'grr.la', 'gsrv.co.uk', 'guerillamail.biz', 'guerillamail.com', 'guerillamail.net', 'guerillamail.org', 'guerrillamail.biz', 'guerrillamail.com', 'guerrillamail.de', 'guerrillamail.info', 'guerrillamail.net', 'guerrillamail.org', 'guerrillamailblock.com', 'gustr.com', 'gwspt71.com', 'h.mintemail.com', 'h.thc.lv', 'h1z8ckvz.com', 'h2-yy.nut.cc', 'h8s.org', 'h9js8y6.com', 'habitue.net', 'hacccc.com', 'hackersquad.tk', 'hackrz.xyz', 'haltospam.com', 'happykorea.club', 'happykoreas.xyz', 'harakirimail.com', 'haribu.net', 'harmonyst.xyz', 'hartbot.de', 'hasanmail.ml', 'hash.pp.ua', 'hat-geld.de', 'hatespam.org', 'hdmoviestore.us', 'healyourself.xyz', 'heathenhero.com', 'hellodream.mobi', 'helloricky.com', 'herp.in', 'herpderp.nl', 'hezll.com', 'hiddencorner.xyz', 'hidemail.de', 'hidemail.pro', 'hidemail.us', 'hidzz.com', 'hmamail.com', 'hoanggiaanh.com', 'hochsitze.com', 'hoer.pw', 'holl.ga', 'hopemail.biz', 'hostcalls.com', 'hostmonitor.net', 'hot-mail.cf', 'hot-mail.ga', 'hot-mail.gq', 'hot-mail.ml', 'hot-mail.tk', 'hotpop.com', 'housat.com', 'hstermail.com', 'hukkmu.tk', 'hulapla.de', 'humn.ws.gy', 'hvtechnical.com', 'i.istii.ro', 'i.klipp.su', 'i.ryanb.com', 'i.wawi.es', 'i.xcode.ro', 'i201zzf8x.com', 'i2pmail.org', 'i4j0j3iz0.com', 'iaoss.com', 'icantbelieveineedtoexplainthisshit.com', 'icemovie.link', 'ichigo.me', 'ieatspam.eu', 'ieatspam.info', 'ieh-mail.de', 'ignoremail.com', 'ihateyoualot.info', 'ihaxyour.info', 'ihazspam.ca', 'iheartspam.org', 'ikbenspamvrij.nl', 'iku.us', 'illistnoise.com', 'ilnostrogrossograssomatrimoniomolisano.com', 'ilovespam.com', 'imails.info', 'imankul.com', 'imgof.com', 'imgv.de', 'immo-gerance.info', 'imovie.link', 'imstations.com', 'inaby.com', 'inapplicable.org', 'inbax.tk', 'inbound.plus', 'inbox.si', 'inboxalias.com', 'inboxbear.com', 'inboxclean.com', 'inboxclean.org', 'inboxproxy.com', 'inclusiveprogress.com', 'incognitomail.com', 'incognitomail.net', 'incognitomail.org', 'indonesianherbalmedicine.com', 'infest.org', 'info-radio.ml', 'infocom.zp.ua', 'inmynetwork.tk', 'inpowiki.xyz', 'insorg-mail.info', 'instant-mail.de', 'instantemailaddress.com', 'instantmail.fr', 'ip4.pp.ua', 'ip6.li', 'ip6.pp.ua', 'ipoo.org', 'ipswell.com', 'irabops.com', 'ircbox.xyz', 'irish2me.com', 'iroid.com', 'irssi.tv', 'isdaq.com', 'ispuntheweb.com', 'istakalisa.club', 'italia.flu.cc', 'italia.igg.biz', 'itmtx.com', 'itsme.edu.pl', 'iwi.net', 'j-p.us', 'j.rvb.ro', 'jafps.com', 'jamit.com.au', 'jcpclothing.ga', 'jdmadventures.com', 'je-recycle.info', 'jellyrolls.com', 'jeramywebb.com', 'jet-renovation.fr', 'jetable.com', 'jetable.fr.nf', 'jetable.net', 'jetable.org', 'jetable.pp.ua', 'jetableemail.com', 'jnxjn.com', 'jobbikszimpatizans.hu', 'jobposts.net', 'jobs-to-be-done.net', 'joelpet.com', 'joetestalot.com', 'josefadventures.org', 'jourrapide.com', 'jp.ftp.sh', 'jredm.com', 'jsrsolutions.com', 'jswfdb48z.com', 'jungkamushukum.com', 'junk1e.com', 'junkmail.ga', 'junkmail.gq', 'jv6hgh1.com', 'jwk4227ufn.com', 'jyliananderik.com', 'k.fido.be', 'k3663a40w.com', 'kah.pw', 'kaijenwan.com', 'kampoeng3d.club', 'kanker.website', 'kasmail.com', 'kaspop.com', 'katztube.com', 'kazelink.ml', 'kcrw.de', 'keepmymail.com', 'keinpardon.de', 'kekecog.com', 'kemska.pw', 'kennedy808.com', 'ketiksms.club', 'kickmark.com', 'kiham.club', 'killmail.com', 'killmail.net', 'kimsdisk.com', 'kingsq.ga', 'kir.ch.tc', 'kismail.ru', 'kitten-mittons.com', 'klassmaster.com', 'klassmaster.net', 'klzlk.com', 'knol-power.nl', 'kommunity.biz', 'kook.ml', 'kormail.xyz', 'kosmetik-obatkuat.com', 'koszmail.pl', 'kuai909.com', 'kuaijenwan.com', 'kuatcak.cf', 'kuatcak.tk', 'kuatmail.gq', 'kuatmail.tk', 'kulturbetrieb.info', 'kurzepost.de', 'kusrc.com', 'kwift.net', 'kwilco.net', 'l-c-a.us', 'l.safdv.com', 'l33r.eu', 'labetteraverouge.at', 'lackmail.net', 'lackmail.ru', 'ladymacbeth.tk', 'lags.us', 'lakelivingstonrealestate.com', 'landmail.co', 'laoeq.com', 'laoho.com', 'last-chance.pro', 'lastmail.co', 'lastmail.com', 'lawlita.com', 'lazyinbox.com', 'ledoktre.com', 'leeching.net', 'legalrc.loan', 'lesbugs.com', 'letthemeatspam.com', 'lexisense.com', 'lhsdv.com', 'lifebyfood.com', 'ligsb.com', 'likesyouback.com', 'lillemap.net', 'link2mail.net', 'linkedintuts2016.pw', 'litedrop.com', 'liveradio.tk', 'lmcudh4h.com', 'loadby.us', 'loan101.pro', 'localserv.no-ip.org', 'locanto1.club', 'locantospot.top', 'locateme10.com', 'locomodev.net', 'login-email.cf', 'login-email.ga', 'login-email.ml', 'login-email.tk', 'loh.pp.ua', 'lol.ovpn.to', 'lolfreak.net', 'lolito.tk', 'lookugly.com', 'lopl.co.cc', 'lordsofts.com', 'lortemail.dk', 'lostpositive.xyz', 'lovefall.ml', 'lovemeleaveme.com', 'lovesea.gq', 'lpo.ddnsfree.com', 'lr7.us', 'lr78.com', 'lroid.com', 'lukop.dk', 'luv2.us', 'm.ddcrew.com', 'm21.cc', 'm2r60ff.com', 'm4ilweb.info', 'maboard.com', 'macr2.com', 'macromaid.com', 'magicbox.ro', 'mail.ru', 'mail-easy.fr', 'mail-filter.com', 'mail-temporaire.fr', 'mail-tester.com', 'mail.aws910.com', 'mail.backflip.cf', 'mail.by', 'mail.illistnoise.com', 'mail.mailinator.com', 'mail.mezimages.net', 'mail.partskyline.com', 'mail.ticket-please.ga', 'mail.wtf', 'mail.zp.ua', 'mail114.net', 'mail1a.de', 'mail21.cc', 'mail2rss.org', 'mail333.com', 'mail4trash.com', 'mail4you.usa.cc', 'mail707.com', 'mailback.com', 'mailbidon.com', 'mailbiz.biz', 'mailblocks.com', 'mailbox72.biz', 'mailbox80.biz', 'mailbucket.org', 'mailcat.biz', 'mailcatch.com', 'mailde.de', 'mailde.info', 'maildrop.cc', 'maildrop.cf', 'maildrop.ga', 'maildrop.gq', 'maildrop.ml', 'maildump.tk', 'maildx.com', 'maileater.com', 'mailed.ro', 'maileimer.de', 'maileme101.com', 'mailexpire.com', 'mailfa.tk', 'mailfall.com', 'mailforspam.com', 'mailfree.ga', 'mailfree.gq', 'mailfree.ml', 'mailfreeonline.com', 'mailfs.com', 'mailguard.me', 'mailhero.io', 'mailimate.com', 'mailin8r.com', 'mailinatar.com', 'mailinater.com', 'mailinator.com', 'mailinator.gq', 'mailinator.net', 'mailinator.org', 'mailinator.pl', 'mailinator.us', 'mailinator2.com', 'mailincubator.com', 'mailismagic.com', 'mailjunk.cf', 'mailjunk.ga', 'mailjunk.gq', 'mailjunk.ml', 'mailjunk.tk', 'mailkor.xyz', 'mailmate.com', 'mailme.gq', 'mailme.ir', 'mailme.lv', 'mailme24.com', 'mailmetrash.com', 'mailmetrash.comilzilla.org', 'mailmoat.com', 'mailms.com', 'mailna.in', 'mailna.me', 'mailnator.com', 'mailnesia.com', 'mailnull.com', 'mailorc.com', 'mailorg.org', 'mailpick.biz', 'mailpooch.com', 'mailproxsy.com', 'mailquack.com', 'mailrock.biz', 'mailsac.com', 'mailscheap.us', 'mailscrap.com', 'mailseal.de', 'mailshell.com', 'mailsiphon.com', 'mailslapping.com', 'mailslite.com', 'mailspam.usa.cc', 'mailspam.xyz', 'mailspeed.ru', 'mailtemp.info', 'mailthunder.ml', 'mailtome.de', 'mailtothis.com', 'mailtrash.net', 'mailtv.net', 'mailtv.tv', 'mailzi.ru', 'mailzilla.com', 'mailzilla.org', 'mailzilla.orgmbx.cc', 'makemetheking.com', 'malayalamdtp.com', 'manifestgenerator.com', 'mansiondev.com', 'manybrain.com', 'mao.igg.biz', 'markmurfin.com', 'martin.securehost.com.es', 'mastahype.net', 'materiali.ml', 'mattmason.xyz', 'mbx.cc', 'mcache.net', 'mciek.com', 'medsheet.com', 'mega.zik.dj', 'meinspamschutz.de', 'mejjang.xyz', 'meltmail.com', 'merda.flu.cc', 'merda.igg.biz', 'merda.nut.cc', 'merda.usa.cc', 'merry.pink', 'messagebeamer.de', 'messwiththebestdielikethe.rest', 'metroset.net', 'mezimages.net', 'mfsa.ru', 'mhwolf.net', 'midcoastcustoms.com', 'midcoastcustoms.net', 'midcoastsolutions.com', 'midcoastsolutions.net', 'midlertidig.com', 'midlertidig.net', 'midlertidig.org', 'mierdamail.com', 'migmail.net', 'migmail.pl', 'migumail.com', 'mihep.com', 'ministry-of-silly-walks.de', 'mintemail.com', 'miodonski.ch', 'miraigames.net', 'misterpinball.de', 'mjukglass.nu', 'mmail.igg.biz', 'mmailinater.com', 'moakt.com', 'moakt.ws', 'mobi.web.id', 'mobileninja.co.uk', 'moburl.com', 'mockmyid.co', 'mohmal.com', 'mohmal.im', 'mohmal.in', 'mohmal.tech', 'momentics.ru', 'moncourrier.fr.nf', 'monemail.fr.nf', 'monmail.fr.nf', 'monumentmail.com', 'mor19.uu.gl', 'morahdsl.cf', 'moreorcs.com', 'mox.pp.ua', 'mrblacklist.gq', 'mrresourcepacks.tk', 'ms9.mailslite.com', 'msa.minsmail.com', 'msgos.com', 'mspeciosa.com', 'msrc.ml', 'mswork.ru', 'msxd.com', 'mt2009.com', 'mt2014.com', 'mt2015.com', 'mt2016.com', 'mt2017.com', 'mtmdev.com', 'muehlacker.tk', 'mufux.com', 'mugglenet.org', 'muq.orangotango.tk', 'mustbedestroyed.org', 'mvrht.com', 'mwarner.org', 'mx0.wwwnew.eu', 'my.efxs.ca', 'my.spam.orangotango.ml', 'my10minutemail.com', 'mycard.net.ua', 'mycleaninbox.net', 'mycorneroftheinter.net', 'mydemo.equipment', 'myemailboxy.com', 'mymail-in.net', 'mymailjos.cf', 'mymailjos.ga', 'mymailjos.tk', 'mymailoasis.com', 'mymailto.cf', 'mymailto.ga', 'myn4s.ddns.net', 'myneocards.cz', 'mynetstore.de', 'mypacks.net', 'mypartyclip.de', 'myphantomemail.com', 'mysamp.de', 'myspaceinc.com', 'myspaceinc.net', 'myspaceinc.org', 'myspacepimpedup.com', 'myspamless.com', 'mytemp.email', 'mytempemail.com', 'mytempmail.com', 'mythnick.club', 'mytrashmail.com', 'myzx.com', 'n.ra3.us', 'n.spamtrap.co', 'n.zavio.nl', 'n1nja.org', 'nabuma.com', 'nakedtruth.biz', 'nanonym.ch', 'napalm51.cf', 'napalm51.flu.cc', 'napalm51.ga', 'napalm51.gq', 'napalm51.igg.biz', 'napalm51.ml', 'napalm51.nut.cc', 'napalm51.tk', 'napalm51.usa.cc', 'naturalious.com', 'nctuiem.xyz', 'neibu306.com', 'neibu963.com', 'neko2.net', 'neomailbox.com', 'nepwk.com', 'nervmich.net', 'nervtmich.net', 'netmails.com', 'netmails.net', 'netris.net', 'netzidiot.de', 'neverbox.com', 'newdawnnm.xyz', 'nextstopvalhalla.com', 'nezzart.com', 'nguyenusedcars.com', 'nice-4u.com', 'nie-podam.pl', 'niepodam.pl', 'nike.coms.hk', 'nincsmail.com', 'nincsmail.hu', 'niwl.net', 'nl.szucsati.net', 'nmail.cf', 'nnh.com', 'no-spam.ws', 'noblepioneer.com', 'nobulk.com', 'noclickemail.com', 'nodnor.club', 'nogmailspam.info', 'nomail.cf', 'nomail.ch', 'nomail.ga', 'nomail.pw', 'nomail.xl.cx', 'nomail2me.com', 'nomailthankyou.com', 'nomorespamemails.com', 'nonspam.eu', 'nonspammer.de', 'noref.in', 'norseforce.com', 'northemquest.com', 'nospam.wins.com.br', 'nospam.ze.tc', 'nospam4.us', 'nospamfor.us', 'nospammail.net', 'nospamthanks.info', 'nostrajewellery.xyz', 'nothingtoseehere.ca', 'notmailinator.com', 'notsharingmy.info', 'nowhere.org', 'nowmymail.com', 'ntlhelp.net', 'nubescontrol.com', 'nurfuerspam.de', 'nus.edu.sg', 'nutpa.net', 'nwldx.com', 'ny7.me', 'o.cfo2go.ro', 'o.idigo.org', 'o.muti.ro', 'o.oai.asia', 'o.opendns.ro', 'o.spamtrap.ro', 'o060bgr3qg.com', 'o7i.net', 'objectmail.com', 'obobbo.com', 'obxpestcontrol.com', 'oceancares.xyz', 'odaymail.com', 'odnorazovoe.ru', 'oerpub.org', 'offshore-proxies.net', 'ohdomain.xyz', 'ohioticketpayments.xyz', 'oing.cf', 'olypmall.ru', 'omnievents.org', 'one-time.email', 'onebiginbox.com', 'onelegalplan.com', 'oneoffemail.com', 'oneoffmail.com', 'onewaymail.com', 'onlatedotcom.info', 'online.ms', 'oolus.com', 'oopi.org', 'opayq.com', 'opentrash.com', 'orango.cu.cc', 'ordinaryamerican.net', 'oshietechan.link', 'otherinbox.codupmyspace.com', 'otherinbox.com', 'ourklips.com', 'outlawspam.com', 'ovpn.to', 'owlpic.com', 'p.9q.ro', 'p.k4ds.org', 'p71ce1m.com', 'pagamenti.tk', 'paller.cf', 'pancakemail.com', 'paplease.com', 'parkcrestlakewood.xyz', 'parlimentpetitioner.tk', 'pastebitch.com', 'paulfucksallthebitches.com', 'pcusers.otherinbox.com', 'pencalc.xyz', 'penis.computer', 'pepbot.com', 'peppe.usa.cc', 'pepsi.coms.hk', 'personal-email.ml', 'petrzilka.net', 'pfui.ru', 'photo-impact.eu', 'photomark.net', 'phpbb.uu.gl', 'phus8kajuspa.cu.cc', 'pig.pp.ua', 'pimpedupmyspace.com', 'pingir.com', 'pjjkp.com', 'plexolan.de', 'ploae.com', 'po.bot.nu', 'poczta.onet.pl', 'podam.pl', 'poh.pp.ua', 'pokemail.net', 'polarkingxx.ml', 'politikerclub.de', 'poliusraas.tk', 'polyfaust.com', 'pooae.com', 'poofy.org', 'pookmail.com', 'poopiebutt.club', 'popesodomy.com', 'porco.cf', 'porco.ga', 'porco.gq', 'porco.ml', 'postacin.com', 'pp.ua', 'ppetw.com', 'premium-mail.fr', 'premiumperson.website', 'primabananen.net', 'privacy.net', 'privatdemail.net', 'privy-mail.com', 'privymail.de', 'project-xhabbo.com', 'projectcl.com', 'propscore.com', 'proxymail.eu', 'prs7.xyz', 'prtnx.com', 'prtz.eu', 'psles.com', 'psoxs.com', 'psychedelicwarrior.xyz', 'pumps-fashion.com', 'punkass.com', 'purelogistics.org', 'purple.flu.cc', 'purple.igg.biz', 'purple.nut.cc', 'purple.usa.cc', 'puttanamaiala.tk', 'putthisinyourspamdatabase.com', 'pw.flu.cc', 'pw.igg.biz', 'pw.nut.cc', 'pwp.lv', 'pwrby.com', 'q5vm7pi9.com', 'qafatwallet.com', 'qasti.com', 'qbfree.us', 'qisdo.com', 'qisoa.com', 'qj97r73md7v5.com', 'qs.dp76.com', 'qs2k.com', 'qt1.ddns.net', 'quadrafit.com', 'querydirect.com', 'quickinbox.com', 'quickmail.nl', 'quickreport.it', 'r.yasser.ru', 'r8.porco.cf', 'r8r4p0cb.com', 'radecoratingltd.com', 'radiku.ye.vc', 'raetp9.com', 'rainwaterstudios.org', 'rajeshcon.cf', 'raketenmann.de', 'rarame.club', 'rawhidefc.org', 'rawmails.com', 'rcasd.com', 'rcpt.at', 'rcs7.xyz', 're-gister.com', 'reality-concept.club', 'reallymymail.com', 'realtyalerts.ca', 'receiveee.chickenkiller.com', 'receiveee.com', 'recipeforfailure.com', 'recode.me', 'reconmail.com', 'recursor.net', 'recyclemail.dk', 'reddit.usa.cc', 'redpeanut.com', 'regbypass.com', 'regbypass.comsafe-mail.net', 'regspaces.tk', 'rejectmail.com', 'reliable-mail.com', 'remail.cf', 'remail.ga', 'remote.li', 'reptilegenetics.com', 'resgedvgfed.tk', 'revolvingdoorhoax.org', 'rgphotos.net', 'rhombushorizons.com', 'rhyta.com', 'riamof.club', 'riddermark.de', 'rk9.chickenkiller.com', 'rklips.com', 'rkomo.com', 'rmqkr.net', 'rnailinator.com', 'ronnierage.net', 'rootfest.net', 'rotaniliam.com', 'royal.net', 'rppkn.com', 'rq6668f.com', 'rr-0.cu.cc', 'rr-1.cu.cc', 'rr-2.cu.cc', 'rr-3.cu.cc', 'rtrtr.com', 'rudymail.ml', 'ruffrey.com', 'rumgel.com', 'ruru.be', 'ruu.kr', 'rx.dred.ru', 'rx.qc.to', 's-s.flu.cc', 's.bloq.ro', 's.bungabunga.cf', 's.dextm.ro', 's.proprietativalcea.ro', 's.sa.igg.biz', 's.spamserver.flu.cc', 's.vdig.com', 's00.orangotango.ga', 's0ny.net', 's33db0x.com', 's51zdw001.com', 'sa.igg.biz', 'safe-mail.net', 'safermail.info', 'safersignup.de', 'safetymail.info', 'safetypost.de', 'sandelf.de', 'sasa22.usa.cc', 'sausen.com', 'savelife.ml', 'saynotospams.com', 'scatmail.com', 'scbox.one.pl', 'schachrol.com', 'schafmail.de', 'schrott-email.de', 'sd3.in', 'searzh.com', 'secretemail.de', 'secure-mail.biz', 'secure-mail.cc', 'secured-link.net', 'securehost.com.es', 'selfdestructingmail.com', 'selfdestructingmail.org', 'semut-kecil.com', 'sendfree.org', 'sendingspecialflyers.com', 'sendspamhere.com', 'senseless-entertainment.com', 'servermaps.net', 'services391.com', 'sexical.com', 'sezet.com', 'sfmail.top', 'sharedmailbox.org', 'sharklasers.com', 'shhmail.com', 'shhuut.org', 'shieldedmail.com', 'shieldemail.com', 'shiftmail.com', 'shitaway.cf', 'shitaway.cu.cc', 'shitaway.flu.cc', 'shitaway.ga', 'shitaway.gq', 'shitaway.igg.biz', 'shitaway.ml', 'shitaway.nut.cc', 'shitaway.tk', 'shitaway.usa.cc', 'shitmail.de', 'shitmail.me', 'shitmail.org', 'shitware.nl', 'shmeriously.com', 'shockinmytown.cu.cc', 'shonky.info', 'shortmail.net', 'shotmail.ru', 'showslow.de', 'shuffle.email', 'shurs.xyz', 'siliwangi.ga', 'sinda.club', 'sinnlos-mail.de', 'siteposter.net', 'skeefmail.com', 'skrx.tk', 'sky-mail.ga', 'slapsfromlastnight.com', 'slaskpost.se', 'slave-auctions.net', 'slippery.email', 'slipry.net', 'slopsbox.com', 'slothmail.net', 'slowfoodfoothills.xyz', 'slushmail.com', 'slutty.horse', 'smallker.tk', 'smap.4nmv.ru', 'smashmail.de', 'smellfear.com', 'smellrear.com', 'smsforum.ro', 'smwg.info', 'snakemail.com', 'sneakemail.com', 'sneakmail.de', 'snkmail.com', 'social-mailer.tk', 'sofimail.com', 'sofort-mail.de', 'softpls.asia', 'sogetthis.com', 'sohu.com', 'soisz.com', 'solar-impact.pro', 'solvemail.info', 'soodomail.com', 'soodonims.com', 'sosmanga.com', 'spa.com', 'spaereplease.com', 'spam-a.porco.cf', 'spam-b.porco.cf', 'spam-be-gone.com', 'spam.2012-2016.ru', 'spam.la', 'spam.orangotango.ml', 'spam.su', 'spam4.me', 'spamail.de', 'spamarrest.com', 'spamavert.com', 'spambob.com', 'spambob.net', 'spambob.org', 'spambog.com', 'spambog.de', 'spambog.net', 'spambog.ru', 'spambooger.com', 'spambox.info', 'spambox.irishspringrealty.com', 'spambox.us', 'spamcannon.com', 'spamcannon.net', 'spamcero.com', 'spamcon.org', 'spamcorptastic.com', 'spamcowboy.com', 'spamcowboy.net', 'spamcowboy.org', 'spamday.com', 'spamdecoy.net', 'spamex.com', 'spamfighter.cf', 'spamfighter.ga', 'spamfighter.gq', 'spamfighter.ml', 'spamfighter.tk', 'spamfree.eu', 'spamfree24.com', 'spamfree24.de', 'spamfree24.eu', 'spamfree24.info', 'spamfree24.net', 'spamfree24.org', 'spamgoes.in', 'spamgourmet.com', 'spamgourmet.net', 'spamgourmet.org', 'spamherelots.com', 'spamhereplease.com', 'spamhole.com', 'spamify.com', 'spaminator.de', 'spamkill.info', 'spaml.com', 'spaml.de', 'spammotel.com', 'spamobox.com', 'spamoff.de', 'spamsalad.in', 'spamserver.cf', 'spamserver.flu.cc', 'spamserver.ml', 'spamserver.tk', 'spamslicer.com', 'spamspot.com', 'spamstack.net', 'spamthis.co.uk', 'spamthisplease.com', 'spamtrail.com', 'spamtroll.net', 'spamwc.cf', 'spamwc.ga', 'spamwc.gq', 'spamwc.ml', 'speed.1s.fr', 'sperma.cf', 'spikio.com', 'spoofmail.de', 'spybox.de', 'squizzy.de', 'squizzy.net', 'sr.ro.lt', 'sraka.xyz', 'sroff.com', 'ss.undo.it', 'ssgjylc1013.com', 'ssoia.com', 'startkeys.com', 'statdvr.com', 'stathost.net', 'steamprank.com', 'stexsy.com', 'stg.malibucoding.com', 'stinkefinger.net', 'stop-my-spam.cf', 'stop-my-spam.com', 'stop-my-spam.ga', 'stop-my-spam.ml', 'stop-my-spam.pp.ua', 'stop-my-spam.tk', 'stpetersandstpauls.xyz', 'streamfly.biz', 'streamfly.link', 'streetwisemail.com', 'stromox.com', 'studiopolka.tokyo', 'stuffmail.de', 'suburbanthug.com', 'sudolife.me', 'sudolife.net', 'sudomail.biz', 'sudomail.com', 'sudomail.net', 'sudoverse.com', 'sudoverse.net', 'sudoweb.net', 'sudoworld.com', 'sudoworld.net', 'super-auswahl.de', 'supergreatmail.com', 'supermailer.jp', 'superrito.com', 'superstachel.de', 'suremail.info', 'surveyrnonkey.net', 'susi.ml', 'svk.jp', 'sweetxxx.de', 'swift10minutemail.com', 'sxylc113.com', 'szerz.com', 't.psh.me', 't24e4p7.com', 't3t97d1d.com', 'tafmail.com', 'taglead.com', 'tagmymedia.com', 'tagyourself.com', 'takedowns.org', 'talkinator.com', 'tanukis.org', 'taosjw.com', 'tapchicuoihoi.com', 'tarzan.usa.cc', 'tarzanmail.cf', 'tarzanmail.ml', 'taskforcetech.com', 'tdf-illustration.com', 'teamspeak3.ga', 'teewars.org', 'teleosaurs.xyz', 'teleworm.com', 'teleworm.us', 'temp-mail.com', 'temp-mail.de', 'temp-mail.org', 'temp-mail.ru', 'temp.bartdevos.be', 'temp.emeraldwebmail.com', 'temp.headstrong.de', 'temp.mail.y59.jp', 'tempail.com', 'tempalias.com', 'tempe-mail.com', 'tempemail.biz', 'tempemail.co.za', 'tempemail.com', 'tempemail.net', 'tempinbox.co.uk', 'tempinbox.com', 'tempmail.co', 'tempmail.de', 'tempmail.eu', 'tempmail.it', 'tempmail.pro', 'tempmail.us', 'tempmail2.com', 'tempmaildemo.com', 'tempmailer.com', 'tempmailer.de', 'tempomail.fr', 'temporarily.de', 'temporarioemail.com.br', 'temporaryemail.net', 'temporaryemail.us', 'temporaryforwarding.com', 'temporaryinbox.com', 'temporarymailaddress.com', 'tempsky.com', 'tempthe.net', 'tempymail.com', 'testudine.com', 'thanksnospam.info', 'thankyou2010.com', 'thc.st', 'theaperturelabs.com', 'theaperturescience.com', 'theaviors.com', 'thebearshark.com', 'thecloudindex.com', 'thelimestones.com', 'thereddoors.online', 'thespawningpool.com', 'thietbivanphong.asia', 'thisisnotmyrealemail.com', 'thismail.net', 'thraml.com', 'thrma.com', 'throam.com', 'thrott.com', 'throwam.com', 'throwawayemailaddress.com', 'throwawaymail.com', 'throya.com', 'thxmate.com', 'tilien.com', 'timekr.xyz', 'tittbit.in', 'tizi.com', 'tkmy88m.com', 'tlpn.org', 'tm.tosunkaya.com', 'tmail.ws', 'tmailinator.com', 'tmpjr.me', 'tntitans.club', 'toddsbighug.com', 'toiea.com', 'tokuriders.club', 'tonymanso.com', 'toomail.biz', 'toon.ml', 'top1mail.ru', 'top1post.ru', 'top9appz.info', 'topofertasdehoy.com', 'topranklist.de', 'toprumours.com', 'totesmail.com', 'tp-qa-mail.com', 'tradermail.info', 'tralalajos.ga', 'tralalajos.gq', 'tralalajos.ml', 'tralalajos.tk', 'tranceversal.com', 'trash-amil.com', 'trash-mail.at', 'trash-mail.cf', 'trash-mail.com', 'trash-mail.de', 'trash-mail.ga', 'trash-mail.gq', 'trash-mail.ml', 'trash-mail.tk', 'trash-me.com', 'trash2009.com', 'trash2010.com', 'trash2011.com', 'trashcanmail.com', 'trashdevil.com', 'trashdevil.de', 'trashemail.de', 'trashmail.at', 'trashmail.com', 'trashmail.de', 'trashmail.gq', 'trashmail.me', 'trashmail.net', 'trashmail.org', 'trashmail.ws', 'trashmailer.com', 'trashymail.com', 'trashymail.net', 'trayna.com', 'trbvm.com', 'trbvn.com', 'trbvo.com', 'trebusinde.cf', 'trebusinde.ml', 'trendingtopic.cl', 'trialmail.de', 'trickmail.net', 'trillianpro.com', 'trump.flu.cc', 'trump.igg.biz', 'trungtamtoeic.com', 'tryalert.com', 'tucumcaritonite.com', 'tug.minecraftrabbithole.com', 'turoid.com', 'turual.com', 'tvchd.com', 'tverya.com', 'twinmail.de', 'twkly.ml', 'twoweirdtricks.com', 'txt7e99.com', 'txtadvertise.com', 'ty.ceed.se', 'tyldd.com', 'u.0u.ro', 'u.10x.es', 'u.2sea.org', 'u.900k.es', 'u.civvic.ro', 'u.dmarc.ro', 'u.labo.ch', 'u.qvap.ru', 'u14269.ml', 'u6lvty2.com', 'ua3jx7n0w3.com', 'uacro.com', 'ubismail.net', 'ucupdong.ml', 'ufacturing.com', 'ufgqgrid.xyz', 'uggsrock.com', 'uhhu.ru', 'uk.flu.cc', 'uk.igg.biz', 'uk.nut.cc', 'umail.net', 'unimark.org', 'unmail.ru', 'upliftnow.com', 'uplipht.com', 'urbanchickencoop.com', 'urfey.com', 'uroid.com', 'us.af', 'used-product.fr', 'username.e4ward.com', 'uwork4.us', 'ux.dob.jp', 'ux.uk.to', 'uz6tgwk.com', 'v.0v.ro', 'v.jsonp.ro', 'vaasfc4.tk', 'valemail.net', 'valhalladev.com', 'vanacken.xyz', 'venompen.com', 'verdejo.com', 'veryrealemail.com', 'vfemail.net', 'vickaentb.tk', 'vidchart.com', 'viditag.com', 'viewcastmedia.com', 'viewcastmedia.net', 'viewcastmedia.org', 'vikingsonly.com', 'vinernet.com', 'viralplays.com', 'viroleni.cu.cc', 'visa.coms.hk', 'vixletdev.com', 'vkcode.ru', 'vmani.com', 'vmpanda.com', 'vncoders.net', 'vomoto.com', 'votiputox.org', 'vp.ycare.de', 'vpn.st', 'vpn33.top', 'vps30.com', 'vps911.net', 'vpsorg.pro', 'vpsorg.top', 'vs904a6.com', 'vsimcard.com', 'vssms.com', 'vubby.com', 'vzlom4ik.tk', 'w.0w.ro', 'w22fe21.com', 'w4i3em6r.com', 'w918bsq.com', 'w9f.de', 'w9y9640c.com', 'walala.org', 'walkmail.net', 'walkmail.ru', 'wasd.dropmail.me', 'wasteland.rfc822.org', 'wazabi.club', 'wbml.net', 'we.qq.my', 'web-contact.info', 'web-emailbox.eu', 'web-ideal.fr', 'web-mail.pp.ua', 'web.discard-email.cf', 'webcontact-france.eu', 'webemail.me', 'webm4il.info', 'webtrip.ch', 'webuser.in', 'wee.my', 'wefjo.grn.cc', 'weg-werf-email.de', 'wegwerf-email-addressen.de', 'wegwerf-emails.de', 'wegwerfadresse.de', 'wegwerfemail.com', 'wegwerfemail.de', 'wegwerfmail.de', 'wegwerfmail.info', 'wegwerfmail.net', 'wegwerfmail.org', 'wegwerpmailadres.nl', 'wetrainbayarea.com', 'wetrainbayarea.org', 'wfgdfhj.tk', 'wg0.com', 'wh4f.org', 'whatiaas.com', 'whatifanalytics.com', 'whatpaas.com', 'whatsaas.com', 'whopy.com', 'whtjddn.33mail.com', 'whyspam.me', 'wibblesmith.com', 'wickmail.net', 'wierie.tk', 'wiki.8191.at', 'wilemail.com', 'willhackforfood.biz', 'willselfdestruct.com', 'wimsg.com', 'winemaven.info', 'wishan.net', 'wiz2.site', 'wmail.cf', 'wolfmission.com', 'wollan.info', 'worldspace.link', 'wovz.cu.cc', 'wr.moeri.org', 'wr9v6at7.com', 'wronghead.com', 'wt2.orangotango.cf', 'wuzup.net', 'wuzupmail.net', 'www.bccto.me', 'www.e4ward.com', 'www.gishpuppy.com', 'www.mailinator.com', 'www.redpeanut.com', 'wwwnew.eu', 'wyvernia.net', 'x.fackme.gq', 'x.ip6.li', 'x1x22716.com', 'x24.com', 'x4y.club', 'x5a9m8ugq.com', 'x8h8x941l.com', 'xagloo.com', 'xcompress.com', 'xemaps.com', 'xents.com', 'xing886.uu.gl', 'xjoi.com', 'xlgaokao.com', 'xmaily.com', 'xn--9kq967o.com', 'xost.us', 'xoxox.cc', 'xoxy.net', 'xwaretech.info', 'xwaretech.net', 'xww.ro', 'xxqx3802.com', 'xy9ce.tk', 'xyzfree.net', 'xzsok.com', 'yandere.cu.cc', 'yapped.net', 'yaqp.com', 'yeah.net', 'yellow.flu.cc', 'yellow.hotakama.tk', 'yellow.igg.biz', 'yentzscholarship.xyz', 'yep.it', 'yert.ye.vc', 'ygroupvideoarchive.com', 'ygroupvideoarchive.net', 'ynmrealty.com', 'yogamaven.com', 'yomail.info', 'yopmail.com', 'yopmail.fr', 'yopmail.fr.nf', 'yopmail.gq', 'yopmail.net', 'yopmail.pp.ua', 'yordanmail.cf', 'you-spam.com', 'youcankeepit.info', 'youmail.ga', 'yourdomain.com', 'yourewronghereswhy.com', 'yourlifesucks.cu.cc', 'yourlms.biz', 'ypmail.webarnak.fr.eu.org', 'yroid.com', 'yui.it', 'yuurok.com', 'yy-h2.nut.cc', 'yyj295r31.com', 'yyt.resolution4print.info', 'z1p.biz', 'z7az14m.com', 'za.com', 'zain.site', 'zainmax.net', 'zaktouni.fr', 'zane.rocks', 'zasod.com', 'zasve.info', 'ze.gally.jp', 'zehnminuten.de', 'zehnminutenmail.de', 'zepp.dk', 'zeta-telecom.com', 'zetmail.com', 'zhcne.com', 'zhouemail.510520.org', 'zippymail.info', 'zoaxe.com', 'zoemail.com', 'zoemail.net', 'zoemail.org', 'zombie-hive.com', 'zombo.flu.cc', 'zombo.igg.biz', 'zombo.nut.cc', 'zomg.info', 'zumpul.com', 'zxcv.com', 'zxcvbnm.com', 'zxcxc.com', 'zzz.com', 'qq.com', 'qq.co', 'bk.ru', 'inbox.ru', 'backlinkfaq.xyz' ); $domain_name = substr(strrchr($user_email, "@"), 1); if (in_array($domain_name, $dea_array)) { return true; } else { return false; } } }
  15. Hi and welcome to the forum. You would need mc more then just roles. There are several marketplace modules. here are few https://addons.prestashop.com/en/marketplace-creation/51936-agile-multiple-seller-17.html https://addons.prestashop.com/en/marketplace-creation/18656-ja-marketplace.html https://addons.prestashop.com/en/marketplace-creation/8057-advanced-multi-vendor-marketplace.html Those are base modules with some functionality but with each there are few additional modules depending of your needs. So do check demos and think complete workflow you would need. Good luck.
  16. My mistake, that change is done on your server. But depending on control panel you are using you can probably change file there too. There should be some File Manager section where you can access files and edit them. Alternative is some app like Filezilla and text editor of your choosing but think it is fine for one change to use File Manager in control panel. Also note, after you save change on file you may also need to clear PrestaShop cache. That is in Advanced Parameters > Performance on right hand site near top. Let me know if you have any question.
  17. Hi and welcome to the forum. Issue is that those two products are out of stock and with that they have extra element that increases height of product list element. So products below got pushed down. One of solutions is to add min-height to product description block and leave space for notify button if needed. That way all will have same height. Code should be in modules/mrshopmailnotifications/css/mrshopmailnotifications.css line 56 #products .product-description, .featured-products .product-description, .product-accessories .product-description, .product-miniature .product-description { height: auto; padding-bottom: 7px; min-height: 115px; // new code } You do get bit of white space for other products but I do not think it is too much https://nimb.ws/PACr9x
  18. Pozdrav, Pogladaj u Valute za dinar da li ti je broj decimala jednak 0. Sad sam proverio i to izgleda podrazumevano kada se doda paket za lokalizaciju. Potrebno je naravno da bude 2.
  19. Hey @Billy Think you just need closing } before "public static function getTreePath" and another one at very end to match class one. <?php /** * Copyright since 2007 PrestaShop SA and Contributors * PrestaShop is an International Registered Trademark & Property of PrestaShop SA * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License 3.0 (AFL-3.0) * that is bundled with this package in the file LICENSE.md. * It is also available through the world-wide-web at this URL: * https://opensource.org/licenses/AFL-3.0 * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to https://devdocs.prestashop.com/ for more information. * * @author PrestaShop SA and Contributors <[email protected]> * @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) */ if (!defined('_PS_VERSION_')) { exit; } use PrestaShop\PrestaShop\Core\Module\WidgetInterface; class Ps_CategoryTree extends Module implements WidgetInterface { /** * @var string Name of the module running on PS 1.6.x. Used for data migration. */ const PS_16_EQUIVALENT_MODULE = 'blockcategories'; public function __construct() { $this->name = 'ps_categorytree'; $this->tab = 'front_office_features'; $this->version = '2.0.2'; $this->author = 'PrestaShop'; $this->bootstrap = true; parent::__construct(); $this->displayName = $this->getTranslator()->trans('Category tree links', [], 'Modules.Categorytree.Admin'); $this->description = $this->getTranslator()->trans('Help navigation on your store, show your visitors current category and subcategories.', [], 'Modules.Categorytree.Admin'); $this->ps_versions_compliancy = ['min' => '1.7.1.0', 'max' => _PS_VERSION_]; } public function install() { // If the PS 1.6 module wasn't here, set the default values if (!$this->uninstallPrestaShop16Module()) { Configuration::updateValue('BLOCK_CATEG_MAX_DEPTH', 4); Configuration::updateValue('BLOCK_CATEG_ROOT_CATEGORY', 1); } return parent::install() && $this->registerHook('displayLeftColumn') ; } /** * Migrate data from 1.6 equivalent module (if applicable), then uninstall */ public function uninstallPrestaShop16Module() { if (!Module::isInstalled(self::PS_16_EQUIVALENT_MODULE)) { return false; } $oldModule = Module::getInstanceByName(self::PS_16_EQUIVALENT_MODULE); if ($oldModule) { // This closure calls the parent class to prevent data to be erased // It allows the new module to be configured without migration $parentUninstallClosure = function () { return parent::uninstall(); }; $parentUninstallClosure = $parentUninstallClosure->bindTo($oldModule, get_class($oldModule)); $parentUninstallClosure(); } return true; } public function uninstall() { if (!parent::uninstall() || !Configuration::deleteByName('BLOCK_CATEG_MAX_DEPTH') || !Configuration::deleteByName('BLOCK_CATEG_ROOT_CATEGORY')) { return false; } return true; } public function getContent() { $output = ''; if (Tools::isSubmit('submitBlockCategories')) { $maxDepth = (int) (Tools::getValue('BLOCK_CATEG_MAX_DEPTH')); if ($maxDepth < 0) { $output .= $this->displayError($this->getTranslator()->trans('Maximum depth: Invalid number.', [], 'Admin.Notifications.Error')); } else { Configuration::updateValue('BLOCK_CATEG_MAX_DEPTH', (int) $maxDepth); Configuration::updateValue('BLOCK_CATEG_SORT_WAY', Tools::getValue('BLOCK_CATEG_SORT_WAY')); Configuration::updateValue('BLOCK_CATEG_SORT', Tools::getValue('BLOCK_CATEG_SORT')); Configuration::updateValue('BLOCK_CATEG_ROOT_CATEGORY', Tools::getValue('BLOCK_CATEG_ROOT_CATEGORY')); //$this->_clearBlockcategoriesCache(); Tools::redirectAdmin(AdminController::$currentIndex . '&configure=' . $this->name . '&token=' . Tools::getAdminTokenLite('AdminModules') . '&conf=6'); } } return $output . $this->renderForm(); } private function getCategories($category) { $range = ''; $maxdepth = Configuration::get('BLOCK_CATEG_MAX_DEPTH'); if (Validate::isLoadedObject($category)) { if ($maxdepth > 0) { $maxdepth += $category->level_depth; } $range = 'AND nleft >= ' . (int) $category->nleft . ' AND nright <= ' . (int) $category->nright; } $resultIds = []; $resultParents = []; $result = Db::getInstance((bool) _PS_USE_SQL_SLAVE_)->executeS(' SELECT c.id_parent, c.id_category, cl.name, cl.description, cl.link_rewrite FROM `' . _DB_PREFIX_ . 'category` c INNER JOIN `' . _DB_PREFIX_ . 'category_lang` cl ON (c.`id_category` = cl.`id_category` AND cl.`id_lang` = ' . (int) $this->context->language->id . Shop::addSqlRestrictionOnLang('cl') . ') INNER JOIN `' . _DB_PREFIX_ . 'category_shop` cs ON (cs.`id_category` = c.`id_category` AND cs.`id_shop` = ' . (int) $this->context->shop->id . ') WHERE (c.`active` = 1 OR c.`id_category` = ' . (int) Configuration::get('PS_HOME_CATEGORY') . ') AND c.`id_category` != ' . (int) Configuration::get('PS_ROOT_CATEGORY') . ' ' . ((int) $maxdepth != 0 ? ' AND `level_depth` <= ' . (int) $maxdepth : '') . ' ' . $range . ' AND c.id_category IN ( SELECT id_category FROM `' . _DB_PREFIX_ . 'category_group` WHERE `id_group` IN (' . pSQL(implode(', ', Customer::getGroupsStatic((int) $this->context->customer->id))) . ') ) ORDER BY `level_depth` ASC, ' . (Configuration::get('BLOCK_CATEG_SORT') ? 'cl.`name`' : 'cs.`position`') . ' ' . (Configuration::get('BLOCK_CATEG_SORT_WAY') ? 'DESC' : 'ASC')); foreach ($result as &$row) { $resultParents[$row['id_parent']][] = &$row; $resultIds[$row['id_category']] = &$row; } return $this->getTree($resultParents, $resultIds, $maxdepth, ($category ? $category->id : null)); } public function getTree($resultParents, $resultIds, $maxDepth, $id_category = null, $currentDepth = 0) { if (is_null($id_category)) { $id_category = $this->context->shop->getCategory(); } $children = []; if (isset($resultParents[$id_category]) && count($resultParents[$id_category]) && ($maxDepth == 0 || $currentDepth < $maxDepth)) { foreach ($resultParents[$id_category] as $subcat) { $children[] = $this->getTree($resultParents, $resultIds, $maxDepth, $subcat['id_category'], $currentDepth + 1); } } if (isset($resultIds[$id_category])) { $link = $this->context->link->getCategoryLink($id_category, $resultIds[$id_category]['link_rewrite']); $name = $resultIds[$id_category]['name']; $desc = $resultIds[$id_category]['description']; } else { $link = $name = $desc = ''; } return [ 'id' => $id_category, 'link' => $link, 'name' => $name, 'desc' => $desc, 'children' => $children, ]; } public function renderForm() { $fields_form = [ 'form' => [ 'legend' => [ 'title' => $this->getTranslator()->trans('Settings', [], 'Admin.Global'), 'icon' => 'icon-cogs', ], 'input' => [ [ 'type' => 'radio', 'label' => $this->getTranslator()->trans('Category root', [], 'Modules.Categorytree.Admin'), 'name' => 'BLOCK_CATEG_ROOT_CATEGORY', 'hint' => $this->getTranslator()->trans('Select which category is displayed in the block. The current category is the one the visitor is currently browsing.', [], 'Modules.Categorytree.Admin'), 'values' => [ [ 'id' => 'home', 'value' => 0, 'label' => $this->getTranslator()->trans('Home category', [], 'Modules.Categorytree.Admin'), ], [ 'id' => 'current', 'value' => 1, 'label' => $this->getTranslator()->trans('Current category', [], 'Modules.Categorytree.Admin'), ], [ 'id' => 'parent', 'value' => 2, 'label' => $this->getTranslator()->trans('Parent category', [], 'Modules.Categorytree.Admin'), ], [ 'id' => 'current_parent', 'value' => 3, 'label' => $this->getTranslator()->trans('Current category, unless it has no subcategories, in which case the parent category of the current category is used', [], 'Modules.Categorytree.Admin'), ], ], ], [ 'type' => 'text', 'label' => $this->getTranslator()->trans('Maximum depth', [], 'Modules.Categorytree.Admin'), 'name' => 'BLOCK_CATEG_MAX_DEPTH', 'desc' => $this->getTranslator()->trans('Set the maximum depth of category sublevels displayed in this block (0 = infinite).', [], 'Modules.Categorytree.Admin'), ], [ 'type' => 'radio', 'label' => $this->getTranslator()->trans('Sort', [], 'Admin.Actions'), 'name' => 'BLOCK_CATEG_SORT', 'values' => [ [ 'id' => 'name', 'value' => 1, 'label' => $this->getTranslator()->trans('By name', [], 'Admin.Global'), ], [ 'id' => 'position', 'value' => 0, 'label' => $this->getTranslator()->trans('By position', [], 'Admin.Global'), ], ], ], [ 'type' => 'radio', 'label' => $this->getTranslator()->trans('Sort order', [], 'Admin.Actions'), 'name' => 'BLOCK_CATEG_SORT_WAY', 'values' => [ [ 'id' => 'name', 'value' => 1, 'label' => $this->getTranslator()->trans('Descending', [], 'Admin.Global'), ], [ 'id' => 'position', 'value' => 0, 'label' => $this->getTranslator()->trans('Ascending', [], 'Admin.Global'), ], ], ], ], 'submit' => [ 'title' => $this->getTranslator()->trans('Save', [], 'Admin.Actions'), ], ], ]; $helper = new HelperForm(); $helper->show_toolbar = false; $helper->table = $this->table; $helper->submit_action = 'submitBlockCategories'; $helper->currentIndex = $this->context->link->getAdminLink('AdminModules', false) . '&configure=' . $this->name . '&tab_module=' . $this->tab . '&module_name=' . $this->name; $helper->token = Tools::getAdminTokenLite('AdminModules'); $helper->tpl_vars = [ 'fields_value' => $this->getConfigFieldsValues(), ]; return $helper->generateForm([$fields_form]); } public function getConfigFieldsValues() { return [ 'BLOCK_CATEG_MAX_DEPTH' => Tools::getValue('BLOCK_CATEG_MAX_DEPTH', Configuration::get('BLOCK_CATEG_MAX_DEPTH')), 'BLOCK_CATEG_SORT_WAY' => Tools::getValue('BLOCK_CATEG_SORT_WAY', Configuration::get('BLOCK_CATEG_SORT_WAY')), 'BLOCK_CATEG_SORT' => Tools::getValue('BLOCK_CATEG_SORT', Configuration::get('BLOCK_CATEG_SORT')), 'BLOCK_CATEG_ROOT_CATEGORY' => Tools::getValue('BLOCK_CATEG_ROOT_CATEGORY', Configuration::get('BLOCK_CATEG_ROOT_CATEGORY')), ]; } public function setLastVisitedCategory() { if (method_exists($this->context->controller, 'getCategory') && ($category = $this->context->controller->getCategory())) { $this->context->cookie->last_visited_category = $category->id; } elseif (method_exists($this->context->controller, 'getProduct') && ($product = $this->context->controller->getProduct())) { if (!isset($this->context->cookie->last_visited_category) || !Product::idIsOnCategoryId($product->id, [['id_category' => $this->context->cookie->last_visited_category]]) || !Category::inShopStatic($this->context->cookie->last_visited_category, $this->context->shop) ) { $this->context->cookie->last_visited_category = (int) $product->id_category_default; } } } public function renderWidget($hookName = null, array $configuration = []) { $this->setLastVisitedCategory(); $this->smarty->assign($this->getWidgetVariables($hookName, $configuration)); return $this->fetch('module:ps_categorytree/views/templates/hook/ps_categorytree.tpl'); } public function getWidgetVariables($hookName = null, array $configuration = []) { $category = new Category((int) Configuration::get('PS_HOME_CATEGORY'), $this->context->language->id); if (Configuration::get('BLOCK_CATEG_ROOT_CATEGORY') && isset($this->context->cookie->last_visited_category) && $this->context->cookie->last_visited_category) { $category = new Category($this->context->cookie->last_visited_category, $this->context->language->id); if (Configuration::get('BLOCK_CATEG_ROOT_CATEGORY') == 2 && !$category->is_root_category && $category->id_parent) { $category = new Category($category->id_parent, $this->context->language->id); } elseif (Configuration::get('BLOCK_CATEG_ROOT_CATEGORY') == 3 && !$category->is_root_category && !$category->getSubCategories($category->id, true)) { $category = new Category($category->id_parent, $this->context->language->id); } } $categories = $this->getCategories($category); return [ 'categories' => $categories, 'c_tree_path' => isset($categories['children']) && count($categories['children']) && method_exists($this->context->controller, 'getCategory') && ($curr_category = $this->context->controller->getCategory()) ? self::getTreePath($categories['children'], $curr_category->id) : false, 'currentCategory' => $category->id, ] ; } public static function getTreePath($categories, $id, array $path = []) { foreach ($categories as $cate) { if ($cate['id'] == $id){ if(is_array($cate['children']) && count($cate['children'])) $path[] = $cate['id']; return $path; } $path[] = $cate['id']; if(is_array($cate['children']) && count($cate['children'])) { if ($result = self::getTreePath($cate['children'], $id, $path)) return $result; } array_pop($path); } return false; } } Not tested but should work.
  20. Yes seams it is PHP version. So what is your PHP version and what is your PrestaShop version ? Check this graph https://devdocs.prestashop.com/1.7/basics/installation/system-requirements/#php-requirements and see if there is an issue.
  21. Hi Paul Welcome to the forum. Sorry to hear your site went down and not active for months. There could be few issues but for start you can enable debug mode One of cause could be that your hosting changed PHP version and depending on your PrestaShop version it may be not supported. If you need paid technical support check official PrestaShop agencies https://www.prestashop.com/en/experts or post a job offer in separate part of forum https://www.prestashop.com/forums/forum/235-job-offers/ . Note that forum main purpose is to help in these cases so depending on error you get after debug mode members could help you out and solve issue.
  22. Hi and welcome to the forum. Please check this link https://devdocs.prestashop.com/1.7/basics/installation/system-requirements/#php-compatibility-chart where you can see that PHP 8 is not yet supported. But you should be fine with 7.3 or 7.4.
  23. Thank you for sharing link. Your logo is more vertical oriented and you see there is lot of empty space below menu. Side-note, your log dimensions are huge, though image file is not that heavy. But you can reduce image by 50% at least. Now for mobile it is small because Classic theme is made for horizontal logos that fill nicely that space on mobile. And in theme styles height is limited to 50px. So that is reason why your logo is small. To adjust that you would have to change bit of styles. You can do that by editing custom.css in theme/assets folder and adding this code. /* * Custom code goes here. * A template should always ship with an empty custom.css */ @media (max-width: 767px) { #header .header-nav .top-logo { text-align: center; } #header .header-nav .top-logo a img { max-height: 170px; } } That should display image similar like in attachment. So centered and 170px. If you do not see changes clear PrestaShop and browser cache. Again note it takes lot of space, and pushes content down. So think maybe of alternative logo where text could be on side. Also there are lot of themes or layouts that do work with bigger vertical logos. Mostly centered and menu and links around it.
  24. Hi @danielsaar If I am not mistaken all code outside of block tag will be disregard. So think you would need something like {extends file='catalog/listing/product-list.tpl'} {block name='new_hello_world_block'} HALLO WORLD {/block} {block name='product_list_header'} {include file='catalog/_partials/category-header.tpl' listing=$listing category=$category} {/block} For documentation, it offers two ways, like titles says redefining whole template( that is code above). That way you can order blocks way you want. And other is extending same template with code like this maybe {extends file='parent:catalog/listing/category.tpl'} {block name='product_list_header'} HALLO WORLD {include file='catalog/_partials/category-header.tpl' listing=$listing category=$category} {/block} or also this may work but would add block after all other blocks in template {extends file='parent:catalog/listing/category.tpl'} {block name='new_hello_world_block'} HALLO WORLD {/block} This is all not tested but you can try and play with it.
  25. Hi Arthur Welcome to the forum and to PrestaShop. Nice to see you got hired even you are new to PrestaShop. About theme, do your bosses know how new theme should look like? Some requirements, or design ready? But in general, you will not loose data, so products, categories and most of modules will be there. New theme, in most cases come with lot of modules that are just part of theme, so you might get some of old theme modules changed/removed. You should backup and test, on some developer server. Parent/child theme is just in case you make slight changes to theme.
×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More