ilch Forum » Allgemein » HTML, PHP, SQL,... » Kalender Kategorien einrichten?

Geschlossen
  1. #1
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    167
    Beitragswertungen
    2 Beitragspunkte
    Hallo Leute,

    besteht die Möglichkeit im Kalender Kategorien zu erstellen? Habe hier im Forum und bei den Modulen nichts passendes gefunden. Vieleicht hat schon mal jemand etwas ähnliches geschrieben.

    MfG
    heinz2

    betroffene Homepage: fischerfreunde-haimhausen.de
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    FeTTsack Hall Of Fame
    Registriert seit
    27.06.2012
    Beiträge
    188
    Beitragswertungen
    26 Beitragspunkte
    Im Standard nicht möglich.

    mir ist auch kein Modul bekannt... aber vielleicht jemand anderem lächeln

    lg fetti


    ----
    was mir so einfällt, was man vielleicht auf die schnelle machen könnte...
    man kann die Gruppensicht auf die Einträge missbrauchen, wenn man diese nicht benötigt.

    Dafür müsste man nur die Anzeige beim Kalender anpassen, dass die gid nicht entscheidet wer es sieht, sondern wie es angezeigt wird.
    Müsste man nur hart im Code einbinden, was für Kategorien dies sind, weil es keine lookup-tabelle dafür gibt.

    Aber so könnte man es schnell lösen und hat automatisch 9 Kategorien und müsste im Adminbereich usw. eigentlich nichts ändern.


    lg fetti


    Zuletzt modifiziert von FeTTsack am 25.01.2016 - 22:29:43
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    167
    Beitragswertungen
    2 Beitragspunkte
    Hallo,

    so, ich habe mir erst einmal in der Datenbank Tabelle Kalender ein Feld eingefügt "TINYINT", Länge1, Standart "0" mit der Massgabe; Wenn Jugend dann steht hier eine "1" drin sonst "0". Die kalender.php und kalender.htm aus "contens" und "templates" habe ich kopiert und "kalenderjugend.php bzw kalenderjugend.htm benannt. In einer test.php kann ich selektieren
    // 
    $sql = "SELECT * FROM `ic1_kalender` WHERE jugend = 1";
    Das funktioniert.
    Mein Code in der kalenderjugend.php zum abfragen der daten ist:
    $result = db_query("SELECT *
        FROM prefix_kalender
        WHERE ((time >= ".$where1." AND time < ".$where2.") OR id = ".$eid.")
        AND ".$_SESSION['authright']." AND jugend <= recht
        ORDER BY time LIMIT 200");
    .
    Es werden die Datensätze nicht angezeigt wo Jugend eine "1" hat in der Tabelle. Meine Frage: Was habe ich falsch oder vergessen? Es sollten nur die Datensätze angezeigt werden die eine "1" stehen haben und nicht die mit der "0".

    MfG heinz2
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    recht ist das Grundrecht, also 0, -1, -2 usw, und da alle Grundrechte <= 0 sind, ist jugend (0) <= recht (-9 bis 0), nur im Falle von "sichtbar für Gast" mal richtig, aber nie mit jugend (1).

    Wenn du schon 2 Kalenderdateien gemacht hast, dann einfach in die eine AND jugend = 0 und die andere AND jugend = 1 einfügen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    167
    Beitragswertungen
    2 Beitragspunkte
    Hallo Mairu,

    Habe AND jugend = 1 eingetragen und meine Ausgabe im Jugendkalender beinhaltet nun nur die Jugendtermine. So war auch mein Wunsch. Ich bedanke mich für die Hilfe. Die entsprechenden Einträge habe ich in PHPMYADMIN erledigt.

    kann doch nicht geschlossen werden.

    Noch eine Frage:
    meine kalender.php im Adminverzeichnis habe ich erweitert und doch wird mir das Feld "jugend" in der Tabelle (wie oben beschrieben) nicht ausgefüllt.
    Hier mal meie modifizierte kalender.php aus dem Adminverzeichnis:
    <?php
    # Kalender Script © by Nickel
    # ueberarbeitet von Manuel
    
    defined ('main') or die ( 'no direct access' );
    defined ('admin') or die ( 'only admin access' );
    
    # Funktionen
    function XAJAX_showCalendar ($m,$j,$f) {
      if (empty($m)) { $m = date('n'); }
      if (empty($j)) { $j = date('Y'); }
    
      $objResponse = new xajaxResponse();
    
      $content = '<table border="0" cellpadding="1" cellspacing="1" class="border"><tr><td class="Cnorm"><a href="javascript:close'.$f.'();">schliessen</a></td></tr></table>';
      $content .= getCalendar($m, $j, 'javascript:void(0);" onclick="set'.$f.'(\'{jahr}-{mon}-{tag}\')', 'javascript:void(0);" onclick="xajax_XAJAX_showCalendar({mon},{jahr},\''.$f.'\')', '');
    
      $objResponse->assign('skalender'.$f, 'style.display', 'block' );
      $objResponse->assign('skalender'.$f, 'innerHTML', $content);
    
      # return object
      return $objResponse;
    }
    
    function checkzyklusins ($x,$i0,$i1,$i2,$z,$sar) {
      $ts = mktime(0,0,0,$i1,$i2,$i0);
      $wt = date('w',$ts);
      if ($z == 'wer' AND ($wt > 0 AND $wt < 6)) {
        return (true);
      } elseif ($z == 'wek' AND ($wt == 0 OR $wt == 6)) {
        return (true);
      } elseif ($z == 'woc' AND (($x % 7) == 1)) {
        return (true);
      } elseif ($z == '14t' AND (($x % 14) == 1)) {
        return (true);
      } elseif ($z == 'mon' AND ($i2 == $sar[2])) {
        return (true);
      } elseif ($z == 'jae' AND ($i1 == $sar[1] AND $i2 == $sar[2])) {
        return (true);
      }
    
      return (false);
    }
    
    function zyklusinsert ($sar,$ear,$z) {
      $x = 1;
      $first_id = 0;
      for($i0=$sar[0];$i0<=$ear[0];$i0++) {
        $sm = 1;
        $em = 12;
        if ($sar[0] == $i0) { $sm = $sar[1]; }
        if ($ear[0] == $i0) { $em = $ear[1]; }
        for($i1=$sm;$i1<=$em;$i1++) {
          $st = 1;
          $et = date('t', mktime (0,0,0,$i1,1,$i0));
          if ($sar[0] == $i0 AND $sar[1] == $i1) { $st = $sar[2]; }
          if ($ear[0] == $i0 AND $ear[1] == $i1) { $et = $ear[2]; }
          for($i2=$st;$i2<=$et;$i2++) {
            if (checkzyklusins ($x,$i0,$i1,$i2,$z,$sar)) {
              $time = mktime ($_POST['stunde'], $_POST['minute'],0,$i1,$i2,$i0);
              db_query("INSERT INTO `prefix_kalender` (time,gid,title,jugend,text,recht) VALUES (".$time.",".$first_id.",'".escape($_POST['title'], 'string')."','".escape($_POST['jugend'], 'string')."','".escape($_POST['txt'],'string')."','".escape($_POST['recht'], 'integer')."')");
              if ($first_id == 0) {
                $first_id = db_last_id();
                db_query("UPDATE prefix_kalender SET gid = ".$first_id." WHERE id = ".$first_id);
              }
            }
            $x++;
          }
        }
      }
    }
    
    # AJAX Start
    $xajax = new xajax('http://'.$_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"].'?kalender=0');
    $xajax->registerFunction("XAJAX_showCalendar");
    $xajax->processRequest();
    
    # DESIGN
    $design = new design ( 'Admins Area', 'Admins Area', 2 );
    $design->header();
    
    # AJAX ausgabe
    echo $xajax->printJavascript();
    
    if (!empty($_REQUEST['um'])) {
      $sar   = explode('-',$_POST['begind']);
      if (!@checkdate ($sar[1], $sar[2], $sar[0])) {
        echo 'Das eingegebene Datum ist nicht g&uuml;ltig ';
        echo '<a href="javascript:history.back()">zur&uuml;ck</a>';
        $design->footer(1);
      }
      if (!empty($_POST['zende'])) {
        $ear   = explode('-',$_POST['zende']);
        if (!@checkdate ($ear[1], $ear[2], $ear[0])) {
          echo 'Das eingegebene Datum f&uuml;r das Zyklusende ist nicht g&uuml;ltig ';
          echo '<a href="javascript:history.back()">zur&uuml;ck</a>';
          $design->footer(1);
        }
      }
      $z    = '';
      if (isset($_POST['zyklus'])) {
        $z  = $_POST['zyklus'];
      }
      $text = escape($_POST['txt'], 'string');
    
      $time = mktime ($_POST['stunde'], $_POST['minute'],0,$sar[1],$sar[2],$sar[0]);
    
    	// Einfuegen                                                                                                                                                                 °
      if ($_REQUEST['um'] == 'insert') {
        if (!empty($z)) {
          zyklusinsert ($sar,$ear,$z,$_POST);
        } else {
          db_query("INSERT INTO `prefix_kalender` (time,title,text,recht) VALUES (".$time.",'".escape($_POST['title'], 'string')."','".$text."','".escape($_POST['recht'], 'integer')."')");
        }
    
      // Aendern
    	} elseif ($_REQUEST['um'] == 'change') {
    
        if (isset($_POST['gid']) AND $_POST['gid'] == 'yes') {
          $gid1 = db_result(db_query("SELECT gid FROM prefix_kalender WHERE id = ".escape($_POST['EID'], 'integer')),0,0);
        }
    
        if (isset($_POST['gid']) AND $_POST['gid'] == 'yes' AND $gid1 > 0) {
          $_POST['title'] = escape($_POST['title'], 'string');
          $_POST['recht'] = escape($_POST['recht'], 'integer');
          db_query("UPDATE `prefix_kalender` SET
    				  title	= '".$_POST['title']."',
    				  jugend ='".$_POST['jugend']."',
    				  text	= '".$text."',
    				  recht	= '".$_POST['recht']."'
    			  WHERE gid = ".$gid1);
        } else {
          db_query("UPDATE `prefix_kalender` SET
    			  	time	= '".$time."',
    				  title	= '".$_POST['title']."',
    				  jugend ='".$_POST['jugend']."',
    				  text	= '".$text."',
    				  recht	= '".$_POST['recht']."'
    			  WHERE id = ".$_POST['EID']." LIMIT 1");
        }
    	}
    }
    
    //Loeschen
    if (!empty($_GET['del']) AND $_GET['del'] == intval($_GET['del'])) {
    	db_query("DELETE FROM `prefix_kalender` WHERE id = ".escape($_GET['del'], 'integer')." LIMIT 1");
    }
    if (!empty($_GET['del_gid']) AND $_GET['del_gid'] == intval ($_GET['del_gid'])) {
      db_query("DELETE FROM prefix_kalender WHERE gid = ".escape($_GET['del_gid'], 'integer'));
    }
    
    //-----------------------------------------------------------|
    
    
    
    if (isset($_GET['edit'])) {
    	$row = db_fetch_assoc(db_query("SELECT * FROM `prefix_kalender` WHERE id = ".escape($_GET['edit'], 'integer')));
    	$Faktion	= 'change';
    	$Fid		= $row['id'];
    	$Ftitle		= $row['title'];
    	$Fjugend    = $row['jugend'];
    	$Ftext		= unescape($row['text']);
    	$Fbegind	= date('Y-n-j',$row['time']);
      $Fzende   = $Fbegind;
    	$Fhours		= date('G',$row['time']);
    	$Fmins		= date('i',$row['time']);
    	$Frecht	= $row['recht'];
    	$Fsub		= '&Auml;ndern';
    } else {
    	$pubdate = getdate();
    	$Faktion	= 'insert';
    	$Fid		= '';
    	$Ftitle		= '';
    	$Fjugend    = '';
    	$Ftext		= '';
      $Fbegind	= date('Y-n-j');
      $Fzende   = $Fbegind;
    	$Fhours		= $pubdate['hours'];
    	$Fmins		= $pubdate['minutes'];
    	$Fgrecht	= '';
    	$Frecht	= '';
    	$Fsub		= 'Eintragen';
    }
    
    $arm = array (); for($i=0;$i<60;$i++){$arm[$i]=$i;}
    $ars = array (); for($i=0;$i<24;$i++){$ars[$i]=$i;}
    
    $tpl = new tpl ( 'kalender.htm', 1 );
    
    $limit = 30;  // Limit
    $page = ($menu->getA(1) == 'p' ? $menu->getE(1) : 1 );
    $MPL = db_make_sites ($page , '' , $limit , "?kalender" , 'kalender' );
    $anfang = ($page - 1) * $limit;
    
    $aus = array(
    	'AKTION'	=> $Faktion,
    	'MPL'		=> $MPL,
    	'EID'		=> $Fid,
    	'TITLE'		=> $Ftitle,
    	'TEXT'		=> $Ftext,
    	'JUGEND'    => $Fjugend,
    	'stunden'		=> arliste($Fhours,$ars,$tpl,'stunden'),
    	'minuten'	=> arliste($Fmins,$arm,$tpl,'minuten'),
      'zende'   => $Fzende,
      'begind'  => $Fbegind,
    	'recht'  	=> dbliste($Frecht,$tpl,'recht',"SELECT id,name FROM prefix_grundrechte ORDER BY id DESC"),
    	'FSUB'		=> $Fsub
    );
    
    $tpl->set_ar_out($aus,0);
    if (!isset($_GET['edit'])) {
      $tpl->out(1);
    } else {
      $tpl->out(2);
    }
    $tpl->out(3);
    unset($aus);
    
    //Liste
    
    
    $result = db_query('SELECT gid,id,title,time,jugend FROM `prefix_kalender` ORDER BY time DESC LIMIT '.$anfang.','.$limit);
    while ($row = db_fetch_assoc($result)) {
    	$aus = array(
    		'ID'	=> $row['id'],
    		'DATE'	=> date('d.m.Y',$row['time']),
    		'TIME'	=> date('H:i',$row['time']),
    		'TITLE'	=> $row['title'],
            'JUGEND'  => $row['jugend'],
        'GID' => $row['gid']
    	);
    	$tpl->set_ar_out($aus, 4);
    }
    
    $tpl->set_ar_out(array('MPL' => $MPL ), 5);
    
    
    $design->footer();
    ?>

    vieleicht kann mal jemand darüber schauen und mir meinen Fehler zeigen.

    Habs gelöst,

    kann geschlossen werden

    MfG heinz2


    Zuletzt modifiziert von heinz2 am 30.01.2016 - 08:50:51
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten