responsive (css) menu

I have successfully used for several years a pure css menu, without javascript. But the problem now is that it is not enough reponsible with mobile devices. I mean that the maximum that can it be asked is to show (correctly) the main entries (disabling the drop-down from them).

I tried the new release of that css menu : but the main problem of this new, and responsive release (with some aiax script, though) it that by clicking on the hamburger icon all menu levels are shown. And If you have more than 50 entries it is a too long list.

To get a drop-down pure css reponsive menu, because of the limits of our current browsers, it is necessary use input and label tags (in a terrible: non-sematic way). This is the way of this attempt: no bad (no js, only css and that trick), but very hard to import in a previous menu.

Another attempt was following an example of collapsible responsive menu w3cschools: a code very simple and lovable, so to say, but here too: very difficult import in a previous, complex, menu.

php show a content in a given period of the year

You can use a very simple php code, f.e. for Christmas and Happy New Year greetings:

<?php 
$dataattuale = date('m-d');
$inizioauguri = date('m-d', strtotime("11/13"));
$finauguri = date('m-d', strtotime("01/10"));  
if (($dataattuale >= $inizioauguri) && ($finauguri <= $finauguri))
{include "$root/natalizio.php";} 
?>

The above code show the content of natalizio.php (in root folder) from November 13th to January 10th.

Another example

$now = date('Y-m-d');
$end = date('2024-07-15');  
if ($now <= $end)
{echo "some text";}

open-source cookie-bar solution

I found this very interesting and simple script: cookie-bar, customizable very easily here.

Unfortunately I didn’t manage to save and use that (free) javascript in local. No jquey, no css, a very short code.

The only thing you have to do is personalize the code within you have what you want hide if your visitor refuse your cookies.

The code should be something like the following:

<?php
 if ((isset($_COOKIE['cookiebar'])))
    {
    echo " [whatever you want";
    }
 else
    {
    echo "<div class=\"what-you-want\">to see this content accept our cookie policy.</div>";
    }
?>

update remote wordpress from localhost

Migrate DB is a good tool, even in its free version. You can follow these steps:

  • create a database in remote and import there the local wordpress database, changing some data with Migrate DB (tipically you have to convert the local server path https://localhost/your-local-path/wordpress to //your-remote-path/wordpress, and the local absolute path (such as /mnt/your-PC-path/wordpress) to the remote absolute path (such as https://your-remote-path/wordpress);
  • upload the local wordpress folder to your remote website, via FTP;
  • change in the uploaded folder the wp-config.php file, according to the db user, db name and db server of the remote wordpres database;
  • go to the remote wordpress, login (user and password are identical to the your local wordpress ones), and go to Migrate DB -> settings, and there -> generate/reset API key, copy the 32 char key and paste it in the local Migrate DB push box.
  • So your connection should work, syncing the remote database with the local one.

A problem could arise using Wordfence Security: to update with MigrateDB, you could have to disable temporarliy Wordfence.

embed a playlist in a web page

After many attempts I finally figured taht it’s impossible embed an audio playlist (such as m3u) to a webpage: you can add only multiple (audio) files, but not a playlist.

I tried with the <audio> tag: nothing to to, even with jquery or javascript. Neither with <embed> or <object> html tags: html developers allow only a single audio playing, not a playlist.

The mimetype “audio/x-mpegurl” doesn’t work.

svg rounded corner and shadow

shadow (like css shadow-box)

At least with Firefox you can use a filter, like the following:

.shadow{filter: drop-shadow(8px 6px 6px gray);}

rounded corner

The simplest way to round the corners of a box is to

  • use rect element with rx and ry attributes (such as rx="20" ry="20")
  • and define the style of rect with stroke-linejoin:round; and something like stroke:[your color]; stroke-width:[the width you like];

You can see the following example

box rounded

php list and link folder’s files

an old way

There is an old way, the following:

<?php
     $path = "./";
     $narray=array();
     $dir_handle = @opendir($path) or die("Unable to open $path");
     echo "";
     $i=0;
     while($file = readdir($dir_handle))
     {
     if($file != '.' && $file != '..' && $file != 'index.php' && $file != 'normal.inc')
     {
     //echo "<a href='$path/$file'>$file</a><br/>";
     $narray[$i]=$file;
     $i++;
     }
     }
     sort($narray);

	   echo "<ul>";	            
     for($i=0; $i<sizeof($narray); $i++)
	   {
	    $filename = str_replace(".html", "", $narray[$i]) & str_replace(".php", "", $narray[$i]);
	   echo "<li><a href='$path$narray[$i]'>$filename</a></li>";
	   }
	   
	   echo "</ul>";
	   //closing the directory
	   closedir($dir_handle);
?>

a new way: glob

<?php
	   echo "<ul>";	  
$phpfiles = glob("[^index]*.php");
foreach ($phpfiles as $phpfile){
     echo '<li><a href="'.$phpfile.'">'.pathinfo($phpfile, PATHINFO_FILENAME).'</a></li>'; 
}	   
	   echo "</ul>";
?>

as you can see, the code is much simpler.

  • With this code: glob(“[^index]*.php”) we have set to list all php files except index.php.
  • with this other: ‘.pathinfo($phpfile, PATHINFO_FILENAME).’ we have set to show only filenames without extension

of course we could set a subfolder as well, with a code like the following:

$phpfiles = glob("[subfolder-name]/[^index]*.php");

php/msql keywords as hashtags

php separate all items in a mysql field

You can use the explode syntax, as in the following exapmple:

$keywords = $row['keywords'];
foreach (explode(',', $keywords) as $key) {
    echo "<span><a href="\hashtag.php?tag=$key\">{$key}</a></span>";
}

In the example we have a mysql field (keywords) with many items comma separated (such as : “truth, soul, body, mind” and so on).

And we obtain to have as many links from each item toward a specific target, as they are (that is: 3 links if you have 3 items, 7 links fi you have 7 ones).

In this way you can get a system of hashtags for your database keywords.

other steps

You need another file, let we call them hashtag.php.

The content of hashtag.php could be something like:

<?php  
 //hashtag.php  
 if(isset($_GET["tag"]))  
 {  
      $tag = preg_replace('/(?<!\S)#([0-9a-zA-Z]+)/', '', $_GET["tag"]);

//to beautify and stylize, but not necessary BEGIN
      $title=$tag;
      include "$root/intell/header-intell.inc";      
//to beautify and stylize, but not necessary END      

      $connect = mysqli_connect("localhost", "[mysql user]", "[mysql password]", "[mysql database]");  
      
      mysqli_set_charset($connect, 'utf8mb4');  // procedural style
      
      $query = "SELECT * FROM [your table] WHERE [your fields with tags] LIKE '%".$tag."%';  
      $result = mysqli_query($connect, $query);  
      if(mysqli_num_rows($result) > 0)  
      {  
           while($row = mysqli_fetch_array($result))  
           {  
                echo "<h2>$row[title]</h2>
                <blockquote><p>$row[text]</p></blockquote>
                <p><i>$row[author]</i><br />";
                $keywords = $row['keywords'];
                foreach (explode(',', $keywords) as $key) {
                if(trim($row["keywords"])==''){echo "";} else{echo "<span><a href=\"hashtag.php?tag=$key\">{$key}</a></span>";}
                }
                echo "</p>";
           }  
      }  
      else  
      {  
           echo '<p>No Data Found</p>';  
      }  
 }  
 ?>  

Afterwards obviously you could adjust the css according to your needs.

Of course you can have as many other php files as you want, where you usually store you database content, in which you can add the kewwords as hashtags, with a code like the following:

echo "</p><p class=\"keywords\">";
$keywords = $row['keywords'];
foreach (explode(',', $keywords) as $key) {
    if(trim($row["keywords"])==''){echo "";} else{echo "<span><a href=\"hashtag.php?tag=$key\">{$key}</a></span>";}
}
echo "</p>";}