Add Google Business Hours to Joomla

I was wondering how to do this and never got it working till today. I wanted this in the footer of Joomla site running Gantry 5 template. Regular Labs Sourcer plugin was already installed. This will allow me to add some PHP in a Custom HTML module, and put the code in the footer position. Here was the code that was needed.

<?php
    $curlURL = 'https://www.google.com/maps/search/?api=1&query=Google&query_place_id=ENTER_PLACE_ID_HERE';
    $curl = curl_init($curlURL);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1 );
    $response=curl_exec( $curl );
    for($i=0;$i<7;$i++){
        $day = jddayofweek($i,1);
        $start=stripos($response,'[\"'.$day.'\",')+strlen($day)+9;
        echo($day.": ".substr($response,$start,stripos($response,'\"]',$start)-$start)."<br />");
    }
?>

I got this from the following link:

https://webmasters.stackexchange.com/questions/103058/is-it-possible-to-show-the-hours-from-google-maps-on-a-website-so-that-the-webs

To get our Company business ID we used the following link.

https://developers.google.com/places/web-service/place-id

I typed in our business name, found our listing, and when I clicked on the red location arrow I got our business listing ID. Everything worked but the hours weren’t quite right. As I messed with it to get it right I suddenly started getting a different error.

302 Moved
The document has moved here.
Wednesday: http-equiv="content-type" content="text/html;charset=utf-8"> 

This error happens now due to too many requests. Going to give it some time to see if I can get it worked out from a different IP or wait a day or two.

After a couple of days I ended up putting a PHP file with the code above in the templates/hydrogen/html folder and using Sourcer plugin to “include” the code into a custom HTML module. This worked perfectly.

I hope this helps someone else out there…

Joomla Change Email Text To New User

I wanted to redirect the new user sign up to a specific page and not the main site URL. I was frustrated in the process at first; however, really enjoyed the flexibility of Language Overrides in Joomla. I read a couple of articles and just didn’t get it till I read this post and went through the process.

https://forum.joomla.org/viewtopic.php?t=953986

Of course Joomla documentation on this is a good read as well.

https://docs.joomla.org/J3.x:Language_Overrides_in_Joomla

I was using a Gantry template and in order to get the process to look the way I wanted it I needed to revise my .yaml file for the home page, and move the default “Message” and “Content” particles to a new layout.

When the user got to the screen where they needed to change their password, and changed it I wanted to redirect them back the employee portal page. The following article helped me figure this out.

https://forum.joomla.org/viewtopic.php?t=813714

I ended up changing the “<joomla-root>/components/com_users/controllers/profile.php” line 225. I set the URL to the NON-Search Engine friendly link. The line ended up changing from
“$redirect = ‘index.php?option=com_users&view=profile&user_id=’ . $return;”

to

“$redirect = ‘index.php?option=com_content&view=article&id=19&Itemid=149’;”, which was the page for the portal.

I hope this helps someone else out there…

Tassos Marinos Joomla Developer

I have come across this developer’s stuff a couple of times, but never really appreciated his contributions to the community. He has a plug-in called EngageBox that is so much fun to put on a site. Check it out here.

https://www.tassos.gr/joomla-extensions/engagebox

He also gives in depth process for Google’s Structured Data that is overwhelming at first but very informative. Check that out here.

https://www.tassos.gr/joomla-extensions/google-structured-data-markup/docs/how-to-add-structured-data-to-pages

I hope this helps someone else out there…

To ensure seemless working with Virtuemart

I wanted to test out using Virtuemart on a Joomla install as a inventory program. When I tried to install from the web from within Joomla I got the following error.

I tried to just download and install that way, but I got the same error. If I actually read the error I would have figured out the the fix.

  • Go to System >> Global Configuration
  • Go to the Server tab and in the “Database Setting” change the “Database Type” to “MySQLi”.

I hope this helps someone else out there….

Disconnect Connect Sound Monitor in Sleep

I was getting the annoying hardware connect sound and then hardware disconnect sound repeatedly every 7 seconds or so on my Windows 10 machine when the monitor went into sleep mode. I messed with the sound settings and sleep mode, but didn’t get it stop doing it. I was able to fix it from this thread.

https://answers.microsoft.com/en-us/windows/forum/windows_7-hardware/monitor-sleep-mode-makes-computer-play-device/6078084f-a8d0-4e69-bdcc-fe71948df681

The answer turned out to be the monitor. I have dual monitors. One is a Samsung TV and the other is a I-INC. It turned out to be the I-INC monitor. On the monitor go into its menu and set the input of the DVI to not be auto.

I hope this helps someone else out there…

Gantry Adding ARIA Labels

This all started with running an accessibility test on a website I run and discovered I could do more to improve the site’s ADA. I used the following tool to start the process.

https://wave.webaim.org/report#/https://www.scdit.com/#null

This showed me my Drop-Down or Flyout menu in Gantry Hydrogen template didn’t allow for tabbing and also didn’t have a ARIA-Label. I thought it would be good to add them, but couldn’t find where to put them. I did a search and found this article.

https://github.com/gantry/gantry5/issues/1888

I could find the file “menu.html.twig“, but eventually found it here at this path “site root/media/gantry5/engines/nucleus/particles/“.

Here is another article discussing this topic in the Joomla core.

https://pbwebdev.com/blog/adding-wai-aria-landmarks-to-joomla

Here is an article for adding ARIA Label to a dropdown menu item.

https://www.w3.org/WAI/tutorials/menus/flyout/

In the end I was able to accomplish what I wanted by doing this:

  • Find and open the “menu.html.twig” file
  • Around line 44 add the following:
    {% set arialabel = ‘ aria-label=”‘ ~ item.link_title|default(item.title)|e ~ ‘”‘ %}
  • Around line 81 add the following to start of this line:
    <li {{ arialabel }} class=”g-menu-item g-menu-item-type-{{ item.type }}

DO NOT USE THE ABOVE METHOD:
This method got completely erased with a Gantry update. After playing around I discovered Gantry makes it really easy. See the steps below

  • In Gantry click on Menu at the top, and then click on the gear in the upper right of the menu item. You have to have your cursor over the menu item to see the gear.
  • Then in the “List Tag Attributes” section type in “aria-label” on the left side and then what it is you want the link to indicate it is for on the right side. You can have spaces in the tag.
  • It will end up looking like this:

I hope this helps someone else out there….

Joomla – Mail delivery failed: returning message to sender

I started getting emails several times a day from a customer’s website. The whole message was :

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

Oleg240170@mail.ru
    host mxs.mail.ru [94.100.180.104]
    SMTP error from remote mail server after end of data:
    550 spam message rejected. Please visit http://help.mail.ru/notspam-support/id?c=4-MIiXod8zc7sHtw55eQjviDdemyJDJvBOiPJah130hjLxCvG-FjARUAAADt5QAA44RPJw~~ or  report details to abuse@corp.mail.ru. Error code:
    8908E3E337F31D7A707BB03B8E9097E7E97583F86F3224B2258FE80448DF75A8AF102F630163E11B. ID:
    000000150000E5ED274F84E3.
Reporting-MTA: dns; se15.mailspamprotection.com

Action: failed
Final-Recipient: rfc822;Oleg240170@mail.ru
Status: 5.0.0
Remote-MTA: dns; mxs.mail.ru
Diagnostic-Code: smtp; 550 spam message rejected. Please visit http://help.mail.ru/notspam-support/id?c=4-MIiXod8zc7sHtw55eQjviDdemyJDJvBOiPJah130hjLxCvG-FjARUAAADt5QAA44RPJw~~ or  report details to abuse@corp.mail.ru. Error code: 8908E3E337F31D7A707BB03B8E9097E7E97583F86F3224B2258FE80448DF75A8AF102F630163E11B. ID: 000000150000E5ED274F84E3.

SubjectAccount Details for Чтоб перестроить жизнь, необходимы познания: https://drive.google.com/file/d/16WCSDEeBboOGGsZoHYaYAKoKVAtD8lmh/view?usp=sharing 📅🎊🔝 at Shockers Smoke Shop
FromShockers Smoke Shop
ToOleg240170@mail.ru
DateMon 21:01

Hello Чтоб перестроить жизнь, необходимы познания:
https://drive.google.com/file/d/16WCSDEeBboOGGsZoHYaYAKoKVAtD8lmh/view?usp=sharing

I contacted the hosting company to see if the email portion is being blasted with emails, but it wasn’t. I really didn’t want the customer to be getting these emails. Plus I didn’t want the domain becoming black listed. The hosting was eliminated as an issue.

I solved it by discovering I left the Self Registration on. Russian attackers were trying to Phish the site linking to MalWare on a Google Share. I found about 200 users tried to register, and they were all Russian. Here is what my settings were:

I hope this helps someone else out there….

Akeeba WordPress Site – Error Connecting to Database

I have done this a million times; however, today it ain’t working. I have a new wordpress site and Akeeba backup. Everything is the latest and greatest. When I used Kickstart to move the site to new hosting I get “Error Connecting to Database”.

There was a message to repair the database so I clicked link and got this page.

https://api.wordpress.org/secret-key/1.1/salt/

It wants to add the “secrets” in the config.php file with the values that this links provide. Well this didn’t help my issue.

What solved my issue was to manually update the database with the following SQL statement.

UPDATE wp_options SET option_value = replace(option_value, 'http://localhost/wordpress', 'http://www.livesite.com/wordpress') WHERE option_name = 'home'OR option_name = 'siteurl';

This is just a sample and you replace my URLs with your URLs. This didn’t work on all the test sites, but it did work on 70% of them.

The solution was to make sure in the “wp_options” table make sure “siteurl” and “home” have the the site’s URL in there.

I hope this helps someone else out there…