Beiträge von LinuxMan

    So, die Mobile-Optimierung ist nun online ( Z7.de ). Danke für alle Tipps und Hinweise :)

    Stimmt, das mit Mediatype Handheld war ne dumme Idee von mir. Laut der Beschreibung des Types geht es dabei auch um recht exotische Geräte wie: (Handcomputer wie Palms oder Mobiltelefone, meist mit monochromen Bildschirmen und geringer Bandbreite / Zitat aus Artikel, obiger Link zu heise.de), also nix wie Smartphone und Tablet. Habe ich halt anfangs falsch interpretiert.

    Die wesentliche Differenz zwischen Desktop und Mobile habe ich wie folgt in einer einzigen CSS-Datei geregelt:

    Code
    div#HeadNavi {
            position:absolute; top:12px; text-align:center; width:94%; }
    
    
    @media (min-width:590px) {
    div#HeadNavi {
            position:absolute; top:12px; text-align:center; width:70%; } }

    Drei solcher div Tags habe ich so in der Art formatiert, das ist alles. Der Clou dabei ist, das bei der 590px Grenze aus einem 2 Spalten-Layout eine einzige schlauchartige Spalte wird. Das genügt für meinen Fall. Ansonsten habe ich die Pixelangaben der Schriftgrößen alle in em statt px angegeben. Damit waren dann alle Kompatibilitätsprobleme beseitigt.

    Die Menuleiste oben ist noch nicht, wie ich es für schmale Displays plante, auf das 3-Balken-Icon minimiert. Aber vorerst passt es in der Breite auch auf ein 320px breites Display. Google scheint auch zufrieden damit zu sein. Ein Feinschliff vom Layout wird allerdings noch folgen. Falls jemand Verbesserungsvorschläge hat, nur zu :)

    Stimmt, wenn ich obigen Link mit meinem Smartphone anklicke, habe ich angeblich nur 640x360 Pixel (quer gehalten). Beim Tablet sind es immerhin 960x552. Aber wieso erzählt dann der Hersteller was von 1280x720 bzw. 1920x1080?

    Ich habe vorhin mal nach "CSS-Weiche mobile geräte" gegoogelt und das hier gefunden:

    https://www.heise.de/ix/artikel/Allen-recht-1058764.html

    Besonders der Media-Typ "handheld" dürfte für mein Vorhaben optimal sein, um für mobile Geräte ein anderes Stylesheet auszuliefern.

    Damit werde ich jedenfalls mal einen Versuch starten. Wenn das genügt, dann ist der Umbau ja erheblich einfacher als gedacht :)

    Eine CSS-Weiche wäre möglicherweise auch eine elegante Lösung. Allerdings bezweifle ich, ob es da sinnvoll wäre, einfach nur auf verschiedene Bildschirmauflösungen zu optimieren. Das Problem ist doch, so wie ich das sehe, das die meisten Smartphones/Tablets heute HD bis Full-HD Bildschirme haben. Diese aber sind erheblich winziger als ein HD-Bildschirm am Desktop-PC. Folglich bräuchte ich eine Weiche, die auf slchen Mini-Displays große Schrift erzeugt und auf Desktops normale bis kleine Schrift. Und ich vermute mal, da müsste man nicht nach Bildschirmbreite, sondern nach Gerät selektieren.

    Ein gutes Beispiel, wie ich mir das vorstelle gibt es auf der Webseite Coinbase, da habe ich auf meinem Full-HD Bildschirm am Schreibtisch und auf meinem Smartphone (1280x720) exakt die selbe Schriftgröße. Die Headline ist etwas kleiner, aber sonst ist es identisch, egal wie ich das Smartphone drehe. Würde hier mit der Bildschirmauflösung selektiert, da müsste die Schrift doch auf dem Smartphone exstrem winzig sein, da 5" verglichen mit 24" schon ein recht extremer Unterschied ist.

    Und das Menu oben ist auf dem Smartphone auch anders als auf dem Desktop. Für das Smartphone gibt es das übliche Quadrat mit den 3 horizontalen Linien. Und für den Desktop die gewohnte Menuleiste. Um derartige Unterschiede hinzubekommen, wird man wohl kaum die Pixelbreite des Bildschirmes abfragen, oder?

    Die Seite, die ich ändern will ist diese hier: Zentrum7

    Das aktuelle Layout ist aber auch schon deutlich schlanker geworden. Es befindet sich aber noch in der Entwicklungsphase und ist noch nicht online. Folgende Elemente werden mit der neuen Version weg sein: das große Bild im Head, die fette Menuleiste wandert vorerst in eine kleine Menuleiste im Footer, Die Sprechblase mit der Tante verschwindet, übrig bleibt nur der Text. Die zufällig angezeigten Produktvorschläge verschwinden komplett. Ebenso die Navigation links und quasi alle weiteren Texte und Links. Übrig bleibt dann das Logo mit einem zusätzlichen Text darunter, darunter dann das Suchformular und dann der Footer. Und im Final Release werde ich vermutlich die Menuleiste im Footer ganz nach oben an den Dateikopf verlegen. Oder sowohl im Header als auch im Footer haben. Die Startseite sieht dann von der Anordnung der Elemente so ähnlich aus wie die von Google.

    Die Unterseiten sind dann etwa so: Zentrum7/Fernseher

    Auch hier ist das Layout wie das neue auf auf der Startseite mit dem Unterschied, das es für den Desktop ein zweispaltiges Layout geben soll mit Anzeigen in einer schmalen Spalte rechts. Für Mobile Geräte bin ich noch nicht ganz sicher. Entweder lasse ich dort mangels Platz die Anzeigen ganz weg, oder die kommen einfach ganz unten drunter.

    Hallo, ich will eine Webseite für mobile Geräte optimieren. Und zwar so, das auch Google die Seite lieben wird. Da es sich um komplett selbst geschriebenen Code in PHP/HTML handelt, werde ich das komplett händisch machen müssen. Aber dafür fehlt mir noch genügend Grundwissen. Folgendes Tutorial, das mir schonmal einen super Überblick gibt, habe ich gefunden:

    selfhtml wiki, bestehende Webseite responsiv umbauen

    Aber jetzt stellt sich mir noch die Frage, wie ich damit überhaupt anfangen sollte. Mir schwebt die Idee vor Augen, einfach zwei Varianten der Webseite anzubieten und mittels PHP abzufragen, ob ein Desktop oder ein mobiles Gerät die Seite anfordert. An mobile Geräte würde ich dann einfach eine abgespeckte Variante der bisherigen Seite senden. Ist das machbar? Und wenn ja, wie? Habe darüber leider noch nichts gefunden und wäre für jeden hilfreichen Tipp dankbar.

    Hallo, ich betreue seit einiger Zeit eine Webseite die auf Joomla aufgesetzt ist. Nun wollten wir schon länger das Layout verbessern, aber der verantwortliche kommt nicht so recht voran, also habe ich mich mal grob mit Joomla vertraut gemacht. Ich denke, dieses Tutorial hier erklärt schonmal die wichtigsten Grundlagen: http://joomla.cocoate.com/templates-selbst-erstellen

    Nun ist da aber noch die Sache mit den Modulen. Ich denke mal, da wird es etwas komplizierter. Beispielsweise haben wir auf der Webseite, die erweitert werden soll, ein Menu. Schön und gut, man kann recht leicht neue Buttons per Adminbereich erstellen und diese zu neuen Inhalten verlinken. Ich möchter aber gerne ein völlig anderes Menu haben, das noch ein zusätzliches Element hat, eine Art Überschrift mit Bild bzw. Icon. Wie schreibe ich am besten ein solches Menu als Modul?

    Normalerweise würde ich einfach eine undefinierte Liste machen und die Überschrift drüber, das wären ein paar wenige Zeilen HTML-Code. Super simpel eigentlich. Aber mit Joomla offensichtlich extrem kompliziert. Oder kann man einfach so einen HTML-Code-Schnipsel ins Template einfügen?

    Und noch eine Grundsatzfrage zu Joomla: Wird der HTML-Code generell mit XHTML geschrieben?

    Hi,

    ich habe eine Funktion, die einen void Pointer ausgibt. Und zwar so:

    Code
    void *voidPointer;
    
    
    x=hole_daten(&voidPointer);

    Dieser Pointer zeigt auf einen Bereich in dem ein Integer liegt. Diesen Integer will ich nun gerne weiter verarbeiten, aber ich bekomme das einfach nicht hin. Nehmen wir mal an, ich will den Wert in eine andere int Variable kopieren. Normalerweise geht das doch so:

    Code
    int sum;
    
    
    sum=*voidPointer;

    Aber in dem Fall geht das leider nicht. Der Kompiler meldet:

    warning: dereferencing ‘void *’ pointer
    error: void value not ignored as it ought to be

    Naja gut, schon klar irgendwie. Es fehlt ein Cast. Und der müsste doch so aussehen: (oder?)

    Code
    sum=(int)*voidPointer;

    Aber da meldet der Compiler:

    warning: dereferencing ‘void *’ pointer
    error: invalid use of void expression

    Was nur mache ich falsch? Irgendwie muss man doch an den Integerwert ran kommen, auf den der Pointer zeigt.

    Also ich habe das jetzt so gelöst:

    read(fileObject->fileDescriptor, datas, dataSize);

    Damit sind z.B. 260MB in etwa 6 Sekunden in den RAM geladen. Sollte schnell genug sein :)

    Habe leider im Moment nicht die Zeit noch eine andere Variante zu testen. Wenn jemand was schnelleres weiss, dann bitte bescheid sagen.

    Den Stack bzw. Heap betreffend gibt es auch keine Probleme. Allerdings warnt valgrind:

    Warning: set address range perms: large range 268251706

    Ich hoffe mal, solange das System 2GB oder mehr RAM hat sollte das Kein Problem darstellen. Oder hat hier jemand andere Erfahrungen gemacht?

    Es gibt mit C ja mehrere Wege eine Datei in den RAM zu schreiben. Als da wäre fread, fgets, fgetc u.s.w. Aber was ist bei sehr grossen Dateien (250MB - 1GB) am schnellsten? Und gibt es eventuell Limits, den Stack betreffend?

    Ich habe mir gedacht, man könnte ja z.B. die Dateigrösse ermitteln und dann den benötigten Speicher anfordern:

    memory=malloc(fileSize);

    Und dann so:

    for(cnt=0; cnt<fileSize); cnt++) memory[cnt]=fgetc(file);

    Das ist meiner Meinung nach die simpelste Methode, die Daten in den RAM zu schaufeln. Aber ist es auch die schnellste?

    Also wenn ich einen Text im Texteditor schreibe (auf Linux mit gEdit), das Ganze dann mit 'copy and paste' in den Firefox einfüge und zur Datenbank schicke, dann habe ich bei zwei hintereinanderfolgenden Zeilenumbrüchen folgende Zeichenfolge: "\r\n\r\n". Darum habe ich folgenden Code geschrieben:

    Das funktioniert ganz sicher zuverlässiger. Und würde übrigens keine überflüssigen <p></p> generieren, falls mal wer auf den Joke kommt, 50 mal auf die Return-Taste zu hauen, bevor das Formular abgeschickt wird.

    Nur die Tatsache, dass "\r" hierbei ignoriert wird sollte ich noch verbessern. Was, wenn mal irgendein Editor "\r\r" erzeugt? Dann hätte man nur einen einzigen Absatz.

    In Kurzform:

    <?php

    function show_data_table_xyz() {

    $datas=mysql_fetch_row($queryResult);

    $result="<table><tr><td>".$datas[0]."</td><td>".$datas[1]."</td><td>";
    $result.=$datas[2]."</td><td>".$datas[3]."</td></tr></table>\n";

    echo $result;

    return; }

    ?>

    Im HTML-Code wird dann diese Funktion an der Stelle eingefügt, wo die Tabelle hin soll.

    Das sieht doch schonmal gut aus. Allerdings, wie ist das mit den diversen Browsern? Ich würde mich wundern, wenn ich mich darauf verlassen kann, dass jeder Browser ein \n für Zeilenumbruch verwendet. Habe auch schonmal mit \n\r für einen einzigen Zeilenumbruch zu tun gehabt. Für nen neuen Absatz wäre das dann ja \n\r\n\r. Das müsste man wohl beides abfragen?

    Damit hast du auch keine PHP und HTML-Trennung ;)

    Doch. Habe eben ja nur die Grundidee gepostet. Wenn man da weiter strikt, dann kann man z.B. das hier machen:

    <?php

    require "php/init.php";

    body_start(); include "html/content.html; body_end(); ?>

    die php/init.php enthält dann alles was an PHP gebraucht wird:

    <?php

    require "php/body.php"
    require "php/irgendwas1.php";
    require "php/irgendwas2.php";

    $globalURL="http://......";
    $globalIrgendwas=FALSE; # halt alles hier rein was auf jeder Seite gebraucht wird

    ?>

    Dann könnte php/irgendwas1.php z.B. Funktionen für Datenbankabfragen beinhalten. php/irgendwas2.php hält Funktionen für Mailversand, oder was auch immer.

    Und im Endeffekt habe ich halt im Stammverzeichnis alle Seiten die zur Domain gehören. Im Unterverzeichnis php alle Skripte und im Unterverzeichnis html den Content, der ja zur Hauptsache aus HTML-Code besteht. Ein kurzes <?php show_guestbook(); ?> in der HTML-Datei sollte ja wohl kein Problem der Unübersichtlichkeit sein. Oder?

    Folgendes Vorhaben:

    Ein Leser eines Blog tippt einen Kommentar, bestehend aus sagen wir 3 Absätzen. Dann schickt Er das Formular ab und ein PHP-Skript soll den Text umformatieren, bevor er in die Datenbank geschrieben wird.

    Dazu soll für jeden Absatz ein <p> und ein </p> gesetzt werden. Gibt es dafür bereits eine PHP-Funktion?

    also ich machs so:

    1) Grundseite: 'tpl/index.tpl' ist eine HTML-Seite mit Platzhaltern wie §CONTENT§
    2) Die wird mit file_get_contents(); in eine Variable gelesen.
    3) Mittels str_replace(); ersetze ich diese Platzhalten durch Datenbank-Einträge, andere Templatefile, oder anderes.
    4) Am ende kommt genau 1 echo-Befehl, der die Variable, die bearbeitet wurde ausgibt.

    Mal ne Zwischenfrage: Warum so umständlich?

    Ich nehme z.B. einfach für jede Seite (also Startseite und alle Unterseiten) je eine Datei. Kann .html oder auch .php sein, wobei man .html per .htaccess durch den PHP-Parser schicken muss. Und die Datei sieht dann etwa so aus:

    <?php

    require "php/body.php";

    body_start();

    include "html/content.html";

    body_end();

    ?>

    In die Funktion body_start() kommt alles rein was vor dem Content fürs Layout und die Navi nötig ist. Die Funktion body_end() sorgt für Footer z.B. und fertig. Die Datei content.html kann bei Bedarf natürlich noch weitere PHP-Funktionen aufrufen.

    Also ich finde, mit dem System hat man die perfekte Trennung von Content und Design. Und ist wesentlich übersichlicher als bei Content Management Systemen.