Seite 3 von 3 ErsteErste 123
Ergebnis 51 bis 54 von 54

Thema: Webbasierte Mini-Lagerverwaltung

  1. #51

    Re: Webbasierte Mini-Lagerverwaltung

    Ich kann Dir nicht sagen, wie man es richtig macht, aber wie ich es bisher gemacht hab bzw. es machen würdeFür Plural/Singular bietet sich die Funktion "ngettext" an
    Plural/Singular lassen sich über ngettext einfangen.
    Code (PHP):
    1.  
    2. setlocale(LC_ALL, 'cs_CZ');
    3. printf(ngettext("%d window", "%d windows", 1), 1); // 1 okno
    4. printf(ngettext("%d window", "%d windows", 2), 2); // 2 okna
    5. printf(ngettext("%d window", "%d windows", 5), 5); // 5 oken
    6.  
    http://php.net/manual/de/function.ngettext.php

    Allerdings würde ich das ganze doch eher mit einer freundlichen Template-Engine wir Smarty umsetzen. Da kannst Du dann wirklich angenehm die Trennung zwischen Code und Anzeige trennen.
    War früher (TM) nie mein Ding, aber seit ich damit rumgespielt hab, lieb ich es.
    Mal sehn ob ich die Zeit finde das versuchsweise einzubasteln.

    --- [2019-03-02 13:43 CET] Automatisch zusammengeführter Beitrag ---

    Hab mich mal ein klein Wenig ausgetobt.
    https://github.com/schnoog/sqstorage
    (hab das vendor Verzeichnis nicht in die gitignore aufgenommen, so dass man composer nicht braucht)

    Mal rein gebastelt:
    Smarty Template Engine
    Ein Template für die Index-Seite

    Wenn Du Dir das Template (indexpage.tpl durchaus noch optimierungsfähig) sowie die index.php mal anschaust, wirst Du sehen wieso ich das mag.

    --- [2019-03-02 22:12 CET] Automatisch zusammengeführter Beitrag ---

    Und weiter gehts....
    Hab nun auch das Inventar mal auf Smarty umgestellt.
    Singular / Plural bei Position und Gegenstand (smarty-gettext -> ngettext -- templates/inventory.tpl Zeile 22)
    Für diesen Beitrag bedankt sich theSplit
    Gruß
    braegler

  2. #52

    Re: Webbasierte Mini-Lagerverwaltung

    Wow.... krass viele Anpassung und Änderungen von dir
    Und wie ich auf Github sehe, machst du sogar schon eine Sprachauswahlintegration, ziemlich cool.

    Das mit dem Templating und Composer schreit allerdings nach Techdebt... Composer kenne ich nur von Namen und Smarty Templating, nur minimale Vorkenntnisse.
    Ich habe vor Jahren mal mit Flask und Jinja2 Templating gearbeitet - daher lässt sich ein wenig erahnen was Smarty macht, aber ich weiß nicht über die Details. Und die Code Aufteilung ist etwas gewöhnungsbedürftig, wobei....

    Also, was $smarty->assign("storages",$storages); macht, würde ich darauf tippen, dass quasi eine PHP Variable in das Scope des Templates (für weitere Nutzung in der Ausgabe) zu "exportieren"/fest zu legen?

    Die geschweiften Klammern => { } notieren PHP Code und oder Smarty Anweisungen?

    Zum Beispiel hier und hier.

    {literal} und {/literal} Kennzeichnen (JS) Code Blöcke? Bzw. wenn etwas nicht mit Smarty geparsed werden sollen?

    Wenn ich richtig sehe, ich glaube das ist worauf du hinaus wolltest, das die Logik von der Darstellung/Rendering, für und über Templates, entkoppelt wird, so das ein Template direkt alle nötigen Inhalte bekommt und dann nur noch ausgerendert werden muß?

    Bei Composer kann ich mir allerdings nicht viel bei denken, kann also nicht einschätzen ob das eine konkrete Verbesserung darstellt...
    Gruß theSplit
    @ I might be sober. The good things... the bad things... all I ever know is here! @
    +++ thunderNote +++ Thom's Inventarverwaltung +++ Pi-Thread +++ IT-Talents Code Competitions +++ NGB-Statistik Opt-Out/Anonymisierung +++ Stonerhead +++ Add-on Flag Cookies +++ Google Image Directlinks +++ dwrox.net

  3. #53

    Re: Webbasierte Mini-Lagerverwaltung

    Composer kannst Du getrost vergessen. Hab den /vendor/ Ordner mit im Git, also schon alles bereits zum loslegen

    Normalerweise ist der /vendor/ im .gitignore und der Entwickler installiert die in der composer.json gelisteten Abhängigkeiten mittels "composer install" (das erzeugt das vendor Verzeichnis und füllt es mit Inhalt)

    Spoiler: 


    Deshalb kommen selbst riesige Projekte als git-checkout winzig an. Mit Composer werden dann Unmengen an Daten reingeschaufelt.
    Hält das git schön schlank.
    Auch meekro könnte man so einbinden:
    Lokale meekro-Datei löschen, include löschen
    Mit installierten Composer in der Kommandozeile
    Code (Bash):
    1.  
    2. composer require "sergeytsalkov/meekrodb"
    3. composer update
    4.  
    Und schon wäre die manuell installierte Version durch die von Composer ersetzt.
    Vorteil:
    Mit composer update kann dann jederzeit auf den neusten Release aktualisiert werden


    Das schöne an mit Composer installierten Libs: Du musst dich nichts ums linken kümmern. Einmal
    Code (PHP):
    1. include_once("vendor/autoload.php");
    irgendwo einbinden, und du kannst sie Bibliotheken nutzen. Passiert in der includer.php

    Die geschweiften Klammern sind smarty Anweisungen.
    Code (PHP):
    1.  
    2. //Code
    3. $smarty->assign("variable","Testtext")
    4. //Template:
    5. Ausgabe 1:{$variable}
    6. Ausgabe 2:{t}{$variable}{/t}
    7.  
    8. //Ausgabe analog zu
    9. //Ausgabe 1:
    10. echo "Testtext";
    11. //Ausgabe 2:
    12. echo gettext("Testtext");
    13.  
    Man kann im Template auch mit Variablen arbeiten.
    Code (PHP):
    1.  
    2. {$test=1}
    3. Nummer {$test}<br>
    4. {$test=$test+1}
    5. Nummer {test}
    6.  
    Nummer 1
    Nummer 2
    ausgeben.

    Smarty hat eine extrem flache Lernkurve.
    Besonders Dinge wie Tabellen usw. füllen ist damit nett.
    Foreach hat nette Features wie last und first.
    Für diesen Beitrag bedankt sich theSplit
    Gruß
    braegler

  4. #54

    Re: Webbasierte Mini-Lagerverwaltung

    Leicht verständliche und nachvollziehbare Erläuterungen dazu. Danke Dir!
    Gruß theSplit
    @ I might be sober. The good things... the bad things... all I ever know is here! @
    +++ thunderNote +++ Thom's Inventarverwaltung +++ Pi-Thread +++ IT-Talents Code Competitions +++ NGB-Statistik Opt-Out/Anonymisierung +++ Stonerhead +++ Add-on Flag Cookies +++ Google Image Directlinks +++ dwrox.net

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •