Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777

    calendario e articoli in base al giorno

    salve ho trovato in giro per il web un codice che mi permette di costruire un calendario mensile e l'ho adattato alle mie esigenze che sono quelle di linkare il giorno verso gli articoli del sito di tale giorno.
    questo è il codice
    Codice PHP:
    <?
    function ShowCalendar($m,$y)
    {
      if ((!isset(
    $_GET['d']))||($_GET['d'] == ""))
      {
        
    $m date('n');
        
    $y date('Y');
      }else{
        
    $m = (int)strftime"%m" ,(int)$_GET['d']);
        
    $y = (int)strftime"%Y" ,(int)$_GET['d']);
        
    $m $m;
        
    $y $y;
      }
      
    $precedente mktime(000$m -11$y);
      
    $successivo mktime(000$m +11$y);
      
    $nomi_mesi = array(
        
    "Gennaio",
        
    "Febbraio",
        
    "Marzo",
        
    "Aprile",
        
    "Maggio",
        
    "Giugno"
        
    "Luglio",
        
    "Agosto",
        
    "Settembre",
        
    "Ottobre",
        
    "Novembre",
        
    "Dicembre"
      
    );
      
    $nomi_giorni = array(
        
    "L",
        
    "M",
        
    "M",
        
    "G",
        
    "V",
        
    "S",
        
    "D"
      
    );
      
    $cols 7;
      
    $days date("t",mktime(000$m1$y)); 
      
    $lunedidate("w",mktime(000$m1$y));
      if(
    $lunedi==0$lunedi 7;
      echo 
    "<table width=\"100%\">\n"
      echo 
    "<tr>\n
      <td colspan=\""
    .$cols."\">
      <a href=\"?d=" 
    $precedente "\"><<</a>
      <a href=\"
    $path/ricerca.php?search=bla\">" $nomi_mesi[$m-1] . " " $y "</a>
      <a href=\"?d=" 
    $successivo "\">>></a></td></tr>";
      foreach(
    $nomi_giorni as $v)
      {
        echo 
    "<td>[b]".$v."[/b]</td>\n";
      }
      echo 
    "</tr>";
      for(
    $j 1$j<$days+$lunedi$j++)
      {
        if(
    $j%$cols+1==0)
        {
          echo 
    "<tr>\n";
        }
        if(
    $j<$lunedi)
        {
          echo 
    "<td> </td>\n";
        }else{
          
    $day$j-($lunedi-1);
          
    $data strtotime(date($y."-".$m."-".$day));
          
    $oggi strtotime(date("Y-m-d"));
          
    $sql "SELECT titolo,id, DATE_FORMAT(datetime,'%Y-%m-%d') as datatime FROM articoli";
          
    $result mysql_query($sql) or die (mysql_error());
          if(
    mysql_num_rows($result) > 0)
          {
            while(
    $fetch mysql_fetch_array($result)){
            
    $titolo=$fetch['titolo'];
              
    $id=$fetch['id'];
              
    $str_data $fetch['datatime'];
              
    $str_datastrtotime($str_data);
            
                if (
    $str_data == $data){
                
    $day "<a href=\"$path/art/art.php?art=$id\" title=\"".ucfirst($titolo)."\" >$day</a>";
                }
             }
          }
          if(
    $data != $oggi)
          {
            echo 
    "<td>".$day."</td>";
          }else{
            echo 
    "<td>[b]".$day."[/b]</td>";
          }
        }
        if(
    $j%$cols==0)
        {
          echo 
    "</tr>";
        }
      }
      echo 
    "<tr></tr>";
      echo 
    "</table>";

     
    }
    ?>
    il codice va bene se devo postare un articolo al giorno. il link è diretto proprio verso la pagina dell'articolo.
    se c'è solo un articolo in quel giorno vorrei il link che ho messo attualmente
    se dovessi eccezionalmente pubblicare 2 o più articoli in un giorno, magari c'è un evento straordinario, vorrei che il link sia diretto alla mia pagina di ricerca.php con un link del tipo ricerca.php?date= in modo che mi posti i risultati dei due articoli. in title del link di quel giorno vorrei che comparissero i titoli di entrambi i titoli separati da virgola.
    come si potrebbe agire? ho fatto delle prove ma non ho ancora trovato il bandolo della matassa

  2. #2
    non puoi passargli la data invece che l'id?
    al posto di

    $day = "<a href=\"$path/art/art.php?art=$id\" title=\"".ucfirst($titolo)."\" >$day</a>";


    $day = "<a href=\"art.php?day=$str_data\">$day</a>";


    poi nella pagina art metti

    $sql = "SELECT * FROM articoli WHERE str_data=$day";
    Un tardo hegeliano di Busalla / allevava un gorilla nella stalla
    citando Adorno nell notti chiare / finché il primate stanco di ascoltare
    lo strangolò con una sciarpa gialla Dillo Con Parole Sue

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    ok però io vorrei che nel title del link del giorno sul calendario comparissero gli articoli scritti nello stesso giorno separati da virgola. in realtà non credo possa succedere che scriva due articoli lo stesso giorno ma se c'è questa possibilità vorrei far comparire il title del link in quel modo.
    se sono presenti più articoli quel giorno il link sarà diretto verso una pagina di ricerca.

    se invece è solo uno il link è diretto verso l'articolo
    questa è la mia intenzione
    posso dire quello che ho notato
    se scrivo echo $titolo dopo la condizione if str_data= day
    escono i titoli degli articoli del mese in corso
    mentre se inserisco nel title del link mi esce solo quello più recente nel giorno se eventualmente in quello stesso giorno ce n'è più di uno

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.