ilch Forum » Ilch Clan 1.1 » Module und Modifikationen » Kalender aktualsieren

Geschlossen
  1. #1
    User Pic
    CaptainJack Mitglied
    Registriert seit
    11.02.2010
    Beiträge
    519
    Beitragswertungen
    2 Beitragspunkte
    Hallo,

    ich habe im Kalender mehrere Termine eingesetzt welche ich gerne in der Box rechts angezeigt haben möchte.

    Doch die Box zeigt nicht die 2 aktuell anstehenden Termine an.

    Im Adminbereich finde ich keinen Bereich wo ich es einstellen kann.

    Ich finde hier im Forum dazu auch nichts was mir helfen kann.


    Geht das überhaupt das die Box immer die 2 aktuellsten Termine anzeigt?


    Hier mal die php der Box:

    <?php
    #   Copyright by Manuel
    #   Support www.ilch.de
     
     
    defined ('main') or die ( 'no direct access' );
    $monate = array(1=>"Januar",
                    2=>"Februar",
                    3=>"M&auml;rz",
                    4=>"April",
                    5=>"Mai",
                    6=>"Juni",
                    7=>"Juli",
                    8=>"August",
                    9=>"September",
                    10=>"Oktober",
                    11=>"November",
                    12=>"Dezember");
    $monat = date("n");
    $result = db_query("SELECT `id`, `time`, `title` , `ort` FROM `prefix_kalender` WHERE `time` >= ".mktime(0 ,0,0,date('n'),1,date('Y'))." AND  ".$_SESSION['authright']." <= `recht` ORDER BY `time` LIMIT 2");
    echo '<div>';
    while($erg=db_fetch_object($result)){
    echo '	<div id="terminbg">
    			<div id="datuma">
    				<div id="termin-monat" class="designfontsmall">'.$monate[$monat].'</div>
    				<div id="termin-tag" class="headueberschrift">'.date('d',$erg->time).'</div>
    			</div>
    			<div id="datumt">
    				<div id="termin-ueber" class="terminbox">'.((strlen($erg->title)<18) ? $erg->title : substr($erg->title,0,22).'...').'</div>
    				<div id="termin-ort" class="terminboxsmall">Wo: '.((strlen($erg->ort)<18) ? $erg->ort : substr($erg->ort,0,22).'...').' </div>
    				<div id="termin-ort" class="terminboxsmall">um '.date('H:i',$erg->time).' Uhr </div>
    			</div>
    			<div id="linkbutton"><a href="index.php?kalender-v0-e'.$erg->id.'">
    <img width="24" height="54" border="0" onmouseout="this.src=\'/include/designs/u-17/images/button/klicklink.png\'" onmouseover="this.src=\'/include/designs/u-17/images/button/klicklink-hover.png\'" src="/include/designs/u-17/images/button/klicklink.png"></a></div>
    		</div>';
    }
    echo '</div>';
     
    ?>
    <br />
    <div align="center"><a title='Hauptsponsor gesucht' href="index.php?contact" target="_blank"><img src="include/designs/u-17/images/hauptsponsor.png"  width="280" height="100" /></a>Bei Interesse bitte auf das Bild klicken</div>



    verwendete ilch Version: 1.1 P

    betroffene Homepage: whv-kicker.de/index.php?news
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Das mktime(0 ,0,0,date('n'),1,date('Y') steht die 1 für den ersten Tag im Monat, wenn da statt der 1 date('j') verwendest, nimmt er die ersten 2 Termine seit dem heutigem Tag.

    -> mktime(0, 0, 0, date('n'), date('j'), date('Y'))
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    CaptainJack Mitglied
    Registriert seit
    11.02.2010
    Beiträge
    519
    Beitragswertungen
    2 Beitragspunkte
    ZitatZitat geschrieben von Mairu
    Das mktime(0 ,0,0,date('n'),1,date('Y') steht die 1 für den ersten Tag im Monat, wenn da statt der 1 date('j') verwendest, nimmt er die ersten 2 Termine seit dem heutigem Tag.

    -> mktime(0, 0, 0, date('n'), date('j'), date('Y'))


    Vielen Dank Mairu.

    Jetzt klappt es.
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    FightClub Mitglied
    Registriert seit
    02.06.2013
    Beiträge
    196
    Beitragswertungen
    1 Beitragspunkte
    Hallo wenn ich es so einbaue kommt bei mir der Fehler:
    MySQL Error:
    1054 : Unknown column 'ort' in 'field list'
    in Query:
    SELECT `id`, `time`, `title` , `ort` FROM `ic1_kalender` WHERE `time` >= 1411250400 AND -9 <= `recht` ORDER BY `time` LIMIT 2
    Debug backtrace:
    	@ mysql.php:46 -- debug_bt()
    	@ mysql.php:64 -- db_check_error(...)
    	@ KalenderAktualsieren.php:20 -- db_query(...)
    	@ design.php:332 -- require_once(...)
    	@ design.php:254 -- design->get_boxcontent(...)
    	@ design.php:46 -- design->get_boxes(...)
    	@ news.php:9 -- design->design(...)
    	@ news.php:13 -- require_once(...)
    	@ index.php:40 -- require_once(...)


    und das ist die Kalender box php.
    <?php
    #   Copyright by Manuel
    #   Support www.ilch.de
      
      
    defined ('main') or die ( 'no direct access' );
    $monate = array(1=>"Januar",
                    2=>"Februar",
                    3=>"M&auml;rz",
                    4=>"April",
                    5=>"Mai",
                    6=>"Juni",
                    7=>"Juli",
                    8=>"August",
                    9=>"September",
                    10=>"Oktober",
                    11=>"November",
                    12=>"Dezember");
    $monat = date("n");
    $result = db_query("SELECT `id`, `time`, `title` , `ort` FROM `prefix_kalender` WHERE `time` >= ".mktime(0, 0, 0, date('n'), date('j'), date('Y'))." AND  ".$_SESSION['authright']." <= `recht` ORDER BY `time` LIMIT 2");
    echo '<div>';
    while($erg=db_fetch_object($result)){
    echo '  <div id="terminbg">
                <div id="datuma">
                    <div id="termin-monat" class="designfontsmall">'.$monate[$monat].'</div>
                    <div id="termin-tag" class="headueberschrift">'.date('d',$erg->time).'</div>
                </div>
                <div id="datumt">
                    <div id="termin-ueber" class="terminbox">'.((strlen($erg->title)<18) ? $erg->title : substr($erg->title,0,22).'...').'</div>
                    <div id="termin-ort" class="terminboxsmall">Wo: '.((strlen($erg->ort)<18) ? $erg->ort : substr($erg->ort,0,22).'...').' </div>
                    <div id="termin-ort" class="terminboxsmall">um '.date('H:i',$erg->time).' Uhr </div>
                </div>
                <div id="linkbutton"><a href="index.php?kalender-v0-e'.$erg->id.'">
    <img width="24" height="54" border="0" onmouseout="this.src=\'/include/images/icons/kalender/klicklink.png\'" onmouseover="this.src=\'/include/images/icons/kalender/klicklink-hover.png\'" src="/include/images/icons/kalender/klicklink.png"></a></div>
            </div>';
    }
    echo '</div>';
    
    ?>

    Kann mir da bitte eine helfen?
    MFG
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.629
    Beitragswertungen
    1192 Beitragspunkte
    ZitatZitat
    1054 : Unknown column 'ort' in 'field list'


    In der Tabelle kalender gibt es die Spalte ort nicht!
    Ist auch im original Script nicht vorgesehen.
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    FightClub Mitglied
    Registriert seit
    02.06.2013
    Beiträge
    196
    Beitragswertungen
    1 Beitragspunkte
    OK Habe ich hin bekomme danke,
    wenn ich jetzt denn Kalender erweitern möchten mit WO was muss ich denn in der DB. eintragen?

    MFG
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.629
    Beitragswertungen
    1192 Beitragspunkte
    Du musst dann die Tabelle um diese Spalte erweitern.

    Stichwort ->> ALTER TABLE

    ALTER TABLE tabellen_name ADD spalten_name datentyp


    ALTER TABLE `ic1_kalender` ADD `ort` varchar(50) NOT NULL DEFAULT '',


    Am Besten per Hand in phpMyAdmin in SQL ausführen erweitern.
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    FightClub Mitglied
    Registriert seit
    02.06.2013
    Beiträge
    196
    Beitragswertungen
    1 Beitragspunkte
    ZitatZitat geschrieben von Lord|Schirmer
    Du musst dann die Tabelle um diese Spalte erweitern.

    Stichwort ->> ALTER TABLE

    ALTER TABLE tabellen_name ADD spalten_name datentyp


    ALTER TABLE `ic1_kalender` ADD `ort` varchar(50) NOT NULL DEFAULT '',


    Am Besten per Hand in phpMyAdmin in SQL ausführen erweitern.


    Hallo Lord|Schirmer,

    Ich habe es mit denn DB Eintrag und in der:
    include/admin/templates/kalender.htm hinbekommen.

    aber jetzt weiß ich nich was ich in der:
    include/admin/kalender.php Eintrag muss.

    Kannst du mir da noch ein mal Hilfen?

    MFG
    BennY lächeln
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.629
    Beitragswertungen
    1192 Beitragspunkte
    Die Variable ORT übernehmen und in die Datenbank einfügen.
    Schau es Dir am Besten in der Datei am Besipiel TITLE an.

    Poste am Besten dein Versuch.
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    FightClub Mitglied
    Registriert seit
    02.06.2013
    Beiträge
    196
    Beitragswertungen
    1 Beitragspunkte
    ZitatZitat geschrieben von Lord|Schirmer
    Die Variable ORT übernehmen und in die Datenbank einfügen.
    Schau es Dir am Besten in der Datei am Besipiel TITLE an.

    Poste am Besten dein Versuch.


    Das habe ich jetzt gemacht aber ich glaube das ist nicht Richtig.

    <?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,text,recht) VALUES (".$time.",".$first_id.",'".escape($_POST['title'], '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,ort) 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['ort'] = escape($_POST['ort'], 'string');
          $_POST['recht'] = escape($_POST['recht'], 'integer');
          db_query("UPDATE `prefix_kalender` SET
    				  title	= '".$_POST['title']."',
    				  ort	= '".$_POST['ort']."',
    				  text	= '".$text."',
    				  recht	= '".$_POST['recht']."'
    			  WHERE gid = ".$gid1);
        } else {
          db_query("UPDATE `prefix_kalender` SET
    			  	time	= '".$time."',
    				  title	= '".$_POST['title']."',
    				  ort	= '".$_POST['ort']."',
    				  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'];
    	$ort		= $row['ort'];
    	$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		= '';
    	$ort		= '';
    	$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,
    	'ORT'		=> $ort,
    	'TEXT'		=> $Ftext,
    	'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,ort 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'],
    		'ORT'	=> $row['ort'],
        'GID' => $row['gid']
    	);
    	$tpl->set_ar_out($aus, 4);
    }
    
    $tpl->set_ar_out(array('MPL' => $MPL ), 5);
    
    
    $design->footer();
    ?>


    MFG
    BennY lächeln


    Zuletzt modifiziert von FightClub am 28.09.2014 - 21:11:52
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.629
    Beitragswertungen
    1192 Beitragspunkte
    Zeile 61 vergessen.
    Zeile 113 Value vergessen.

    Rest sieht auf dem ersten Blick in Ordnung aus.
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    FightClub Mitglied
    Registriert seit
    02.06.2013
    Beiträge
    196
    Beitragswertungen
    1 Beitragspunkte
    Hallo Lord|Schirmer, lächeln

    das in Zeile 61 Habe ich gemacht.
    Aber was meist du mit der Zeile 113 Value vergessen?

    Meist du das?
    ".escape($_POST['title'], 'string')."
    ".escape($_POST['ort'], 'string')."


    und Danke für dein Antwort.

    MFG
    BennY zwinker
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.629
    Beitragswertungen
    1192 Beitragspunkte
    Genau ... Du hattest zwar den ort eingefügt, aber das VALUE vergessen. Also escape($_POST['ort'], 'string') nach escape($_POST['recht'], 'integer') einfügen.
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    FightClub Mitglied
    Registriert seit
    02.06.2013
    Beiträge
    196
    Beitragswertungen
    1 Beitragspunkte
    ZitatZitat geschrieben von Lord|Schirmer
    Genau ... Du hattest zwar den ort eingefügt, aber das VALUE vergessen. Also escape($_POST['ort'], 'string') nach escape($_POST['recht'], 'integer') einfügen.


    OK also

    SO
    db_query("INSERT INTO `prefix_kalender` (time,title,text,recht,ort) VALUES (".$time.",'".escape($_POST['title'], 'string')."','".$text."','".escape($_POST['recht'], 'integer')."','"escape($_POST['ort'], 'string')')");
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.629
    Beitragswertungen
    1192 Beitragspunkte
    Nicht ganz lächeln

    So:
    db_query("INSERT INTO `prefix_kalender` (time,title,text,recht,ort) VALUES (".$time.",'".escape($_POST['title'], 'string')."','".$text."','".escape($_POST['recht'], 'integer')."','".escape($_POST['ort'], 'string')."')");
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    FightClub Mitglied
    Registriert seit
    02.06.2013
    Beiträge
    196
    Beitragswertungen
    1 Beitragspunkte
    Ok Danke Danke lachen
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten