Zurück   PSD-Tutorials.de > Webbereich > PHP und andere Scriptsprachen


Antwort
 
Themen-Optionen
Alt 14.05.2012, 22:30   #16 Nach oben scrollen
Newbie
Newbie
 

Registriert seit: 01.06.2007
Beiträge: 14
AW: PHP Kalender feinschliff hilfe benötigt
Zitat:
Hab' ich das richtig gesehen, dass sich in der calendar.class.php lediglich das 'm' zum 'n' ändert?
ja - Monatszahl ohne vorangestelter '0'

zu Target_blank
suche in der calendar.class.php nach
Code:
<a href="' . $holiday['url'] . '" ' . $longdesc . ' title="' . $holiday['name'] . '" class="' . $holiday['class'] . '"
und füge dahinter (Achtung vor dem Code ist ein Leerzeichen einzufügen)
Code:
 onclick="this.target=\'_blank\'"
den Rest gibt es Morgen Nachmittag
  Mit Zitat antworten


Alt 14.05.2012, 23:22   #17 Nach oben scrollen
Newbie
Newbie
Themenstarter
 

Registriert seit: 25.12.2010
Ort: Recklinghausen
Beiträge: 49
Kamera: Fujifilm - Finepix J38 und Canon - EOS 1000D
Verwendet: Adobe CS
AW: PHP Kalender feinschliff hilfe benötigt
Hey super, man ich beneide dein können!

Ich freue mich schon richtig auf den nächsten Input!
  Mit Zitat antworten
Alt 15.05.2012, 18:33   #18 Nach oben scrollen
Newbie
Newbie
 

Registriert seit: 01.06.2007
Beiträge: 14
AW: PHP Kalender feinschliff hilfe benötigt
so wie versprochen - Monatsauswahl

PHP-Code:
<ul class="monthsnavi">
<?php
//Anzahl anzuzeigender Monate
$number_of_months 6;

//jetziger Monat
$present_month date('n',time());
//jetziges Jahr
$present_year date('Y',time());
//
for($i=0$i $number_of_months$i++){
    
$new_month $i+$present_month;
    
$year $present_year;
    if(
$new_month 12){
        
$new_month $new_month-12;
        
$year $present_year+1;
    }
    foreach(
$deutscheDaten['monthsLong'] as $key => $dD_months)
    if(
$new_month == $key+1) echo "<li><a href=\"".$_SERVER['PHP_SELF']."?m=".$new_month."&amp;y=".$year."\">".$dD_months."</a></li>";
}
?>
</ul>
Du müsstet das Array deutscheDaten verschieben - direkt unter dein
PHP-Code:
include("head.php"); 
dann kannst du die Monatsauswahl auch über den Kalender einfügen.
Man kann hinter $number_of_months die anzuzeigenden Monate eingeben und mit CSS die Auswahl nach belieben gestalten, z.B.
Code:
ul.monthsnavi{
list-style-type:none;
margin-left:0;
padding-left:0;
}
ul.monthsnavi li{
float:left;
padding-right:2px;
}
ul.monthsnavi li a{
background-color:#cbcbcb;
padding:0.2em;
}
ul.monthsnavi li a:hover{
background-color:#ababab;
}
  Mit Zitat antworten
Alt 15.05.2012, 20:53   #19 Nach oben scrollen
Newbie
Newbie
Themenstarter
 

Registriert seit: 25.12.2010
Ort: Recklinghausen
Beiträge: 49
Kamera: Fujifilm - Finepix J38 und Canon - EOS 1000D
Verwendet: Adobe CS
AW: PHP Kalender feinschliff hilfe benötigt
Also, damit ich das jetzt auch alles verstehe, was du da für mich gezaubert hast:

Den PHP-Code von dir füge ich in den Content ein bzw. habe ich bereits eingefügt. Dann hab ichs direkt mal ausprobiert und mich gefragt warum der andere PHP Teil direkt unter den Head wandern muss? Ergibt sich da sonst irgendein Fehler, der mir grad nicht aufgefallen ist? Und muss der gesamte Part da hoch, oder nur das $deutschedaten Arrey?

Also das #k - Div habe ich mit den eingegebenen Eventtagen unter deinem Code gelassen. Ich tipp mal drauf, wenn ich das gleich teste, wird mir schon auffallen, was sonst passiert... allerdings ist mir dein zweiter Hinweis ja auch noch nicht ganz klar

Bin mal gespannt

Dennoch funktioniert das schon mal und ich kann mich ans Design machen. Das ist so super! Als ich überlegt habe, was man da wohl programmieren müsste, kam ich auf wesentlich kompliziertere Gedanken, die aber auch kein Hand und Fuß hatten.
  Mit Zitat antworten
Alt 15.05.2012, 21:10   #20 Nach oben scrollen
Newbie
Newbie
 

Registriert seit: 01.06.2007
Beiträge: 14
AW: PHP Kalender feinschliff hilfe benötigt
also nur diesen Teil
PHP-Code:
$deutscheDaten = array(
                       
'daysLong' => array('Montag''Dienstag''Mittwoch''Donnerstag''Freitag''Samstag''Sonntag' ),
                       
                       
'daysShort' => array('Mo''Di''Mi''Do''Fr''Sa''So', ),
                       
                       
'monthsLong' => array( 'Januar''Februar''März''April''Mai''Juni''Juli''August''September''Oktober''November''Dezember' ),
                       
                       
'monthsShort' => array( 'Jan''Feb''März''Apr''Mai''Juni''Juli''Aug''Sep''Okt''Nov''Dez' )
                       ); 
Der Grund ist, das mein Codeteil auf dieses Array zugreift. Wird dieser nach dem Array eingefügt gibt es keine Probleme, davor allerdings dürftest du nur die englischsprachigen Monatsnamen erhalten bzw. gar keine. Und so kannst du die Auswahlliste überall auf der Seite plazieren.

Zitat:
allerdings ist mir dein zweiter Hinweis ja auch noch nicht ganz klar
erhöhe doch einfach mal die Zahl dahinter auf 10
PHP-Code:
$number_of_months 6
  Mit Zitat antworten
Alt 15.05.2012, 22:16   #21 Nach oben scrollen
Newbie
Newbie
Themenstarter
 

Registriert seit: 25.12.2010
Ort: Recklinghausen
Beiträge: 49
Kamera: Fujifilm - Finepix J38 und Canon - EOS 1000D
Verwendet: Adobe CS
Re: PHP Kalender feinschliff hilfe benötigt
Achsooo, ja als ich den Versuch gemacht hatte, hab ich deinen Code unter den anderen eingefügt, darum klappte es dann also. Dann verstehe ich das ja nun auch, super!

Ja und mit "dem zweiten Hinweis" meinte ich eigentlich den, den du mir als erstes erklärt hattest... hab ich mich blöd ausgedrückt, sry

1000 Dank für deine Hilfe!

[Beitrag 2]
*hüstel*
Jetzt ist mir da nicht doch noch eine Frage eingefallen... unglaublich.

Ich hatte mir ausgemalt den Hintergrund der Monatsauswahlen mit einem img zu versehen und nach einer Weile bin ich dann drauf gekommen das Hintergrundbild den li' zuzuweisen und nicht den a's. Nur jetzt verschiebt die ul den darunterliegenden Kalender...

Ich werd jetzt zu Bett und ich habe auch noch nicht alles durchgetestet, doch evt brauche ich da nochmal nen Tipp. Vielleicht ein float Problem oder ich muss die ul in das #k-Div legen...

Naja, gute Nacht erstmal

Geändert von Doitsu (15.05.2012 um 22:20 Uhr). Grund: Bitte Edit-Funktion benutzen
  Mit Zitat antworten
Alt 16.05.2012, 11:13   #22 Nach oben scrollen
Newbie
Newbie
Themenstarter
 

Registriert seit: 25.12.2010
Ort: Recklinghausen
Beiträge: 49
Kamera: Fujifilm - Finepix J38 und Canon - EOS 1000D
Verwendet: Adobe CS
AW: PHP Kalender feinschliff hilfe benötigt
Guten Morgen!

So, ich habe dann mal weiter probiert und bin zur Lösung meines Problems gelangt. Man muss eben alles nur an den richtigen Platz mit den richtigen Abständen einfügen. Zudem sah das oben drüber nicht gut aus, darunter macht es sich besser.

Ich hoffe dass es den Usern ausreicht immer die nächsten sechs Monate vom heutigen Tag und nicht vom ausgewählten Monat an, auswählen zu können. Keine ahnung wie rechtzeitig Veranstalter sowas planen... aber unten drunter kann ich ja sonst auch noch auf mehr als sechs Monate umstellen ohne das Design kaputt zu machen. Allerdings fehlt dann eigentlich die Jahreszahl dazu... hach ich feinschleife noch ein wenig daran

[Beitrag 2, weil Lösung gefunden]

Ich habe mich dann mal über den Code hergemacht und überlegt was davon wohl verwendet werden kann um auch noch das Jahr ran zu hängen und es ist mir gelungen:
PHP-Code:
echo "<li><a href=\"".$_SERVER['PHP_SELF']."?m=".$new_month."&amp;y=".$year."\">".$dD_months."</a>"."<br />".$year."</li>"
Ich kann mich zwar noch nicht entscheiden, wieviele Monate ich anzeigen lasse, doch ich denke sechs werden ausreichen.

Und nochmal kann ich mich nur bedanken für die ganze Hilfe!

[Beitrag 3 - noch was eingefallen]

Als ich dann auf der Seite einen einletenden Text schreiben wollte, fiel mir auf, dass ich keine Ahnung habe was man da am besten schreibt... ach nee, dass es praktisch wäre, wenn man sich auch direkt einen Monat anzeigen lassen könnte.

Dann genügen nämlich die sechs Monate Vorauswahl und die User können sich ganz einfach den gewünschten Monat in welchem Jahr auch immer anzeigen lassen. Ich glaube das wäre gut...

Geändert von AbbySu (16.05.2012 um 12:44 Uhr). Grund: Lösung gefunden
  Mit Zitat antworten
Alt 03.06.2012, 16:16   #23 Nach oben scrollen
Newbie
Newbie
Themenstarter
 

Registriert seit: 25.12.2010
Ort: Recklinghausen
Beiträge: 49
Kamera: Fujifilm - Finepix J38 und Canon - EOS 1000D
Verwendet: Adobe CS
AW: PHP Kalender feinschliff hilfe benötigt
So, ich glaube ich habe genug geforscht um mich jetzt doch noch mal an euch zu wenden.

Also wie gesagt wollte ich noch zusätzlich eine Direktauswahl von einem beliebigen Monat und einem Jahr gestalten. Jetzt habe ich bereits die benötigten Auswahlen erstellt und dank eines anderen Skipts Ideen gewonnen das umzusetzen, doch auch nach langem und innigen studieren der hier für mich von blastermaster ertsellten Monatsauswahl will mir nicht einfallen, wie ich es schaffe den Kalender mit dieser Auswahl zu verbinden...

Ich dachte ja ich müsste die Lösung hier finden:
PHP-Code:
if($new_month == $key+1) echo "<li><a href=\"".$_SERVER['PHP_SELF']."?m=".$new_month."&amp;y=".$year."\">".$dD_months."</a>"."<br />".$year."</li>"
(Teil von Blasermasters Code)

Doch irgendwie... nein... kein Plan... allerdings habe ich den original Code auch ordentlich auseinander gerupft und auch bei dem nicht verstanden wo die Verbindung entsteht.

Hier nun mal der Code, der bei mir noch übrig ist. Zumindest funktioniert hier ja schon ein bisschen was.

Das kam oben im PHP Bereich dazu:
PHP-Code:
    if($_GET[anzeigen]==1) {
        
$monat $_GET[monat];
        
$jahr $_GET[jahr];
    }
    else {
        
$monat date("m");
        
$jahr date("Y");
    } 
Und das unmittelbar über dem <div id="k"> in dem sich der Kalender befindet:
PHP-Code:
        <form name="formkalender" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
            <select name="monat" class="SELECTFELD">
                <option value="1" <?php if($monat == 1) echo "selected style='background-color=#99CCFF;'"?>>Januar</option>
                <option value="2" <?php if($monat == 2) echo "selected style='background-color=#99CCFF;'"?>>Februar</option>
                <option value="3" <?php if($monat == 3) echo "selected style='background-color=#99CCFF;'"?>>M&auml;rz</option>
                <option value="4" <?php if($monat == 4) echo "selected style='background-color=#99CCFF;'"?>>April</option>
                <option value="5" <?php if($monat == 5) echo "selected style='background-color=#99CCFF;'"?>>Mai</option>
                <option value="6" <?php if($monat == 6) echo "selected style='background-color=#99CCFF;'"?>>Juni</option>
                <option value="7" <?php if($monat == 7) echo "selected style='background-color=#99CCFF;'"?>>Juli</option>
                <option value="8" <?php if($monat == 8) echo "selected style='background-color=#99CCFF;'"?>>August</option>
                <option value="9" <?php if($monat == 9) echo "selected style='background-color=#99CCFF;'"?>>September</option>
                <option value="10" <?php if($monat == 10) echo "selected style='background-color=#99CCFF;'"?>>Oktober</option>
                <option value="11" <?php if($monat == 11) echo "selected style='background-color=#99CCFF;'"?>>November</option>
                <option value="12" <?php if($monat == 12) echo "selected style='background-color=#99CCFF;'"?>>Dezember</option>
            </select>
            
            <select name="jahr" style="width: 70px" class="SELECTFELD">
                <?php
                    
// Anz. der Jahre nach heute
                    
$anz_jahre 4;
                    
$jahr date("Y");

                    for(
$i $jahr$i <= $jahr $anz_jahre$i++) {
                        if(
$i == $jahr)
                        echo 
"<option value=\"".$i."\" selected style='background-color=#99CCFF;'>".$i."</option>";
                        else
                        echo 
"<option value=\"".$i."\">".$i."</option>";
                    }
                
?>
            </select>
            
            <input type="submit" name="b_anzeigen" value="Monat anzeigen" class="BUTTON">
        </form>
  Mit Zitat antworten
Alt 03.06.2012, 21:16   #24 Nach oben scrollen
Newbie
Newbie
 

Registriert seit: 01.06.2007
Beiträge: 14
AW: PHP Kalender feinschliff hilfe benötigt
du prüfst etwas was nie erfüllt werden kann
PHP-Code:
if($_GET[anzeigen]==1) { 
weil dein Formular ewas ganz anderes versendet
HTML-Code:
<input type="submit" name="b_anzeigen" value="Monat anzeigen" class="BUTTON">
an den Browser wird folgender Link übermittelt - name_des_scripts.php?monat=6&jahr=2016&b_anzeigen=Monat+anzeigen
Also müsste die Überprüfung eigentlich so lauten
PHP-Code:
if($_GET[b_anzeigen]=="Monat+anzeigen") { 
das ganze kannst du dir auch sparen, und prüfe gleich auf Jahr und Monat und auch gleich Sicherheitstechnisch mit intval() -> nur Zahlen zulässig
PHP-Code:
if(isset($_GET['m'])) $monat intval($_GET['m']);
else 
$monat date("m");
    
if(isset(
$_GET['y'])) $jahr intval($_GET['y']);
else 
$jahr date("Y"); 
Desweiteren überschreibst du die Variable $jahr die am Anfang des Scriptes gesetzt wird mit dieser hier (dewegen wurde auch das gewählte Jahr nicht selectiert)
PHP-Code:
$jahr date("Y");

for(
$i $jahr$i <= $jahr $anz_jahre$i++) { 
Diese Variable müsste also umbenannt werden, z.B.
PHP-Code:
$jahrcurrent date("Y");
 for(
$i $jahrcurrent$i <= $jahrcurrent $anz_jahre$i++) { 

Geändert von blastermaster (04.06.2012 um 16:29 Uhr). Grund: php code angepasst
  Mit Zitat antworten
Alt 03.06.2012, 22:20   #25 Nach oben scrollen
Newbie
Newbie
Themenstarter
 

Registriert seit: 25.12.2010
Ort: Recklinghausen
Beiträge: 49
Kamera: Fujifilm - Finepix J38 und Canon - EOS 1000D
Verwendet: Adobe CS
AW: PHP Kalender feinschliff hilfe benötigt
Hallo Blastermaster,

also erstmal habe ich mir deinen Beitrag x-Mal durchgelesen und dann versucht in mein Code einzubauen, aber das Ergebnis funktioniert nicht... demzufolge habe ich irgendwas falsch gemacht.

Nur was?

Ich habe den oberen PHP Teil komplett durch deinen ersetzt
PHP-Code:
if(isset($_GET['monat'])) $monat intval($_GET['monat']);
else 
$monat date("m");
    
if(isset(
$_GET['jahr'])) $jahr intval($_GET['jahr']);
else 
$jahr date("Y"); 
Anschließend habe ich die $jahr Variable unten und den Teil in der "for"-Klammer so wie bei dir gestaltet.

Trotzdem wechselt er den kalender nicht auf den gewünschten Monat.
  Mit Zitat antworten
Alt 04.06.2012, 16:42   #26 Nach oben scrollen
Newbie
Newbie
 

Registriert seit: 01.06.2007
Beiträge: 14
AW: PHP Kalender feinschliff hilfe benötigt
Habe nochmal drübergeschaut und gesehen das die Calendar Class aus dem $_GET eigentlich dieses brauch
Code:
name_des_scripts.php?m=6&y=2016
aber das geliefert bekommt
Code:
name_des_scripts.php?monat=6&jahr=2016
Das heißt du mußt die Namen deiner Select-Felder ändern. Für den Monat:
HTML-Code:
<select name="m">
und entsprechend für das Jahr
HTML-Code:
<select name="y">
ebenso die Überprüfung der $_GET Übermittlung - habe es in meinem vorherigen Post korregiert
  Mit Zitat antworten
Alt 04.06.2012, 17:28   #27 Nach oben scrollen
Newbie
Newbie
Themenstarter
 

Registriert seit: 25.12.2010
Ort: Recklinghausen
Beiträge: 49
Kamera: Fujifilm - Finepix J38 und Canon - EOS 1000D
Verwendet: Adobe CS
AW: PHP Kalender feinschliff hilfe benötigt
Jo, funktioniert, danke!

Aber kannst du mir auch sagen warum er das braucht? Also sind das festgelegte Variablen oder so, die das $_GET vorgibt oder liegt das an meinem restlichen Skript?

Und dann habe ich einfach mal getestet, ob ich das b_anzeigen umbenennen kann. Das hat auch funktioniert. Also wozu der name?

Ganz lieben Gruß
  Mit Zitat antworten
Alt 04.06.2012, 21:55   #28 Nach oben scrollen
Newbie
Newbie
 

Registriert seit: 01.06.2007
Beiträge: 14
AW: PHP Kalender feinschliff hilfe benötigt
Zitat:
Aber kannst du mir auch sagen warum er das braucht? Also sind das festgelegte Variablen oder so, die das $_GET vorgibt oder liegt das an meinem restlichen Skript?
ja das sind festgelegte Variablen in der calendar.class.php
Zeile 25
PHP-Code:
protected $getParams = array('month' => 'm''year' => 'y'); 
Zitat:
Und dann habe ich einfach mal getestet, ob ich das b_anzeigen umbenennen kann. Das hat auch funktioniert. Also wozu der name?
Kannst du auch komplett weglassen - Daten per $_GET werden direkt an die URL angehangen
  Mit Zitat antworten
Alt 05.06.2012, 11:46   #29 Nach oben scrollen
Newbie
Newbie
Themenstarter
 

Registriert seit: 25.12.2010
Ort: Recklinghausen
Beiträge: 49
Kamera: Fujifilm - Finepix J38 und Canon - EOS 1000D
Verwendet: Adobe CS
AW: PHP Kalender feinschliff hilfe benötigt
Achso. Hm, dass mir das Array nicht aufgefallen ist... danke.

Ich bin immer wieder fasziniert, doch so langsam lichten sich die Felder.
Zum Glück gibt es Menschen wie dich, die einem beim Verstehen helfen
  Mit Zitat antworten
Alt 06.06.2012, 19:22   #30 Nach oben scrollen
Newbie
Newbie
Themenstarter
 

Registriert seit: 25.12.2010
Ort: Recklinghausen
Beiträge: 49
Kamera: Fujifilm - Finepix J38 und Canon - EOS 1000D
Verwendet: Adobe CS
AW: PHP Kalender feinschliff hilfe benötigt
Hi mal wieder

Mir ist durch die Validierung meiner Seite aufgefallen, dass der Autor meines Kalender das "longdesc" Attribut in einen Verweis eingebaut hat... ich habe mir die Stelle herausgesucht, an dem das passiert und es wird offenbar an keiner anderen Stelle in keinem anderen Dokument verwendet.

Kann ich dass dann einfach herauslöschen?
Ich hab ein bisschen Angst einen Fehler einzubauen, der mir vielleicht auch erst gar nicht auffällt, schließlich muss es doch einen Grund haben, dass der Autor beschlossen hat es mit aufzunehmen...

Hier mal der PHP Teil, in dem das "longdesc" eingebunden wird:
PHP-Code:
private function htmlDay($val$css ''$holidays = array())
    {
        
$css = ($css == '') ? '' ' ' $css;
        
        
$holiday = array('name' => '''class' => '''url' => '''url2' => '');
        
        foreach(
$holidays as $holi)
        {
            
$holiday['name'] .= $holi['name'] . $this->holiSep;
            
$holiday['class'] .= $holi['class'] . ' ';
            
$holiday['url'] = $holi['url'];
            
$holiday['url2'] .= $holi['url'] . $this->holiSep;
        }
        
        
$holiday['name'] = substr($holiday['name'], 0strlen($holiday['name']) - strlen($this->holiSep));
        
$holiday['class'] = substr($holiday['class'], 0strlen($holiday['class']) - 1);
        
$holiday['url2'] = substr($holiday['url2'], 0strlen($holiday['url2']) - strlen($this->holiSep));
        
        if(
$holiday['name'] != '') {
            
$return '<td class="'.$this->classes['dayA'].$css.'">'.$this->n;
            
            if(
$holiday['url'] != '') {
                
$longdesc 'longdesc="';
                
                if(
$this->showAllUrls == true) {
                    
$longdesc .= $holiday['url2'];
                }
                
                
$longdesc .= '"';
                
                
$return .= '<a href="'.$holiday['url'].'" '.$longdesc.' title="'.$holiday['name'].'" class="'.$holiday['class'].'" onclick="this.target=\'_self\'">'.$this->n.''.$val.$this->n.'</a>'.$this->n;
            }
            else {
                
$return .=    '<span title="'.$holiday['name'].'"class="'.$holiday['class'].'">'.$this->n.''.$val.$this->n.'</span>';    
            }
            
            
$return .= '</td>'.$this->n;
            
            return 
$return;
        }
        else {
            return 
'<td class="'.$this->classes['dayA'].$css.'">'.$this->n.''.$val.$this->n.'</td>'.$this->n;
        }
    } 
Und so stell ich mir vor müsste das anschließend funktionieren:
PHP-Code:
private function htmlDay($val$css ''$holidays = array())
    {
        
$css = ($css == '') ? '' ' ' $css;
        
        
$holiday = array('name' => '''class' => '''url' => '');
        
        foreach(
$holidays as $holi)
        {
            
$holiday['name'] .= $holi['name'] . $this->holiSep;
            
$holiday['class'] .= $holi['class'] . ' ';
            
$holiday['url'] = $holi['url'];
        }
        
        
$holiday['name'] = substr($holiday['name'], 0strlen($holiday['name']) - strlen($this->holiSep));
        
$holiday['class'] = substr($holiday['class'], 0strlen($holiday['class']) - 1);
        
        if(
$holiday['name'] != '') {
            
$return '<td class="'.$this->classes['dayA'].$css.'">'.$this->n;
            
            if(
$holiday['url'] != '') {                
                
$return .= '<a href="'.$holiday['url'].'" '.'title="'.$holiday['name'].'" class="'.$holiday['class'].'" onclick="this.target=\'_self\'">'.$this->n.''.$val.$this->n.'</a>'.$this->n;
            }
            else {
                
$return .=    '<span title="'.$holiday['name'].'"class="'.$holiday['class'].'">'.$this->n.''.$val.$this->n.'</span>';    
            }
            
            
$return .= '</td>'.$this->n;
            
            return 
$return;
        }
        else {
            return 
'<td class="'.$this->classes['dayA'].$css.'">'.$this->n.''.$val.$this->n.'</td>'.$this->n;
        }
    } 
Irgendwie fürchte ich mich ein wenig es einfach auszuprobieren... mal sehen, ob ich gleich noch Mut entwickel
  Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen