Posts by: juergen

Posts: 1480
Post: 11585
Topic: Adding script to title

Sometimes I should really read more carefully when the always excellent MDN says…

The Date.now() method returns the number of milliseconds elapsed since January 1, 1970 00:00:00 UTC.

… which means, when read carefully, since 1970/01/01 UTC *and not* since 1970/01/01 in UTC.

Other docs, namely the official specs rather put it this way:

Date.now();

The now function return a Number value that is the time value designating the UTC date and time of the occurrence of the call to now.

It is hard to bear in which enchanting beauty this sentence shines! Grrr ....

So, javascript's Date.now() gives the local time (in milliseconds) while PHP's time() gives the current UTC time (in microseconds).
Completely logical, isn't it? I'm pretty sure I got it once and for all. Well, at least until tomorrow morning.

Conclusion:
Spending too much time in a just UTC+1 time zone may convey a false sense of security, javascript-date-wise.

10 months ago
Post: 11584
Topic: Adding script to title
date_default_timezone_set("Pacific/Auckland");

That's for PHP only, it will have no influence on client-side JavaScript at all.

When I paste my latest version into the JS console on your site, it appears to work.I get my local time + 13 hours which only seems to work.
When I paste your version, I get my local time (currently ~ 22:30) and so do you (~ 10:30)

But we're getting closer…

<?php
$page->jQueryCode .= '

  CallAlistair = function(){

      var where_to_write = ".navbar-brand";

      var utc_time = Date.now();
      var utc_date = new Date(utc_time);
      var tz_offset = new Date(utc_time).getTimezoneOffset();
      var auckland_time = utc_time + (60000 * tz_offset) + (3600000 * 13);
      var auckland_date = new Date(auckland_time);
      var auckland_hours = auckland_date.getHours();
      // console.log(auckland_hours);

      if( auckland_hours > 8 && auckland_hours < 18 ){
          $(where_to_write).html(
            "TheHomeNZ Waihi Beach - "
            + "Call Alistair mobile +64211748741"
          );
        }else{
          $(where_to_write).html(
            "TheHomeNZ Waihi Beach - "
            + "Local Time: "
            + auckland_hours
            + ":"
            + (auckland_date.getMinutes() < 10 ? '0' : '')
            + auckland_date.getMinutes()
          );
        }
    };
  CallAlistair(); // immediate call
  setInterval(CallAlistair, 900000); // repeat every 15 minutes

';
?>

I can feel it ;)

Edited: 10 months ago
Post: 11582
Topic: Adding script to title

OK, I just debugged it on-site and changed a few things.

Please use this code:

<?php $page->jQueryCode .= '

  CallAlistair = function(){

      var where_to_write = ".navbar-brand";

      var utc_time = Date.now();
      var auckland_time = utc_time + (3600000 * 13);
      var auckland_date = new Date(auckland_time);
      var auckland_hours = auckland_date.getHours();
      // console.log(auckland_hours);

      if( auckland_hours > 8 && auckland_hours < 18 ){
          $(where_to_write).html(
            "TheHomeNZ Waihi Beach - "
            + "Call Alistair mobile +64211748741"
          );
        }else{
          $(where_to_write).html(
            "TheHomeNZ Waihi Beach - "
            + "Local Time: "
            + auckland_hours
            + ":"
            + (auckland_date.getMinutes() < 10 ? '0' : '') 
            + auckland_date.getMinutes()
          );
        }
    };
  CallAlistair(); // immediate call
  setInterval(CallAlistair, 900000); // repeat every 15 minutes

'; 
?>

 

FYI:

    $(where_to_write).html(
      "Local Time: ".auckland_hours);
    }

In JavaScript, the concatenation operator is + (plus) while in in PHP it is . (dot)
In JS the dot operator is the "object property accessor".

Certainly the most common error when switching between PHP and JS.

10 months ago
Post: 11579
Topic: Adding script to title

Tried that ".navbar-brand" and ".title" and "title"

Too bad. With '.navbar-brand' and Bootswatch themes you should actually have seen a change. Hard to tell what went wrong.

… found under Settings/Config/General/Title

Well ... that's the server-side configuration value - we really should not change that value dynamically.
If we did, Googlebot and other crawlers could add it to their index based on their visit time. Then your phone number would appear very prominently in the search result lists. I think that's not what you want.


 

10 months ago
Post: 11577
Topic: Adding script to title
Try using '.navbar-brand' as selector string. But don't use the <a href=\'tel:+...>   </a> parts because this element is already a link.
10 months ago
Post: 11576
Topic: Adding script to title
What do you exactly mean with 'Title'?
10 months ago
Post: 11574
Topic: Adding script to title

Sorry, probably definitely my fault.

Please change

$("where_to_write").html(
  ...
);

to

$(where_to_write).html(
  ...
);

in the script code (both occurences). I should actually test my code before posting.

(I edited my post in this regard)
(now tested and working)

Edited: 10 months ago
Post: 11570
Topic: a plugin that compress/optimize html data cached

Oops, I just checked your website uralshpala.ru (In fact I should have checked earlier)

Unfortunately you aren't using Apache but nginx, so my .htaccess example will not work.
With nginx, cache control headers are set in the host configuration (via $sent_http_content_type and $expires map).
You will hopefully have settings for that in your webhost's control panel.

The good news is that gzip compression is enabled on your host.

10 months ago
Post: 11569
Topic: Adding script to title

No, the script doesn't have to be there.
We can change the content of any DOM node from anywhere.

I'd do it this way:

Open your template.php file (probably [typesetter installation root]/themes/Bootswatch_Scss/template.php)

paste this code at the very end of the file

<?php
  $page->jQueryCode .= '

    if( isadmin ){
      return; // don\'t manipulate page content when logged in, otherwise it might get saved.
    }

    CallAlistair = function(){

      var where_to_write = ".my_selector";

      var utc_time = Date.UTC();
      var auckland_time = utc_time + (3600000 * 13);
      var auckland_hours = new Date(auckland_time).getHours();
        if( auckland_hours > 8 && auckland_hours < 18 ){
          $(where_to_write).html(
            "Call Alistair on <a href=\'tel:+64123456789\'>+64 123 456 789</a>"
          );
        }else{
          $(where_to_write).html(
            "Dare not call Alistair right now! ;o)"
          );
        }
    };

    CallAlistair(); // immediate call
    setInterval(CallAlistair, 900000); // repeat every 15 minutes
  ';
?>

.my-selector is the selector identifying the DOM node where JS will write the message.

If you really want to change the browser <title> element (= the text of the current tab), the selector will actually be 'title'.
In this case you will have to omit the <a ...></a> tag, which is not possible in the <title> element

If you want to write, let's say, to a heading somewhere in the page content, edit the section and change CKEditor to Source mode.
Add <h2 class="call-me-message-area">&nbsp;</h2> where you want it.
Use '.call-me-message-area' as selector in the script.

Save template.php and log out of Typesetter (or use a 2nd private window) to see the result.

 

 

Edited: 10 months ago
Post: 11568
Topic: a plugin that compress/optimize html data cached

For compression:

Nowadays web servers should have either mod_gzip or mod_deflate installed. Ask your service provider if in doubt.

If server-side output compression is not available, Typesetter will compress html output using PHP, but it won't compress static assets.

10 months ago

News

elFinder 2.1.50 in Upcoming Release
12/28/2019

A new release for Typesetter is in the works with a lot of improvements including the ... Read More

Typesetter 5.1
8/12/2017

Typesetter 5.1 is now available for download. 5.1 includes bug fixes, UI/UX improvements, ... Read More

More News

creisi productions

Dienstleistungen von creisi productions, Luzern (Schweiz): * Konzeption, Planung und Erstellung Ihres Internet-Auftritts * Betreuung und Aktualisierung/Pflege Ihrer Website * ...

Find out more about our Provider Spotlight

Log In

  Register