Webprofis is een Forum waarin je vragen kunt stellen die webgerelateerd zijn. Heb je vragen over of problemen met je Webpagina, HTML, CSS, Javascript, PHP of andere client of serverside scriptingtalen? Stel ze dan gerust op dit forum.
Op dit forum zijn een aantal vrijwilligers actief die u graag met uw vragen willen helpen en u waar mogelijk een passend antwoord aanbieden.
Hebt u zelf veel ervaring en kennis met betrekking tot het bovenstaande? U bent van harte welkom om uw kennis met anderen te delen!
We hopen dat eenieder op dit Forum een leerzame ervaring mag opdoen.
Team Webprofis
We hopen dat eenieder op dit Forum een leerzame ervaring mag opdoen.
Team Webprofis
Server space functie
Ik gebruik een functie om te kijken hoeveel ruimte er wordt gebruikt en beschikbaar is.
Als hier op pc controleer werkt het 100% maar zodra ik het online zet werkt de % weergave niet meer.
Iemand een suggestie:
PHP functie:
Class
Weergave:
(boven is online en onder op pc)
Als hier op pc controleer werkt het 100% maar zodra ik het online zet werkt de % weergave niet meer.
Iemand een suggestie:
PHP functie:
define( 'SERVER_ROOT', dirname(__FILE__) . '/' );
echo serverSpace ( SERVER_ROOT );
function serverSpace( $path ) {
$html = '';
$diskStatus = new RvdCmsStatus( $path );
$freeSpace = $diskStatus->freeSpace();
$totalSpace = $diskStatus->totalSpace();
$barWidth = ( $diskStatus->usedSpace()/100 ) * 400;
$html .= ' <div class="progress">
<div class="progress-bar progress-bar-info progress-bar-striped" role="progressbar" aria-valuenow="'. $barWidth . '" aria-valuemin="0" aria-valuemax="100" style="width:'. $barWidth . '%">
' . $diskStatus->usedSpace() . '%
</div>
</div>' . "\r\n";
$html .= ' Gebruikt: ' . $freeSpace .' ( van de '. $totalSpace .' )' . "\r\n";
return $html;
}
Class
class RvdCmsStatus {
const RAW_OUTPUT = true;
private $diskPath;
function __construct( $diskPath ) {
$this->diskPath = $diskPath;
}
public function totalSpace( $rawOutput = false ) {
$diskTotalSpace = @disk_total_space( $this->diskPath );
if ( $diskTotalSpace === FALSE ) {
trigger_error( "RVDCMS::totalSpace(): Invalid disk path.", E_USER_ERROR );
}
return $rawOutput ? $diskTotalSpace : $this->addUnits($diskTotalSpace);
}
public function freeSpace( $rawOutput = false ) {
$diskFreeSpace = @disk_free_space( $this->diskPath );
if ( $diskFreeSpace === FALSE ) {
trigger_error( "RVDCMS::freeSpace(): Invalid disk path.", E_USER_ERROR );
}
return $rawOutput ? $diskFreeSpace : $this->addUnits($diskFreeSpace);
}
public function usedSpace( $precision = 1 ) {
try {
return round( ( 100 - ( $this->freeSpace( self::RAW_OUTPUT ) / $this->totalSpace( self::RAW_OUTPUT ) ) * 100 ), $precision );
} catch (Exception $e) {
throw $e;
}
}
public function getDiskPath() {
return $this->diskPath;
}
private function addUnits($bytes) {
$units = array( 'B', 'KB', 'MB', 'GB', 'TB' );
for( $i = 0; $bytes >= 1024 && $i < count( $units ) - 1; $i++ ) {
$bytes /= 1024;
}
return round( $bytes, 1).' '.$units[$i];
}
}
Weergave:
(boven is online en onder op pc)
voorbeeld.jpg
536 x 280 - 72K
If it's not fun, you're not doing it right!
Login of Registreer om te reageren.
Reacties
edit, vergeet bovenstaande maar :P
ik denk dat ik het al weet, maar update zodra ik het zeker weet met de oplossing
update:
Je hebt sowieso een foutje in je html return, want je zegt Gebruikt: 441.5 maar dat moet Vrij zijn.
Daarnaast klopt het local bij jou ook niet, want hij geeft veel meer aan dan 5%, eerder iets in de strekking van 20%.
Verder heb ik dit in elkaar gefoefeld zodat het wel zal moeten kloppen.
Er komt een extra parameter bij in de aanroep, namelijk de breedte van het parent element waarmee ik de "bar" maak, enfin, de code zal het wel duidelijk maken hoop ik.
update2
Misschien een script eraan vast hangen dat hij kijkt naar de resolutie en dan bepaalde width per resolutie of denk ik te ver ?
Met jouw opstelling had het ook niet responsive geweest (en daarbij was dat de hele vraag niet) ;-)
Daarnaast lijkt het me ongebruikelijk dat je een cms met een smartphone wilt beheren, maar soit.
Je kunt het wel responsive krijgen middels javascript, die inderdaad de parent resizen n.a.v de viewport en met die waarde ook de bar weer resizen.
In het friggin simpel gezegd zo iets:
Maar probleem zit bij de provider denk ik, zo te zien niet echt een stukje ruimte van je zelf.
Dus server_root werkt niet.
Zou eerder drie mappen moeten uitlezen, namelijk de map cms, template en de map uploads.
Deze drie bij elkaar tellen en dan kan ik zien wat de website voor ruimte gebruikt.
Dat is dan toch wat ik in mijn allereerste reactie vermelde. (al was dat irrelevant aan de vraag)
Hoe op te lossen:
ga ik even over denken.
update -> https://gist.github.com/eusonlito/5099936
Die toepassen lijkt me wel doenbaar?
Omtrent de weergave, dat klopt de % komen niet echt overeen met de bar.
ps, zie mn update in de vorige post