'dashboard' in 'lichtkrant'

Status
Niet open voor verdere reacties.

compudoc

Terugkerende gebruiker
Lid geworden
7 jul 2006
Berichten
1.018
Is het mogelijk om een soort van een dashboard te maken waar alle informatie instaat zoals: aantal bezoekers nu online, u bent de .... bezoeker, etc. Kan je al die informatie in een 'lichtkrant' (text die bijv. van links naar rechts, beneden naar boven, etc. gaat) maken die dan in een PHP site word geplaatst
 
Een lichtkrant geschreven in PHP gaat niet lukken, maar met behulp van Javascript kom je een heel eind:
Code:
<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT LANGUAGE="JavaScript1.2">
<!--
var l1 =   0; // left of ticker in pixel, or 0 to position relative
var t1 =   0; // top of ticker in pixel, or 0 to position relative
var w1 = 400; // width of ticker in pixel
var ie = document.all ? true : false;
var first = true;
var l2 = l1 + w1;
var l3 = l1 - l2;
var l = l2;

function tickinit() {
  if (ie) {
    if (l1 == 0 && t1 == 0) {
      pos = document.all['tickpos'];
      l1 = getLeft(pos);
      t1 = getTop(pos);
    }
    ticktext.style.posTop = t1;
  }
  else {
    if (l1 == 0 && t1 == 0) {
      pos = document.anchors['tickpos'];
      l1 = pos.x;
      t1 = pos.y;
    }
  document.ticktext.pageY = t1;
  }
  l2 = l1 + w1;
  l3 = l1 - l2;
  l = l2;
  setInterval('tick()', 10);
}

function getLeft(ll) {
  if (ll.offsetParent)
    return (ll.offsetLeft + getLeft(ll.offsetParent));
  else 
    return (ll.offsetLeft);
}

function getTop(ll) {
  if (ll.offsetParent)
    return (ll.offsetTop + getTop(ll.offsetParent));
  else
    return (ll.offsetTop);
}

function tick() {
  l = l - 0.5;
  if (l < l3) l = l2;
  cl = l1 - l;
  cr = l2 - l;
  if (ie) {
    ticktext.style.posLeft = l;
    ticktext.style.posTop = t1;
    ticktext.style.clip = "rect(auto "+cr+"px auto "+cl+"px)";
    if (first) ticktext.style.visibility = "visible";
  }
  else {
    document.ticktext.pageX = l;
    document.ticktext.clip.left = cl;
    document.ticktext.clip.right = cr;
    if (first) document.ticktext.visibility = "show";
  }
  first = false;
}
// -->
</script>
<?php
$var = "hallo";
?>
</HEAD>

<BODY OnLoad="tickinit()">
<a name="tickpos"> </a>
<div id="ticktext" style="position:absolute;font-family:arial;font-size:14pt;visibility:hidden;">
<nobr>Zet hier je tekst neer. Dit is een PHP variabele: <?php echo $var; ?>. De tekst wordt oneindig herhaald.</nobr>
</div>
</BODY>
</HTML>
In de tekst zal wat PHP betreft dit te zien zijn:
Dit is een PHP variabele: hallo.
 
hoe kan ik hem van onder naar boven laten gaan en php scripts invoegen?
 
Dit is er eentje voor verticaal gebruik.
Code:
<HTML>
<HEAD>
<TITLE></TITLE>
<style type="text/css">
#pscroller1{
  width: 200px;
  height: 100px;
  border: 1px solid black;
  padding: 5px;
  background-color: lightyellow;
}

.someclass{ //class to apply to your scroller(s) if desired
}
</style>
<?php
// hier definieer je de php variabelen voor gebruik in de pausecontent array hieronder
$var = "hallo";
?>
<script type="text/javascript">
var pausecontent=new Array()
pausecontent[0]='<a href="http://www.javascriptkit.com">JavaScript Kit</a><br />Comprehensive JavaScript tutorials and over 400+ free scripts!'
pausecontent[1]='<a href="http://www.codingforums.com">Coding Forums</a><br />Web coding and development forums.'
pausecontent[2]='En hier is weer de PHP tekst:<br /><?php echo $var; ?>'

</script>

<script type="text/javascript">

/***********************************************
* Pausing up-down scroller- © Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/

function pausescroller(content, divId, divClass, delay){
  this.content=content //message array content
  this.tickerid=divId //ID of ticker div to display information
  this.delay=delay //Delay between msg change, in miliseconds.
  this.mouseoverBol=0 //Boolean to indicate whether mouse is currently over scroller (and pause it if it is)
  this.hiddendivpointer=1 //index of message array for hidden div
  document.write('<div id="'+divId+'" class="'+divClass+'" style="position: relative; overflow: hidden"><div class="innerDiv" style="position: absolute; width: 100%" id="'+divId+'1">'+content[0]+'</div><div class="innerDiv" style="position: absolute; width: 100%; visibility: hidden" id="'+divId+'2">'+content[1]+'</div></div>')
  var scrollerinstance=this
  if (window.addEventListener) //run onload in DOM2 browsers
    window.addEventListener("load", function(){scrollerinstance.initialize()}, false)
  else if (window.attachEvent) //run onload in IE5.5+
    window.attachEvent("onload", function(){scrollerinstance.initialize()})
  else if (document.getElementById) //if legacy DOM browsers, just start scroller after 0.5 sec
    setTimeout(function(){scrollerinstance.initialize()}, 500)
}

// -------------------------------------------------------------------
// initialize()- Initialize scroller method.
// -Get div objects, set initial positions, start up down animation
// -------------------------------------------------------------------

pausescroller.prototype.initialize=function(){
  this.tickerdiv=document.getElementById(this.tickerid)
  this.visiblediv=document.getElementById(this.tickerid+"1")
  this.hiddendiv=document.getElementById(this.tickerid+"2")
  this.visibledivtop=parseInt(pausescroller.getCSSpadding(this.tickerdiv))
  //set width of inner DIVs to outer DIV's width minus padding (padding assumed to be top padding x 2)
  this.visiblediv.style.width=this.hiddendiv.style.width=this.tickerdiv.offsetWidth-(this.visibledivtop*2)+"px"
  this.getinline(this.visiblediv, this.hiddendiv)
  this.hiddendiv.style.visibility="visible"
  var scrollerinstance=this
  document.getElementById(this.tickerid).onmouseover=function(){scrollerinstance.mouseoverBol=1}
  document.getElementById(this.tickerid).onmouseout=function(){scrollerinstance.mouseoverBol=0}
  if (window.attachEvent) //Clean up loose references in IE
    window.attachEvent("onunload", function(){scrollerinstance.tickerdiv.onmouseover=scrollerinstance.tickerdiv.onmouseout=null})
  setTimeout(function(){scrollerinstance.animateup()}, this.delay)
}


// -------------------------------------------------------------------
// animateup()- Move the two inner divs of the scroller up and in sync
// -------------------------------------------------------------------

pausescroller.prototype.animateup=function(){
  var scrollerinstance=this
  if (parseInt(this.hiddendiv.style.top)>(this.visibledivtop+5)){
    this.visiblediv.style.top=parseInt(this.visiblediv.style.top)-5+"px"
    this.hiddendiv.style.top=parseInt(this.hiddendiv.style.top)-5+"px"
    setTimeout(function(){scrollerinstance.animateup()}, 50)
  }
  else {
    this.getinline(this.hiddendiv, this.visiblediv)
    this.swapdivs()
    setTimeout(function(){scrollerinstance.setmessage()}, this.delay)
  }
}

// -------------------------------------------------------------------
// swapdivs()- Swap between which is the visible and which is the hidden div
// -------------------------------------------------------------------

pausescroller.prototype.swapdivs=function(){
  var tempcontainer=this.visiblediv
  this.visiblediv=this.hiddendiv
  this.hiddendiv=tempcontainer
}

pausescroller.prototype.getinline=function(div1, div2){
  div1.style.top=this.visibledivtop+"px"
  div2.style.top=Math.max(div1.parentNode.offsetHeight, div1.offsetHeight)+"px"
}

// -------------------------------------------------------------------
// setmessage()- Populate the hidden div with the next message before it's visible
// -------------------------------------------------------------------

pausescroller.prototype.setmessage=function(){
  var scrollerinstance=this
  if (this.mouseoverBol==1) //if mouse is currently over scoller, do nothing (pause it)
    setTimeout(function(){scrollerinstance.setmessage()}, 100)
  else {
    var i=this.hiddendivpointer
    var ceiling=this.content.length
    this.hiddendivpointer=(i+1>ceiling-1)? 0 : i+1
    this.hiddendiv.innerHTML=this.content[this.hiddendivpointer]
    this.animateup()
  }
}

pausescroller.getCSSpadding=function(tickerobj){ //get CSS padding value, if any
  if (tickerobj.currentStyle)
    return tickerobj.currentStyle["paddingTop"]
  else if (window.getComputedStyle) //if DOM2
    return window.getComputedStyle(tickerobj, "").getPropertyValue("padding-top")
  else
    return 0
}
</script>
</HEAD>

<BODY>
<script type="text/javascript">
//new pausescroller(name_of_message_array, CSS_ID, CSS_classname, pause_in_miliseconds)
new pausescroller(pausecontent, "pscroller1", "someclass", 3000)
</script>
</BODY>
</HTML>
 
Azhriaz zei:
Een lichtkrant geschreven in PHP gaat niet lukken

Ohw? Dat is nieuw voor mij. Je kunt gewoon de <marquee> van HTML gebruiken en daarin PHP verwerken.

HTML:
<marquee direction="up">Helpmij!!! Ik ga omhoog</marquee>
PHP:
$bericht = "Helpmij!!! Ik ga omhoog";

echo'<marquee direction="up">'. $bericht .'</marquee>';
 
Tha Devil zei:
Ohw? Dat is nieuw voor mij. Je kunt gewoon de <marquee> van HTML gebruiken en daarin PHP verwerken.
Dan gebruik je dus HTML voor de marquee, geen PHP ;)
 
PHP op zich is geen output-taal, je kunt nooit iets schrijven dat alleen PHP bevat. Ook de echo's van PHP worden in HTML naar de gebruiker toegestuurd.

Je gebruikt een PHP-functie om iets te berekenen bijvoorbeeld en daarna ben je gedwongen om HTML te gebruiken om het netjes met opmaak te laten zien.
 
Tha Devil zei:
Je gebruikt een PHP-functie om iets te berekenen bijvoorbeeld en daarna ben je gedwongen om HTML te gebruiken om het netjes met opmaak te laten zien.
PHP wordt ook gebruikt om dingen te parsen (verwerken). Ik heb er complete IRC bots in geschreven. De output wordt dan gewoon plain met 'n linebreak naar de console gestuurd.

De output is gewoon pure text. Wat jij output moet je zelf weten. Als je dat in het HTML formaat doet, en ervan uitgaat dat het geopent gaat worden in een browser, dan krijg je mooie opmaak te zien. Maar de lichtkrant wordt gewoon met <marquee> gedaan, en <marquee> is geen php.

Je kunt we de inhoud van de marquee genereren, en die tussen <marquee> weergeven. Maar nog steeds, je verstuurd platte text, de browser verwerkt het (of probeert het) als HTML, en tadaaa, daar is je lichtkrant. Eitje toch.. Beeeeeetje nadenken, en 't gaat vanzelf.

Oh, en trouwens, <marquee> is slecht. Gebruik een javascriptje. <marquee> en <blink> (tegenhangers van elkaar, in 't kort) zijn bagger en niet w3c compliance.

edit: Dat gedwongen HTML output versturen is bullhsit btw
 
Laatst bewerkt:
bash zei:
edit: Dat gedwongen HTML output versturen is bullhsit btw

Dus jij beweert dat je iets wat PHP output met stijl kan laten weergeven zonder gebruik te maken van HTML?
 
Tha Devil zei:
Dus jij beweert dat je iets wat PHP output met stijl kan laten weergeven zonder gebruik te maken van HTML?

Jij haalt nu ineens het woord stijl erbij. Je MOET geen HTML outputten, maar als je dat met opmaak wilt doen heb je weinig andere keus.
 
Tha Devil zei:
PHP op zich is geen output-taal, je kunt nooit iets schrijven dat alleen PHP bevat. Ook de echo's van PHP worden in HTML naar de gebruiker toegestuurd.

Je gebruikt een PHP-functie om iets te berekenen bijvoorbeeld en daarna ben je gedwongen om HTML te gebruiken om het netjes met opmaak te laten zien.

Opeens? Blijkbaar een stukje vergeten te lezen?
 
Wat een discussie zeg.

HTML/Javascript gebruik je voor de lichtkrant te laten bewegen.
PHP gebruik je om tekst evt. uit een database te halen en in die lichtkrant te zetten.

En of dit nu PHP of HTML is:
PHP:
echo "<b>PHP of HTML?</b>";
Eindeloze discussie.
 
noot, dat is PHP.. De output is HTML.. Waardeloze inbreng :)


Tha Devil> Wat jij beweert, is dat je niks anders dan HTML kan genereren in PHP. Dat is dus onzin:

PHP op zich is geen output-taal, je kunt nooit iets schrijven dat alleen PHP bevat. Ook de echo's van PHP worden in HTML naar de gebruiker toegestuurd.
Als ik dit scriptje heb:

PHP:
<?php

echo 'boon si liveD ahT';

?>

En ik start dit op met

php ./test.php

Dan is de output

Code:
boon si liveD ahT

IK zie geen HTML.

En daarbuiten, XML ?
 
bash zei:
Tha Devil> Wat jij beweert, is dat je niks anders dan HTML kan genereren in PHP. Dat is dus onzin:

Waar zeg ik dat?
Dit is wat ik zei:
Tha Devil zei:
Je gebruikt een PHP-functie om iets te berekenen bijvoorbeeld en daarna ben je gedwongen om HTML te gebruiken om het netjes met opmaak te laten zien.
Let vooral op de woorden HTML en opmaak.

Maar ja, ik krijg sterk het gevoel dat alles wat ik zeg bij jou niet deugt en dat je er wat van moet zeggen. Wat jij wil, ik denk dat deze discussie nodig een eind nodig heeft...
 
De laatste reply van compudoc is van vorige week dus ik denk dat 'ie er nu wel uit is gekomen. Zo niet: laat het me even weten.

Dit gaat nergens heen. Op Helpmij is geen ruimte voor betweterigheid, we weten best dat PHP serverside is en HTML/JS clientside en dat die twee samen moeten werken. Hoe de bewoording dan in mekaar steekt is niet relevant, al helemaal niet in de vorm van een discussie als deze.

Slotje!
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan