Demo

Probiere ClanSphere aus und teste daran herum. Demo


Antworten: 9
Seite [1]
Nachtmeister


Specialist




Herkunft: Bern
Beiträge: 2091
# Thema - 10.07.2008 um 01:22 Uhr
Vorneweg: Es handelt sich hierbei nicht um Clansphere!
Nur damit ich hinterher nicht wieder beschimpft werde

Ich bastel gerade mal wieder etwas an meinem Blog rum und hab zwischendurch validiert und alle fehler beseitigt. Einen kriege ich aber nicht weg. Der wird durch ein Plugin ausgelöst. Und zwar wird per PHP wohl ein abschliessendes Listenelement (</li>) erstellt, das ich nicht wegkriege, weil ich natürlich keine ahnung von PHP habe sondern nur von html. Bzw. zuerst war da nur ein </li> aber ohne Anfangstag. Also habe ich mal Frech ein <li> davor gesetzt in der PHP Datei. Da haben sich die Fehler von 4 auf einen minimiert. Auf einen Einzigen, den ich nicht wegkriege.

Validierungsfehler:

li ist an dieser Stelle nicht erlaubt.

Es befindet sich evtl. ein Block-Element innerhalb eines Inline-Elements.

Auch verschachtelte Block-Elemente könnten diesen Fehler verursachen, da
Block-Elemente nicht beliebig verschachtelt werden dürfen. Dies ist abhängig
von den verwendeten [X]HTML-Elementen.


na, dachte ich mir, löscht du doch einfach das Listenelement raus und schaust mal, ob das grosse Auswirkungen auf das optische deiner Webseite hat. gar nicht so leicht, denn ich habe irgendwie gar keinen Durchblick gefunden.

In folgendem Abschnitt wird wohl das Listenelement generiert:

 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
1. / 2. / ... 
<?php
<ul
 
 <!-- 
start good stuff -->  
<
li id="twitters" class="widget widget_twitterer"><h2></h2
 
<
script type="text/javascript" src="http://twitter.com/statuses/user_timeline/Nachtmeister.json?callback=twitterCallback&count=1&named_obj"></script
 
<
div id="twitter-box"> </div
 <
script type="text/javascript"><!-- 
    
  function 
relative_created_at(time_value) {  // thanks to Lionel of rarsh.com for pointing out that Twitter changed their code, and this is the fix which will work in IE 
     
var created_at_time Date.parse(time_value.replace(" +0000","")); 
     var 
relative_time = ( arguments.length ) ? arguments[1] : new Date(); 
     var 
wordy_time parseInt(( relative_time.getTime() - created_at_time ) / 1000) + (relative_time.getTimezoneOffset()*60); 
 
       if ( 
wordy_time 59 ) { 
         return 
'less than a minute ago'
         }  
       else if ( 
wordy_time 119 ) {       // changed because otherwise you get 30 seconds of 1 minutes ago   
         
return 'about a minute ago'
         }  
       else if ( 
wordy_time 3000 ) {         // < 50 minutes ago 
         
return ( parseIntwordy_time 60 )).toString() + ' minutes ago'
         }  
       else if ( 
wordy_time 5340 ) {         // < 89 minutes ago 
         
return 'about an hour ago'
         }  
       else if ( 
wordy_time 9000 ) {          // < 150 minutes ago 
         
return 'a couple of hours ago';   
         } 
       else if ( 
wordy_time 82800 ) {         // < 23 hours ago 
         
return 'about ' + ( parseIntwordy_time 3600 )).toString() + ' hours ago'
         }  
       else if ( 
wordy_time 129600 ) {       //  < 36 hours 
         
return 'a day ago'
         } 
       else if ( 
wordy_time 172800 ) {       // < 48 hours 
         
return 'almost 2 days ago'
         } 
       else { 
         return ( 
parseInt(wordy_time 86400)).toString() + ' days ago'
         } 
    } 
 
   var 
ul document.createElement('ul'); 
   for (var 
i=0&& Twitter.posts.lengthi++) { 
     var 
post Twitter.posts[i];  
     var 
li document.createElement('li'); 
     var 
showTwitterName 0
     var 
showTimeFirst 0
       if ( 
showTimeFirst == 1) { 
          
li.appendChild(document.createTextNode(' ')); 
          var 
document.createElement('a'); 
          
a.setAttribute('href''http://twitter.com/Nachtmeister/' 'statuses/' post.id); 
          
a.setAttribute('title''Permalink to this twitter (id ' post.id ') at Twitter.com'); 
          
a.appendChild(document.createTextNode(relative_created_at(post.created_at))); 
          
li.appendChild(a); 
          
li.appendChild(document.createTextNode(' ')); 
          } 
       if ( 
showTwitterName == ) { 
          
li.appendChild(document.createTextNode(post.user.name ' ')); 
          } 
     
li.appendChild(document.createTextNode(post.text)); 
     if ( 
showTimeFirst == ) { 
     
li.appendChild(document.createTextNode(' '));  
     var 
document.createElement('a'); 
     
a.setAttribute('href''http://twitter.com/Nachtmeister/' 'statuses/' post.id); 
     
a.setAttribute('title''Permalink to this twitter (id ' post.id ') at Twitter.com'); 
     
a.appendChild(document.createTextNode(relative_created_at(post.created_at))); 
     
li.appendChild(a);  
     
li.appendChild(document.createTextNode(' '));  
     } 
     
ul.appendChild(li); 
     } 
  
ul.setAttribute('id''twitter-list'); 
  
document.getElementById('twitter-box').appendChild(ul); 
--> 
</
script
 
 
<!-- 
end experiment good stuff --> 
<
li>
</
li><a href='http://twitter.com/Nachtmeister/' title='My Twitter page at Twitter.com'>More updates...</a></li
</
ul
?>


Genau hier liegt der Hacken:

<!-- end experiment good stuff -->
<li>
</li><a href='http://twitter.com/Nachtmeister/' title='My Twitter page at Twitter.com'>More updates...</a></li>


Das <li> habe ich eingesetzt, so haben sich die Fehler von 4 auf einen minimiert. Da das aber völlig Sinnfrei ist, so wie das da steht, wäre die bessere Lösung, dass <li> (das ich von Hand rauslöschen kann) und das </li> (das von PHP generiert wird) zu löschen.

Aber ich habe keine ahnung wie ich das anstelle.

Der Codeabschnitt sieht nämlich in der Entwicklerdatei eigentlich so aus:

 
1.
2.
3.
1. / 2. / ... 
<!-- end experiment good stuff -->
<li>
<?php echo $after_widget "<a href='" $my_twitter "' title='My Twitter page at Twitter.com'>More updates...</a></li>" ?>


Hilfe

*Edit: äh, nicht in PHP sondern Javascript....


------------------
"God created the universe in 1 Day, and then spent 5 days making it look good In Internet Explorer"

Zuletzt editiert von Nachtmeister am 10.07.2008 um 13:45 Uhr (3x Editiert)
Inaktiv
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 1 - 10.07.2008 um 08:40 Uhr
der Code ist kein PHP, sondern Javascript
Sollten sich unsere JavaFreaks mal anschauen


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
ichraffsnicht ClanSphere Team

Supporter
Supporter



Herkunft: Erdeborn bei Lutherstadt Eisleben
Beiträge: 3191
# Antwort: 2 - 10.07.2008 um 10:03 Uhr
also als erstes mal den js-code in ne extern datei...
 
1.
2.
3.
1. / 2. / ... 
<!-- end experiment good stuff -->
<li>
<?php echo $after_widget "<a href='" $my_twitter "' title='My Twitter page at Twitter.com'>More updates...</a></li>" ?>


und dort einfach ändern in :

 
1.
2.
3.
1. / 2. / ... 
<!-- end experiment good stuff -->
<li>
<?php echo $after_widget "<a href='" $my_twitter "' title='My Twitter page at Twitter.com'>More updates...</a>" ?>


denke ich mal


------------------



Inaktiv
|
Nachtmeister
Thread-Ersteller


Specialist




Herkunft: Bern
Beiträge: 2091
# Antwort: 3 - 10.07.2008 um 12:41 Uhr
Also so wie du ihn geschrieben hast war er anfangs. Dann war bei der Validierung aber das Problem, das ein li Tag nicht geschlossen war. Habe ich dann eingefügt

 
1.
1. / 2. / ... 
<?php echo $after_widget "<a href='" $my_twitter "' title='My Twitter page at Twitter.com'>More updates...</a></li>" ?>


Dann wird aber eben vor diesen ganzen Codeabschnitt noch ein </li> generiert (weiss der Teufe warum) das ich nicht wegkriege.

Glaube wenn ich das Ganze in eine externe Datei auslagere hilft das auch nichts. Das ist im prinzip ja eine ganze PHP Datei die nur für dieses Plugin zuständig ist.

Schon noch dumm wenn man die Plugins dann noch korrigieren muss -.-


------------------
"God created the universe in 1 Day, and then spent 5 days making it look good In Internet Explorer"

Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 4 - 10.07.2008 um 12:52 Uhr
das <li> wird schon im JavaScript erstellt
var li = document.createElement('li');

das müsstest du deaktivieren, aber frag mich bitte nicht wie.


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Nachtmeister
Thread-Ersteller


Specialist




Herkunft: Bern
Beiträge: 2091
# Antwort: 5 - 10.07.2008 um 13:44 Uhr
Ja das da li irgendwas drin steht hab ich eben auch bemerkt. Und das ich es irgendwie rausnehmen muss ohne dabei die ganze Funktion ausser Kraft zu setzen war mir auch klar. Aber blos wie?

Hab ja nichtmal gemerkt, dass das JS ist und nicht PHP.... sagt wohl schon alles -.-


------------------
"God created the universe in 1 Day, and then spent 5 days making it look good In Internet Explorer"

Inaktiv
|
ichraffsnicht ClanSphere Team

Supporter
Supporter



Herkunft: Erdeborn bei Lutherstadt Eisleben
Beiträge: 3191
# Antwort: 6 - 10.07.2008 um 14:52 Uhr
haste den code den irgendwo online... ich würde mir gern mal den output ansehen.


------------------



Inaktiv
|
Nachtmeister
Thread-Ersteller


Specialist




Herkunft: Bern
Beiträge: 2091
# Antwort: 7 - 10.07.2008 um 15:11 Uhr
Schicke es dir mal per PN (will das noch nicht öffentlich zeigen). Aber wer es noch möchte, kann mich anschreiben.


------------------
"God created the universe in 1 Day, and then spent 5 days making it look good In Internet Explorer"

Inaktiv
|
ichraffsnicht ClanSphere Team

Supporter
Supporter



Herkunft: Erdeborn bei Lutherstadt Eisleben
Beiträge: 3191
# Antwort: 8 - 10.07.2008 um 15:50 Uhr
puh... wenn ich den output lese, tun mir die augen weh.... btw... is wordpress, aber davon mal abgesehen, hat der quellcode keine schöne strucktur... ich mach mir jetzt ned die arbeit, mich da reinzuwuseln... sry


------------------



Inaktiv
|
Nachtmeister
Thread-Ersteller


Specialist




Herkunft: Bern
Beiträge: 2091
# Antwort: 9 - 10.07.2008 um 16:00 Uhr
Ja ist klar, in den Output werden halt die ganzen Plugins per php reingeladen. Da kann ich nicht gross Einfluss auf die Struktur nehmen

Aber der entscheidende Abschnitt habe ich ja genau deswegen oben gepostet. Ist der output Code


------------------
"God created the universe in 1 Day, and then spent 5 days making it look good In Internet Explorer"

Zuletzt editiert von Nachtmeister am 10.07.2008 um 16:01 Uhr (1x Editiert)
Inaktiv
|
Antworten: 9
Seite [1]


Sie müssen sich registrieren, um zu antworten.