profistart e-commerce blog

Brauchst du Hilfe in Prestashop, Odoo, Javascript, Angular, Smarty, PHP, Mysql oder Postgres Datenbanken?

profistart E-Business Professional Blog


Schreib uns eine E-Mail an: support(at)profistart.com
Wir werden die Lösung hier im profistart Blog posten

PROFISTART JAVASCRIPT | JS NEWS


  • Laravel 5.7 Veröffentlichung Das PHP Framework Laravel 5.7 ist Open-Source und sehr beliebt bei der Entwicklung von Web-Anwendungen. Lavarel hat die MVC-Architektur und verwendet Symfony. Laravel hat eine benutzerfreundliche Verwaltung und ein übersichtliches Dashboard für Entwickler. Laravel verwendet Array-Calls und generiert damit URL-Weiterleitungen. Auch können Fehler besser getrackt werden und Laravel Scoping. Zusammenfassend ist Laravel ein gutes Werkzeug für die Softwareentwicklung in PHP.

  • Node.js 10 Release Was ist neu?

    • OpenSSL 1.1.0 Support
    • Stabile Version von Node.js API
    • Bugfix String Funktionen
    • Error Handling
    • Trace Events

  • Webpack 4 release Webpack 4 bietet mit der neuen Version viele neue Funktionen. Webpack 4 ist 40% schneller. Bugs in Plugins wurden behoben. Das CommonsChunkPlugin wurde durch optimation.splitChunks ersetzt, das viel flexibler ist.

  • Bootstrap 4.0 Release Das beliebte Open-Source CSS-Framework Bootstrap hat Bootstrap 4.0 mit neuen Funktionen veröffentlicht. Das Entwicklerteam hat Fehler behoben, das Framework optimiert und die Dokumentation erweitert. Die Normalize.css zum Rendern von HTML-Elementen wurde mit dem Bootstrap Reboot verbunden, um eine bessere Funktionalität zu gewährleisten. Bootstrap 4.0 unterstützt IE10 und iOS7. Für IE8, IE9 und iOS6 wird Boostrap 3 benötigt. Auch Flexbox, Formular-Design und das Grid System wurden für ein flexibleres Design verbessert.

  • Node.js framework NestJS NestJS ist ein serverseitiges Framework das Entwickler unterstützen soll. NestJS bietet Microservice Architekturen, Driven Design und Event Sourcing für Entwickler an. Das kompakte NestJS Framework kann als ganzes oder auch als einzelne Komponenten verwendet werden. NestJS ist in TypeScript geschrieben und unterstützt Dependency Injection Container, Factory Injection, Modularität und die Testbarkeit von Anwendungen.

  • Ember.js Front-End-Bibliothek GlimmerJs für mobile Anwendungen Die GlimmerJs UI Komponentenbibliothek bietet eine virtuelle Maschine zum Ausführen von Anwendungen im Webbrowser. GlimmerJs bietet Templates und eine Rendering Engine. Eine der neuen Funktionen von GlimmerJs ist das Kompilieren von Templats in JSON-Format.

  • Nginx Plus 12 mit NginScript NginScript kann für die Programmierung von Aktionen in HTTP, TCP und UDP verwendet werden. NginScript bietet zusätzliche mathematische Methoden, String-Methoden und Konstanten. Die Nginx Plus 12 Konfiguration kann vom Master-Server auf Peers übertragen werden. Benutzerverkehr kann über Load-Balancing zum nächsten Server zur Verarbeitung weitergeleitet werden. Die R12 verwaltet Cache-Aktualisierungen automatisch. Auch bietet Nginx Plus 12 Überwachung von vielen Aktivitäten wie Leistung, Reaktionszeit und Speicherkapazität.

  • Javascript Framework Nectar.js kompiliert Javascript in native Binärdateien, das für alle Plattformen kompatibel ist Die Vision von Nectar.js ist Javascript für jede Plattform universell einsetzbar zu machen. Javascript funktioniert auf vielen Plattformen. Nectar.js möchte alle Lösungen in einem Code vereinen, der auf allen Plattformen funktioniert.

  • Multi-Thread serverseitige Javascript-Laufzeit Framework Nexus.js Nexus.js kann mit dem sehr bekannten Javascript Framework Node.js verglichen werden. Nexus.js hat keine Ereignisschleifen. Alle Ereignisse werden in einem Thread-Pool eingeplant, die auf allen verfügbaren CPU-Kernen wie Tasks in Windows je nach Priorität ausgeführt werden.

  • Rollbar ist ein Fehlerüberwachungssystem in Javascript Rollbar ist schnell und einfach einzurichten. Rollbar unterstützt React, Angular, Node, Ember, Backbone, Vue, Meteor usw. Mit Rollbar erhalten Sie Fehler in Echtzeit, die nach der Ursache mit detaillierten Stacktrace gruppiert und aufgelistet werden. Rollbar ermöglicht das Debuggen und Erkennen von Fehlern und vieles mehr, um Ihren Javascript-Code zu debuggen.

  • Odoo install: Python & Flask - app.route() & render_template() Das bekannte ERP System Odoo basiert auf der Programmiersprache Python anstatt PHP. PHP ist die Programmiersprache für Webanwendungen und Server-Client Kommunikation. Vorteile von Python sind unter anderem, die sehr einfache Syntax der Programmiersprache. Mit Python können neben Webnawendungen auch Desktop Anwendungen mit Benutzeroberfläche für Windows oder Linux entwickelt werden. Python zusammen mit dem Flask Framework erlaubt das Routing und das Einbinden von Templates, ähnlich der Template Engine Smarty Templates. Per app.route() werden dabei Inhalte, Funktionen oder Templates einer bestimmten URL zugeordnet. Mit render_template() wird ein Template im bekannten .html Format eingefügt. Der einzige erkenntliche Nachteil ist, dass Python zuerst eingerichtet und eingestellt werden muss, damit es laufen kann. Im Gegensatz ist PHP und Appache standard und bereits auf den meisten Servern und Betriebssystemen mit einem Klick betriebsbereit.

  • Javascript Debugging Tipps

    • Standard: console.log();
    • Tabelle um Arrays auszugeben: console.table(array);
    • Ladezeiten überprüfen: console.time('TimerA'); function(myfunction) console.timeEnd('TimerA')
    • Ausgeführte Funktionen in Echtzeit verfolgen: console.trace('TraceA');

    Der Google Chrome Explorer bietet noch einige Funktionen mehr, um Javascript Code zu debuggen. Zum Beispiel minimierten Javascript Code wieder leserlicher machen oder Javascript Funktionen debuggen.

  • Javascript Framework React v16.0 Release. Eine neue Version von Javascript React v16.0 wurde veröffentlich. Das beliebte Javascript Framework bringt in der neuen Version neue Render- und Rückgabetypen, eine bessere Fehlerbehandlung, eine bessere DOM Verwaltung, das auch SVG Elemente erkennt und die neue erweiterte Version von React ist kleiner als sein Vorgänger.

  • Garbage Collection mit JavaScript. Javascript verwendet auch die Garbage Collection, um Speicherplatz automatisch zu verwalten. So ist der Garbage Collector ein Werkzeug für die Verwaltung von notwendigen und unnötigen Speicher, um Speicherplatz zu sparen. Unnötiger Speicher wird gelöscht und freier Speicherplatz wird mit Garbage Collector wieder bereitgestellt.

  • JavaScript neuer Paket Manager Yarn. Der bekannteste Paket Manager für Javascript ist npm. Npm bietet ca. 350000 Pakete an. Npm wird von ca. 5 Millionen Entwicklern genutzt und hat eine Downloadrate von ca. 5 Milliarden im Monat. Bei der Suche nach Verbesserungen des npm Paket Managers in Sicherheit, Leistung und Stabilität entstand der neue Paket Manager Yarn. Yarn ist schnell, zuverlässig und sicher. Yarn hat Zugang zu allen npm Paketen und ist auf die Entwicklung von neuen Software-Produkten und Features spezialisiert. Yarn cached alle Packete. Yarn benutzt Cecksummen um Pakete zu verifizieren. Yarn benutzt optimale Lockdateien und Algorithmen für die gleiche Installation von Paketen auf allen System.

  • JavaScript und TypeScript sind die Sprachen des Webs. Javascript ist der Super-Controller der Web-Elemente, das monopolartig bestimmt was Web-Elemente und andere Sprachen machen. Typescript ist die Verbindung, die mit allen Elementen und Sprachen kommuniziert. Zum Beispiel wurde Angular in Typescript geschrieben. Typescript bekam dadurch in sehr kurzer Zeit eine große Bekanntheit. Typescript verbindet mehr als 20 Sprachen, z.B. Javascript und Java.

  • Javascript Gulp.js der einfachere Weg zum Entwickeln. Die kompakte API Oberfläche macht Gulp.js einfach. Gulp.js arbeitet schnell und effektiv ohne Daten auf die Festplatte zu übermitteln. Mit Gulp.js haben Sie eine qualitativ Hohe und einfache Entwicklungsumgebung.

  • Javascript Apps Meteor.js Meteor.js erlaubt Entwicklern 10 Zeilen Code zu schreiben, das normalerweise 1000 Zeilen benötigt. Dies ist mit Meteor.js und integriertem JavaScript Stack möglich. Mit Meteor.js bauen Sie Anwendungen automatisch für alle Geräte wie Android, iOS oder Desktop. Mit dem Meteor.js Framework können Sie sich auf Features konzentrieren, anstatt Ihre Zeit in Komponenten Einrichtung zu investieren.

  • Moon.js inspiriert von Vue.js Moon.js ist eine super kompakte, schnelle und intiuitive Javascript Bibliothek. Moon.js hat eine Größ von 5kb. Moon.js benutzt virtuelle DOM Elemente und kann einzelne Elemente aktulisieren ohne die komplette Seite neuzuladen. Moon vereinigt die positiven Eigenschaften von bekannten Javascript Bibliotheken und Frameworks für die Entwicklung von Benutzeroberflächen.

  • Microservice für Front-End-Web-Entwicklung. Aktuell wird die Front-End-Entwicklung immer wichtiger durch Javascript Frameworks. Denn es ist schneller und nicht so ressourcenintensiv für Server wie Back-End-Anwendungen. Anfragen werden direkt clientseitig bearbeitet. In Zukunft ist das Stichwort 'Micro frontends'. Die Front-End-Entwicklung bekommt mehr Struktur durch einen gemeinsamen Kern, getrennte Module und das Framework für eine zusammenhängende Software.

  • Node.js Async Funktion.Bisher ware asynchrone Funktionen in anderen Programmiersprachen wie Kotlin, C# oder Go verfügbar. Die Ausführung von asynchronen Funktionen kann angehalten werden und ein Promise-Objekt wird statt Boolean oder Wert zurückgeben. Es können alle Promise-Objekte oder die Ablehnung von Promise-Objekten abgefangen werden. Jetzt auch mit asynchronen Funktion in Javascript Node.js

  • Javascript mit TC39 und ECMAScript. TC39 ist ein Teil von ECMA und bedeutet technischer Fachausschus Nummer 39. TC39 ist der Standard für Javascript Code unter dem ECMAScript Protokoll. ECMAScript behandelt die String Konvention, Definitionen und Validierung der Javascript Sprache.

  • Express.js für Javascript Node.js Express.js besteht minimum aus einer Datei app.js mit Programm und Controller zum starten eines Webservers. Express.js stellt jeder HTTP-Request Anfrage mehrere Weiterleitungswerkzeuge zur Verfügung die nacheinander ausgeführt werden. Eine logische Abfolge ist die Anfrage, die Antwort und der nächste zu bearbeitende Requesthändler. Express.js wird überwiegend zusammen mit MongoDB, NoSQL, Angular.js und Node.js eingesetzt.

  • Rich Text Editor mit Draft.js erstellen. Javascript Draft.js ist ein starkes Framework um ein Rich Text Editor zu entwickeln. Draft.js macht die Arbeit an einem Rich Text Editor um ein vielfaches einfacher. Draft.js basiert auf den Javascript Frameworks react.js und immutable.js.

  • CheerpJ kompiliert Java bytecode und konvertiert es in Javascript. CheerpJ konvertiert Java in Javascript ohne Zugang zum Java Quellcode. Serverseitige Komponenten werden zum clientseitigen und browserbasierten Javascript. Voraussichtlich wird im Juli CheerpJ mit der CheerpL Applet Viewer als Chrome Extension veröffentlicht.

  • ReactJS ist eine kostenlose Javascript Bibliothek für den Aufbau von Benutzeroberflächen. React.js bietet einseitige Anwendungen oder mehrere interaktive Ansichten. React.js wurde von einem Facebook Softwareentwickler entwickelt. React verwaltet HTML DOM Elemente und aktualisiert bestimmte Komponenten ohne die Seite neuzuladen.

  • Total.js als kostenlose alternative zu Slack. Wer unabhängig auf eigenen Servern ein Team-Messenger betreiben will, ist mit dem Javascript OpenSource Framework Total.js gut bedient. Echtzeit Chat mit Dateianhang, Emojis und mehr. Allerdings kommt Total.js an den commerciellen Konkurrenten Slack nicht ganz ran.

  • Neu TypeScript 2.4 beliebtes Framework von Javascript bietet dynamischen Import von Parametern und verbesserte Ladezeiten. TypeScript 2.4 bietet auch modulare Programmierung mit kleineren Code Bündeln. Auch wird mehr Sicherheit durch Überprüfung von Parametern von TypeSript 2.4 gewährleistet.

  • Javascript Unterschied zwischen undefined und NULL. Undefined steht für eine Variable, die deklariert ist aber kein Wert hat. Undefined ist ein Typ von undefined. Das Objekt NULL zeigt einen nicht existierenden oder leeren Wert an.

  • Javascript console Objekt ein Teil vom window Object hilft ihnen strings, array und Objekte auszugeben um Code zu debuggen. Das häufigste Objekt von console ist window.console.log. Wir haben 3 weitere Objekte info, warn und error um Code zu debuggen.

  • Javascript Design Muster Currying mit Parameter. Currying ist ein starkes Javascript Framework für funktionale Programmierung. Javascript Currying ist modulare und sequentielle Programmierung . Javascript Currying unterteilt eine Funktion mit mehreren Argumenten in mehrere sequentielle Funktionen für ein Argument.

  • Javascript Node.js framework Mocha. Mocha ist ein Test-Framework in Javascript und läuft auf Node.js. Mit Mocha können Sie asynchron und seriell, flexible Berichte erstellen. Mit Mocha können Sie versteckte Fehler mit Testfällen abbilden und nachvollziehen.

  • Javascript library Preact.js bietet schnelles 3kb mit ES6 API. Preact.js als Alternative zu React.js. Preact hat mehr als 12.500 Sterne auf GitHub. Preact ist sehr effektiv und Entwickler arbeiten mit sehr schnellen und einfachen JavaScript Web-Anwendungen.

  • Verwalten von Milliarden von Informationen mit Node.js und MySQL. Einfach und schnell mit guter Planung und Indexierung von MySQL Datenbanken. Viele Partitionen und Tabellen, um viele Daten zu verwalten. Eine gute Alternative ist NoSQL. Verwenden Sie Node.js Monitoring und Debugging Tool für die Überwachung von Daten.

  • WebStorm IDE Javascript Entwicklungsumgebung ist sehr nützlich für fortgeschrittene Javascript-Entwicklung. Jeder, der nach einem Javascript-Debugging-Tool sucht, ist mit WebStorm gut bedient. WebStorm ist für Javascript wie PHPStorm für PHP. Sie können mit WebStorm auch CSS Stylesheets und bekannte Javascript Frameworks wie Angular, React, Vue.js, Node.js, Meteor und Electron debuggen und entwickeln.

  • Node.js Monitoring Tool für Entwickler, um Entwicklungsverläufe zu verfolgen und Node.js Frameworks zu debuggen. Mit dem neuen Node.js Monitoring Tool Operationen besser verstehen, Ausfallzeiten vermeiden und Node.js Infrastrukturen kontrollieren.

  • Node.js 8 neues Release. Die wichtigsten Verbesserungen von Node.js 8 ist die N-API die native Add-ons erlaubt auf allen Node.js Versionen zu laufen und die Asysnc Hooks API die den Benutzer über alle aktiven Objekte in Node.js informiert. Ein weiteres Merkmal von Node.js 8 ist die null gefüllte Pufferung zum Schutz von empfindlichen Informationen.

  • Javascript Framework EmberJS 2 für den einfachen Aufbau von Webanwendungen. Das Javascript MVC Framework EmberJS 2 analog zu Angular, Laravel, Rails oder anderen MVC Frameworks, aber einfacher im Routing, in der Handhabung von Template Vorlagen, bei der Verwaltung von Modellen, Komponenten und im Controlling.

  • npm v5.0.0 Veröffentlichung. Das CLI Team veröffentlichte npm 5 mit vielen Verbesserungen in Performance, Fehlerbehandlung und Fehlertoleranz. Erhebliche Veränderungen wurden für den Installer und das Cache System von npm 5 durchgeführt.

  • IT-Infrastruktur unabhängige Programmierung mit AWS Lambda und Node.js. Cloud Entwicklung ohne Leistungsnachteile am eigenen Standort. Konzentration nur auf die Anwendungsfunktionalitäten. Seit dem Start von AWS Lambda 2014 ist die serverunabhängige Programmierung mit Node.js sehr beliebt. Cloud-Anbieter bieten eigene Serverless-Dienste an. Zum Beispiel Google Cloud Functions, IBM OpenWhisk oder Microsoft Azure Functions.

  • Load Balancing mit Node.js in NGINX und Docker: Entwickeln Sie einen Teil ihrer Software, die Sie isolierten in Behältern verpacken. Um Ihre Software zum laufen zu bringen, benötigen Sie nur noch die entsprechenden Bibliotheken. Die Softwarearchitektur arbeitet in Containern. Sie benötigen kein volles Betriebssystem mehr, um ihre Software zu testen.

  • Neu JSON Feed ist ein Format wie RSS oder Atom. Es ist kompakter als XML. JSON Feed für besseres Lesen und Schreiben von Feeds und weniger Fehleranfälligkeit.

  • Electron Entwicklung ist schneller, günstig und moderner, um Anwendungen für Linux, Windows und Mac Betriebssysteme zu entwicklen. Electron benutzt Node.js. Die Entwicklung mit Electron via Javascript, DOM API's, HTML5 und CSS Elementen gleicht der Entwicklung einer Webanwendung.

  • D3.js Britecharts ist eine einfache und schnelle Möglichkeit, schöne visuelle Charts zu erstellen. D3.js Britecharts sind wiederverwendbar und fehlerfrei. Alle Komponenten werden mit grundlegenden Methoden für Legende Diagramm, Liniendiagramm, Balkendiagramm, Pinsel-Diagramm, Donut-Diagramm, Sparkline-Diagramm, Schritt-Diagramm, gestapelt Bereich Diagramm verwendet.

  • Das intelligente JQuery Plugin Sticky Sidebar unterstützt mehrere Sidebars in einem und ist kompatibel mit IE9+, Firefox, Chrome und Safari. Sticky Sidebar ist responsive und passt sich automatisch der Bildschirmgröße an. Probiert die Vorteile des JQuery Plugins Sticky Sidebar aus!

Ubuntu Server Administration - Inotify Beispiel


Ubuntu Server inotify Ordner überwachen und in txt Datei schreiben mit Zeitangabe. Schnellste Lösung im folgenden Code:

  • Installiere inotify
  • Starte inotifywait
  • Beschreibung
sudo apt-get install inotify-tools

Nach der Installation von inotify folgenden inotify Code im Ubuntu Terminal eintippen:

inotifywait -mr -e modify -e delete --format %T%W%f_%e --timefmt "%d/%m/%X_%H:%M" <folderpath> >> <filename_with_path>

Beschreibung: Events and Optionen von inotify:

  • inotifywait startet inotify
  • -m startet inotify wieder nach Event
  • -r überwacht alle Dateien und Ordner rekursiv
  • -e modify überwacht alle Änderungen
  • -e delete überwacht alle Löschen Events
  • --format formatiert die Ausgabe
  • --timefmt formatiert die Zeitangabe
  • > schreibt in neue Datei
  • >> schreibt in gleiche Datei (z.B. /root/check_folder.log)

Javascript Angular 2 client- und serverseitige Webanwendungen


Sichere Webanwendungen mit Benutzerauthentifizierung OAuth 2.0 und Berechtigungsstrukturen mit Angular 2 Routing

Wichtig ist die Benutzerautorisierung, da Backend Services immer mehr Javascript Frontend Anwendungen bedienen müssen. Realisiert wird das ganze durch ein Token System. Die Anwendung OpenID Connect ist dabei ein nützliches Tool. Mit Angular 2 Routing können berechtigte Anwender zu authorisierten Ansichten geleitet werden.

JWT - JSON Web Token ist ein effektives und standardisiertes Format nach RFC 7519, um ein Tokenvergabesystem zu realisieren.

Javascript Node.js Framework Express ist ein gängiges Tool für Dateiupload, Authentifizierung und Logdateien. Express ist ein Modul von Node.js für Routing. Im Prinzip werden bei einer Express Anwendung bestimmte Funktionen nach URL-Pfad und HTTP-Methode ausgeführt, um eine Antwort für den Client zu generieren.

Javascript jQuery Button verstecken einblenden und ausblenden von Feldern, Inhalten, Containern


Javascript jQuery Button zeigt versteckte div- span- oder p-tags an

Wie versteckt und zeigt man einen Container mit Javascript-Jquery-Framework?

Erster Start mit jQuery:
In der HTML-Datei im HEADER-Tag einfügen:

<head><script> src="jquery-3.2.0.min.js"> </script></head>

In der HTML-Datei im BODY-Tag einfügen:

<div class='myfield'>Hallo, you pressed the button.</div> <button class='mybutton'>Button</button>

In der HTML-Datei im BODY-Tag ganz unten einfügen:

$( function() { $( ".myfield" ).hide(); $( ".mybutton" ).click( function() { $( ".mybutton" ).show(); } ); } );

Andere Möglichkeit:

$( function() { $( ".mybutton" ).click( function() { $( ".mybutton" ).toggle(); } ); } );

Prestashop 1.6 - Richtige Sortierung der Produktreihenfolge in einer Kategorie


Bug: falsche Produktreihenfolge in einer Kategorie in Prestashop 1.6:

Folgende zwei Dateien werden gefixt: /modules/blocklayered/blocklayered.php and /classes/Tools.php

Füge folgenden Code zwischen if und else in blocklayered.php ein (Zeile ~2020):
if (version_compare(_PS_VERSION_, '1.6.1', '>=') === true){ $this->products = Db::getInstance()->executeS(' SELECT DISTINCT p.*, '.($alias_where == 'p' ? '' : 'product_shop.*,' ).' '.$alias_where.'.id_category_default, pl.*, image_shop.`id_image` id_image, il.legend, m.name manufacturer_name, '.(Combination::isFeatureActive() ? 'product_attribute_shop.id_product_attribute id_product_attribute,' : '').' DATEDIFF('.$alias_where.'.`date_add`, DATE_SUB("'.date('Y-m-d').' 00:00:00", INTERVAL '.(int)$nb_day_new_product.' DAY)) > 0 AS new, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity'.(Combination::isFeatureActive() ? ', product_attribute_shop.minimal_quantity AS product_attribute_minimal_quantity' : '').' FROM '._DB_PREFIX_.'cat_filter_restriction cp LEFT JOIN `'._DB_PREFIX_.'product` p ON p.`id_product` = cp.`id_product` '.Shop::addSqlAssociation('product', 'p'). (Combination::isFeatureActive() ? ' LEFT JOIN `'._DB_PREFIX_.'product_attribute_shop` product_attribute_shop ON (p.`id_product` = product_attribute_shop.`id_product` AND product_attribute_shop.`default_on` = 1 AND product_attribute_shop.id_shop='.(int)$context->shop->id.')':'').' LEFT JOIN '._DB_PREFIX_.'product_lang pl ON (pl.id_product = p.id_product'.Shop::addSqlRestrictionOnLang('pl').' AND pl.id_lang = '.(int)$cookie->id_lang.') RIGHT JOIN `'._DB_PREFIX_.'category_product` p_cat ON (p.id_product = p_cat.id_product) LEFT JOIN `'._DB_PREFIX_.'image_shop` image_shop ON (image_shop.`id_product` = p.`id_product` AND image_shop.cover=1 AND image_shop.id_shop='.(int)$context->shop->id.') LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (image_shop.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$cookie->id_lang.') LEFT JOIN '._DB_PREFIX_.'manufacturer m ON (m.id_manufacturer = p.id_manufacturer) '.Product::sqlStock('p', 0).' WHERE '.$alias_where.'.`active` = 1 AND '.$alias_where.'.`visibility` IN ("both", "catalog") AND p_cat.id_category = '.(int)$id_parent.' ORDER BY '.Tools::getProductsOrder('by', Tools::getValue('orderby'), true).' '.Tools::getProductsOrder('way', Tools::getValue('orderway')). ' , p.id_product'. ' LIMIT '.(((int)$this->page - 1) * $n.','.$n), true, false); $this->products += Db::getInstance()->executeS(' SELECT DISTINCT p.*, '.($alias_where == 'p' ? '' : 'product_shop.*,' ).' '.$alias_where.'.id_category_default, pl.*, image_shop.`id_image` id_image, il.legend, m.name manufacturer_name, '.(Combination::isFeatureActive() ? 'product_attribute_shop.id_product_attribute id_product_attribute,' : '').' DATEDIFF('.$alias_where.'.`date_add`, DATE_SUB("'.date('Y-m-d').' 00:00:00", INTERVAL '.(int)$nb_day_new_product.' DAY)) > 0 AS new, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity'.(Combination::isFeatureActive() ? ', product_attribute_shop.minimal_quantity AS product_attribute_minimal_quantity' : '').' FROM '._DB_PREFIX_.'cat_filter_restriction cp LEFT JOIN `'._DB_PREFIX_.'product` p ON p.`id_product` = cp.`id_product` '.Shop::addSqlAssociation('product', 'p'). (Combination::isFeatureActive() ? ' LEFT JOIN `'._DB_PREFIX_.'product_attribute_shop` product_attribute_shop ON (p.`id_product` = product_attribute_shop.`id_product` AND product_attribute_shop.`default_on` = 1 AND product_attribute_shop.id_shop='.(int)$context->shop->id.')':'').' LEFT JOIN '._DB_PREFIX_.'product_lang pl ON (pl.id_product = p.id_product'.Shop::addSqlRestrictionOnLang('pl').' AND pl.id_lang = '.(int)$cookie->id_lang.') RIGHT JOIN `'._DB_PREFIX_.'category_product` p_cat ON (p.id_product = p_cat.id_product) LEFT JOIN `'._DB_PREFIX_.'image_shop` image_shop ON (image_shop.`id_product` = p.`id_product` AND image_shop.cover=1 AND image_shop.id_shop='.(int)$context->shop->id.') LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (image_shop.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$cookie->id_lang.') LEFT JOIN '._DB_PREFIX_.'manufacturer m ON (m.id_manufacturer = p.id_manufacturer) '.Product::sqlStock('p', 0).' WHERE '.$alias_where.'.`active` = 1 AND '.$alias_where.'.`visibility` IN ("both", "catalog") AND p_cat.id_category != '.(int)$id_parent.' ORDER BY '.Tools::getProductsOrder('by', Tools::getValue('orderby'), true).' '.Tools::getProductsOrder('way', Tools::getValue('orderway')). ' , p.id_product'. ' LIMIT '.(((int)$this->page - 1) * $n.','.$n), true, false); }else{
FüPut folgenden Code im "if" anstatt von "$order_by_prefix='cp.';" in Tools.php ein (Line ~2916):
} elseif ($value == 'position' || empty($value)) { $order_by_prefix = 'p_cat.'; //$order_by_prefix = 'cp.'; }

Das wars! Nun funktioniert die Sortierung der Produktreihenfolge in Prestashop perfekt.

Prestashop 1.7 – footer.tpl ändern


Wie bearbeite ich das Smarty Template footer.tpl in Presashop 1.7?

Öffne im Ordner /themes/classic/templates/_partial/footer.tpl
Beispiel Zeile 57 und 59 den Prestashop Link zum normalen Text ändern, indem die a-href Tags durch div Tags ersetzt werden.

<div class="container"> <div class="row"> {block name='hook_footer_before'} {hook h='displayFooterBefore'} {/block} </div> </div> <div class="footer-container"> <div class="container"> <div class="row"> {block name='hook_footer'} {hook h='displayFooter'} {/block} </div> <div class="row"> {block name='hook_footer_after'} {hook h='displayFooterAfter'} {/block} </div> <div class="row"> <div class="col-md-12"> <p> {block name='copyright_link'} <div> {l s='%copyright% %year% - Ecommerce software by %prestashop%' sprintf=['%prestashop%' => 'PrestaShop™', '%year%' => 'Y'|date, '%copyright%' => '©'] d='Shop.Theme'} </div> {/block} </p> </div> </div> </div> </div>

Prestashop – class product.php


Prestashop Produkte, Produkt Mengen, Kombinationen, Attribute, Variationen

Öffne im Ordner classes die Klasse product.php
Gehe zur Zeile mit folgenden Inhalt: Hier überprüft Prestashop ob eine Variante gesetzt ist und die Varianten Verfügbarkeit gegeben ist.

if (!isset($combinations[$id_product])) $combinations[$id_product] = array(); if (isset($combinations[$id_product][$minimum_quantity])) return $combinations[$id_product][$minimum_quantity];

Hier holt sich Prestashop alle verfügbaren Variationen aus der MySql Datenbank

$sql = 'SELECT product_attribute_shop.id_product_attribute FROM '._DB_PREFIX_.'product_attribute pa '.Shop::addSqlAssociation('product_attribute', 'pa').' '.($minimum_quantity > 0 ? Product::sqlStock('pa', 'pa') : ''). ' WHERE product_attribute_shop.default_on = 1 ' .($minimum_quantity > 0 ? ' AND IFNULL(stock.quantity, 0) >= '.(int)$minimum_quantity : ''). ' AND pa.id_product = '.(int)$id_product; $result = Db::getInstance()->getValue($sql); $combinations[$id_product][$minimum_quantity] = $result; return $result;

Prestashop Admin Backend Templates


Wo finde ich die Smarty Templates für Prestashop Admin Bereich, Prestashop Backend?

Die Smarty Templates für Prestashop Admin Bereich, Backend sind in /admin/themes/default/template/controllers/products/

  • assosciations.tpl
  • attachments.tpl
  • combinations.tpl
  • customization.tpl
  • features.tpl
  • images.tpl
  • informations.tpl
  • pack.tpl
  • prices.tpl
  • quantities.tpl
  • seo.tpl
  • shipping.tpl
  • suppliers.tpl
  • virtualproduct.tpl
  • warehouse.tpl

Prestashop 1.6 BackOffice Ladezeiten verringern - Modul Handelserfolg deaktivieren

Das Modul Handelserfolg verbindet sich mit gamification.prestashop.com und führt oft zu langen Ladezeiten im Backend von Prestashop 1.6. Daher können Sie die Erfolgsanzeigen ausschalten, um die Ladegeschwindigkeit Ihres Adminbereichs zu erhöhen. Falls Sie sich nicht mehr in BackOffice einloggen können, verbinden Sie sich mit der Prestashop Datenbank, gehen Sie in die Tabelle ps_module_shop und löschen Sie den Datensatz gamification Modul.

Kategorie Navigation Menü - Smarty blockcategories.tpl und category-tree-branch.tpl


Prestashop Kategorie Navigation Menüpunkte einblenden / eingeblendet lassen

Lösung: Öffne in Prestashop in /themes/modules/blockcategories das Smarty Template blockcategories.tpl und füge unten in blockcategories.tpl folgenden Javascript (JQuery) Code ein:

<script> $(document).ready(function() { var tg_cats = window.location.pathname.substring(1); if(tg_cats == "1005-kategoriename-profistart"){ $( ".grower" ).removeClass( "CLOSE" ); $( ".grower" ).addClass( "OPEN" ); $( ".tg_geoeffnet" ).show(); }else{ $( ".grower" ).removeClass( "OPEN" ); $( ".grower" ).addClass( "CLOSE" ); $( ".tg_geoeffnet" ).hide(); } }); </script>

Schritt: Nun öffne in Prestashop in /themes/modules/blockcategories das Smarty Template category-tree-branch.tpl und ergänze in Zeile 33 den ul-Tag mit folgender Klasse.

... <ul class="tg_geoeffnet"> ...

Beschreibung: Der Javascript Code liest die aktuelle URL deiner Webseite aus und mittels JQuery wird der Kategoriename abgeglichen. Wenn der Kategoriename zutrifft, öffnet (sichtbar) JQuery automatisch die ausgeblendeten Menüpunkte in der Navigation.

Smarty Templates – PHP Smarty Array print_r


Wie kann ich den Inhalt eines PHP Arrays in Smarty Template ausgeben lassen?

Erstelle und übergebe ein PHP Array in dein Smarty Template wie im folgendem Beispiel.

<?php $php_array = array("profi" => "success", "start" => "solution"); $smarty->assign('smarty_template_array',$php_array);

Öffen dein Smarty Template und gebe dein PHP Array wie folgt im Smarty Template aus, z.B. um den Inhalt zu kontrollieren.

{$smarty_template_array|print_r}

Öffne dein Browser und tippe die Adresse deiner Webseite ein.

Prestashop Smarty Templates product.tpl – Preis Anzeige zzgl. MwSt. / inkl. Mwst.


Wie kann ich in Prestashop mit oder ohne Mehrwertsteuer bzw. Brutto oder Netto Betrag anzeigen?

Um in Prestashop die Mehrwertsteuer auszuweisen bzw. komplett auszublenden, gehen Sie in das folgende Smarty Template: /themes/deinTheme/product.tpl (~ Zeile 300)

{if $priceDisplay >= 0 && $priceDisplay <= 2} <span id="our_price_display" class="price" itemprop="price" content="{$productPrice}" style="margin-left:-20px">{convertPrice price=$productPrice|floatval}</span> {if $tax_enabled && ((isset($display_tax_label) && $display_tax_label == 1) || !isset($display_tax_label))} <!-- {if $priceDisplay == 1} {l s='tax excl.'}{else} {l s='tax incl.'}{/if} --> {/if} <meta itemprop="priceCurrency" content="{$currency->iso_code}" /> {hook h="displayProductPriceBlock" product=$product type="price"} {/if}

Die IF-Bedinung für inkl. MwSt. oder zzgl. Mehrwertsteuer (MwSt.) auskommentieren, um zzgl. MwSt. oder inkl. MwSt. komplett auszublenden. Im Prestashop Backend kann unter Kunden > Gruppen eingestellt werden, ob zzgl. MwSt. oder inkl. MwSt. angezeigt werden soll.

Prestashop – PDF Rechnung und Smarty Template Vorlagen


Prestashop PDF Rechnungsvorlagen mit Smarty Templates

Alle Rechungen von Prestashop liegen als Smarty Template File (.tpl) im root Verzeichnis im Ordner /pdf/. Die wichtigsten Templates für Ihre Rechnungen sind /invoice.tpl, /invoice-b2b.tpl. Diese Smarty Templates enthalten Bestellinformationen wie Produkt, Anzahl, Preis etc. Weitere wichtige Rechnungsvorlagen sind /header.tpl und /footer.tpl. Wie der Name schon hinweisst, sind das der Kopf- und Fußbereich der Rechnung, indem Logo Anschrift etc. der Firma hinterlegt sind. Ebenfalls wichtig für Prestashop PDF Rechnungen und Rechnungsvorlagen, ist das Smarty Template invoice-addresses-tab.tpl, darin sind die Kundeninformationen der PDF Rechnung zu finden.

Smarty Templates – SmartyBC Vergleich Smarty Klasse


Der grundlegende Unteschied zwischen der SmartyBC und Smarty Klasse ist:

SmartyBC ist abwärtskompatibel und unterstützt PHP-Befehle innerhalb der {php} {/php} Tags im Smarty Template.

<?php //Smarty Klasse require_once('path/to/smarty/libs/Smarty.class.php'); $smarty = new Smarty(); //SmartyBC Klasse require_once('path/to/smarty/libs/SmartyBC.class.php'); $smarty = new SmartyBC(); ?> //Im Smarty Template z.B. smarty_template.tpl PHP wie folgt ausführen {php} echo "Hier ist PHP"; print_r("Hier ist die PHP print_r() Funktion."); var_dump("Hier ist die PHP var_dump() Funktion."); {/php}

Prestashop – Navigation DropDown Menü blockuserinfo nav.tpl


Wandeln Sie in Prestashop Ihre Navigation für den Kundenbereich in ein DropDown Menü um

Lösung: Öffnen Sie das Smarty Template nav.tpl im Modul blockuserinfo von Prestashop. Gehen Sie dazu in den folgenden Ordner: /themes/deinTheme/modules/blockuserinfo

Ersetzen Sie Zeile 7 bis 17:

<div class="header_user_info"> {if $is_logged} <a class="logout" href="{$link->getPageLink('index', true, NULL, "mylogout")|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Log me out' mod='blockuserinfo'}"> {l s='Sign out' mod='blockuserinfo'} </a> {else} <a class="login" href="{$link->getPageLink('my-account', true)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Log in to your customer account' mod='blockuserinfo'}"> {l s='Sign in' mod='blockuserinfo'} </a> {/if} </div>

Durch folgenden Code:

<div class="header_user_info"> {if $is_logged} <div class="dropdown dropdown_after_before"> <a class="account" data-toggle="dropdown" href="#"><span class="wdt_li"><i class="icon-user"></i></span><span> {$cookie->customer_firstname} {$cookie->customer_lastname}</span></a> <ul class="dropdown-menu toggle_ddm" role="menu"> <li><a href="{$link->getPageLink('my-account', true)|escape:'html':'UTF-8'}" title="{l s='View my account' mod='blockuserinfo'}"><div class="wdt_li"><i class="icon-suitcase"></i></div> <div>{l s='Account' mod='blockuserinfo'}</div></a></li> <li><a href="{$link->getPageLink('history', true)|escape:'html':'UTF-8'}" title="{l s='Orders' mod='blockuserinfo'}"><div class="wdt_li"><i class="icon-list-ol"></i></div> <div>{l s='Orders' mod='blockuserinfo'}</div></a></li> <li><a href="{$link->getPageLink('addresses', true)|escape:'html':'UTF-8'}" title="{l s='Addresses' mod='blockuserinfo'}"><div class="wdt_li"><i class="icon-map-marker"></i></div> <div>{l s='Addresses' mod='blockuserinfo'}</div></a></li> <li><a href="{$link->getPageLink('identity', true)|escape:'html':'UTF-8'}" title="{l s='Information' mod='blockuserinfo'}"><div class="wdt_li"><i class="icon-info"></i></div> <div>{l s='Personal info' mod='blockuserinfo'}</div></a></li> <li><a href="{$link->getModuleLink('favoriteproducts', 'account', [], true)|escape:'html':'UTF-8'}" title="{l s='My favorite products.' mod='favoriteproducts'}"><div class="wdt_li"><i class="icon-star"></i></div> <div>{l s='Favoriten' mod='favoriteproducts'}</div></a></li> {capture assign="HOOK_USER_INFO"}{hook h="displayUserInfo"}{/capture} {if !empty($HOOK_USER_INFO)}{$HOOK_USER_INFO}{/if} <li class="divider style="background-color:#D3D3D3;">Tahsin Goekokus</li><li><a class="logout" href="{$link->getPageLink('index', true, NULL, "mylogout")|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Log me out' mod='blockuserinfo'}"><div class="wdt_li"><i class="icon-sign-out"></i></div> <div>{l s='Sign out' mod='blockuserinfo'}</div></a></li> </ul> </div> {else} <a class="login" href="{$link->getPageLink('my-account', true)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Log in to your customer account' mod='blockuserinfo'}"> {l s='Sign in' mod='blockuserinfo'} </a> {/if} </div>

Prestashop – Admin Bestell E-Mail Sprachdatei fehlt


Wenn Sie eine Mail an Ihren Kunden senden möchten, ist ein Fehler aufgetreten Sprachdatei fehlt, indem Sie die Mail vom Backend in prestashop senden.

Lösung:

  1. Datei im folgenden Pfad: /themes /yourtheme /mails /yourlanguage /lang.php
  2. Kopiere die Datei lang.php in dein root-Verzeichnis /mails /yourlanguage/

Der Fehler tritt auf, weil die Sprachdatei in root / mails erwartet wird, aber die Sprachdatei in prestashop ist in / themes / mails / yourlanguage.

Prestashop – Warenkorb Button einblenden oder ausblenden im Smarty Template product.tpl


Wie blende ich den Warenkorb Button ein oder aus, wenn mein Shop aktiviert ist?

Lösung: Öffne das Smarty Template im Ordner /themes/meintheme/product.tpl
Im Smarty Template springe zur Zeile ~ 500 mit folgendem Inhalt

<div class="box-cart-bottom"> <div if (!$allow_oosp && $product->quantity <= 0) || !$product->available_for_order || (isset($restricted_country_mode) && $restricted_country_mode) || $PS_CATALOG_MODE} class="unvisible" /if > <p id="add_to_cart" class="buttons_bottom_block no-print"> <button type="submit" name="Submit" class="exclusive"> <span> if $content_only && (isset($product->customization_required) && $product->customization_required) l s='Customize' else l s='Add to cart' /if </span> </button> </p> </div> </div> <!-- end box-cart-bottom -->

Im ersten div-Tag wird nach Bedingung, die im Backend vom Prestashop eingestellt werden kann, der Warenkorb-Button ein- oder ausgeblendet. In diesem Fall zwischen den if-Tag mit class="unvisible"

Hier kann man die if-Bedingung komplett rauslassen oder andere Bedingungen im Prestashop Smarty Template product.tpl setzen.

Prestashop – Warenkorb Kasse Button im Bestellprozess ändern


Wie kann ich in Prestashop den Warenkorb Kasse Button Namen im Bestellprozess ändern?

  1. Öffne folgendes Smarty Template im folgenden Verzeichnis /themes /mytheme /shopping-cart-product-line.tpl
  2. Springe zum Ende des Smarty Templates
  3. Füge folgeden javascript (jquery) Code am Ende vom Smarty Template /themes /mytheme /shopping-cart-product-line.tpl ein
$( document ).ready(function() { $('.standard-checkout').empty().append(' weiter '); });

Odoo - EAN-13 Barcode mit Preis


Hier der richtige Code, um ein EAN Barcode mit Preis richtig ohne Fehler einzuscannen:

this.add_barcode_patterns(attributes.patterns || { 'product': ['xxxxxxxxxxxxx'], 'cashier': ['041xxxxxxxxxx'], 'client': ['052xxxxxxxxxx'], 'weight': ['31xxxxxNNNDDx'], 'discount': ['25xxxxxxxNNNx'], 'price': ['28xxxxxNNDDDx'], });

Prestashop – Attribut Variante Warnung product.tpl / product.js


Smarty Template-Pfad: prestashop/themes/yourtheme/product.tpl – Zeile ~ 220

Füge einen neuen span-Tag mit folgender ID ein:

{*{l s='Availability:'}*} quantity <= 0 && !$allow_oosp} class="warning_inline"{/if}> {if $product->quantity <= 0}{if $PS_STOCK_MANAGEMENT && $allow_oosp}{$product->available_later} {else} {l s='This product is no longer in stock'}{/if}{elseif $PS_STOCK_MANAGEMENT}{$product->available_now} {/if}

Javascript Template-Pfad: prestashop/themes/yourtheme/js/product.js – Zeile ~ 535

Am Ende der Funktion findCombination() vor der Funktion updateDisplay(), folgenden JQuery Code einfügen:

//Kombination nicht gefunden console.log("12. Combination nicht gefunden"); $("#variante_nicht").text("Variante nicht Verf&uuml;gbar"); $("#variante_nicht").css('display','block'); $('.box-cart-bottom').css('display','none'); updateDisplay();

Diese Stelle wird aufgerufen, wenn kein Produkt in Prestashop gefunden wurde. So kannst du an dieser Stelle beliebige Ausgaben einfügen, wenn keine Variante gefunden wurde.

Prestashop - Menge Verfügbarkeit Warnung product.tpl / product.js:


Wenn die Warnung letzte Menge verfügbar nicht mehr verschwindet, dann kopiere folgende Code Zeile ~ 595 in der Funktion findCombination() in der Javascript Datei product.js:

function findCombination() { if (!allowBuyWhenOutOfStock){ if (quantityAvailable <= maxQuantityToAllowDisplayOfLastQuantityMessage){ no_var_quantity = 0; } } ...

Erstelle eine Variable no_var_quantity mit default value 2. Setzte no_var_quantity am Ende von der Funktion findCombination() auf 1:

... no_var_quantity = 1; updateDisplay(); }

Prestashop Regristrierungsformular Authentifizierung authentication.tpl


Um in Prestashop in der Authentifizierung Pflichtfelder zu bestimmen öffne die PHP-Datei Address.php im Ordner classes (Zeile 107 - 134)

public static $definition = array( 'table' => 'address', 'primary' => 'id_address', 'fields' => array( 'id_customer' => array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false), 'id_manufacturer' => array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false), 'id_supplier' => array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false), 'id_warehouse' => array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false), 'id_country' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true), 'id_state' => array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId'), 'alias' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'required' => true, 'size' => 32), 'company' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'size' => 64), 'lastname' => array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32), 'firstname' => array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32), 'vat_number' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'required' => true,'size' => 50), 'address1' => array('type' => self::TYPE_STRING, 'validate' => 'isAddress', 'required' => true, 'size' => 128), 'address2' => array('type' => self::TYPE_STRING, 'validate' => 'isAddress', 'size' => 128), 'postcode' => array('type' => self::TYPE_STRING, 'validate' => 'isPostCode', 'size' => 12), 'city' => array('type' => self::TYPE_STRING, 'validate' => 'isCityName', 'required' => true, 'size' => 64), 'other' => array('type' => self::TYPE_STRING, 'validate' => 'isMessage', 'size' => 300), 'phone' => array('type' => self::TYPE_STRING, 'validate' => 'isPhoneNumber', 'size' => 32), 'phone_mobile' => array('type' => self::TYPE_STRING, 'validate' => 'isPhoneNumber', 'size' => 32), 'dni' => array('type' => self::TYPE_STRING, 'validate' => 'isDniLite', 'size' => 16), 'deleted' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false), 'date_add' => array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false), 'date_upd' => array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false), ), );

Hier sind die Felder des Registrierungsformulars in Typ, Größe und Pflichtfeld bei der Authentifizierung definiert. Zum Beispiel wurde in Zeile 250 die vat_number (Steuernummer) mit "'required' => true" als Pflichtfeld definiert.

Prestashop – Bezahl Logo Visa Master und Attribute Auswahl aus der Produktseite entfernen


Wie kann man Attribut Auswahl aus der Produktseite entfernen?

  1. Im Themes Verzechnis
  2. Öffne das Smarty Template product.tpl
  3. Gehe in Zeile 347
  4. Im div-Tag (id=attributes)
  5. style=“display:none“ in den div-Tag einfügen

Wie entferne ich das Bild Block Visa Master Payment Logo?

  1. Login Backend
  2. Gehe zu Module
  3. Klicke auf Positions
  4. Deaktiviere Block Payment Logo im Hook

Aufgabe: Prestashop Module sent to a friend neues Feld hinzufügen


input text field oder textarea einfügen im Smarty Template /themes /mytheme /modules /sendtoafriend /sendtoafriend-extra.tpl (Zeile 64)

<p class="text"> <[label for="friend_comment"> {l s='Friend Comment' mod='sendtoafriend'}]> <[/label]> <[input id="friend_comment" name="friend_comment" type="text" value=""]> </p>

Erhalte deine id value in javascript /themes /mytheme /js /modules /sendtoafriend /sendtoafriend.js (Zeile 40)

var name = $('#friend_name').val(); var email = $('#friend_email').val(); var stf_comment = $('#friend_comment').val();

Setze deine id value in die ajax POST FunKtion (Zeile 54)

$.ajax({ url: baseDir + 'modules/sendtoafriend/sendtoafriend_ajax.php?rand=' + new Date().getTime(), type: "POST", headers: {"cache-control": "no-cache"}, data: { action: 'sendToMyFriend', secure_key: stf_secure_key, name: name, email: email, id_product: id_product, stf_comment: stf_comment }

Öffne die PHP-Datei /modules /sentoafriend /sendtoafriend_ajax.php (Zeile 50)

foreach ($friend as $key => $value) { if ($value['key'] == 'friend_name') $friendName = $value['value']; elseif ($value['key'] == 'friend_email') $friendMail = $value['value']; elseif ($value['key'] == 'id_product') $id_product = $value['value']; elseif ($value['key'] == 'friend_comment') $friendComment = $value['value']; } } else { $friendName = Tools::getValue('name'); $friendMail = Tools::getValue('email'); $id_product = Tools::getValue('id_product'); $friendComment = Tools::getValue('stf_comment'); }

(Zeile 77)

$templateVars = array( '{product}' => $product->name, '{product_link}' => $productLink, '{customer}' => $customer, '{name}' => Tools::safeOutput($friendName), '{friend_comment}' => Tools::safeOutput($friendComment) );

Aufgabe: Prestashop block newsletter


Prestashop Fehler: Sprachdatei nicht gefunden

Ich hatte dieses Problem, vielleicht mit eigenen Theme. Die Sprachdatei fehlt im Prestashop, indem sie das Register für den Newsletter sendet. Die Bestätigungs-E-Mail kann nicht an den Kunden verschickt werden

Lösung: Setzen Sie in folgenden Pfad Ihre lang.php-Datei. In diesem Beispiel für die englische Sprache

  • /mails /en /lang.php
  • /yourtheme /mails /en /lang.php
  • /modules /blocknewsletter /mails /en /lang.php
  • /themes/yourtheme /modules /blocknewsletter /mails /en /lang.php

Prestashop - Produkt in dieser Ausführung nicht verfügbar. Bitte wählen Sie eine andere Kombination


Produkt in dieser Ausführung nicht verfügbar. Bitte wählen Sie eine andere Kombination.

Um diese Warnmeldung zu Umgehen die folgenden Schritte befolgen:

  • Javascript Verzeichnis: /themes/default-bootstrap/js/product.js
  • Javascript Datei: product.js
  • Beheben: folgende Zeilen auskommentieren
  • Zeile: 507 - 510
  • alter Code: //this combination doesn't exist (not created in back office) selectedCombination['unavailable'] = true; if (typeof(selectedCombination['available_date']) !== 'undefined') delete selectedCombination['available_date']; updateDisplay();
  • neuer Code: //this combination doesn't exist (not created in back office) /*selectedCombination['unavailable'] = true; if (typeof(selectedCombination['available_date']) !== 'undefined') delete selectedCombination['available_date'];*/ updateDisplay();
  • Ergebnis: Keine Warnmeldungen mehr - diese Variante nicht verfügbar.

Vorfall: Prestashop imagecreatetruecolor()


Fehler: Der Grund für den fatalen Fehler in Prestashop ist, dass gd für php5 installiert sein muss.

Lösung:

  1. Check deine php Einstellungen mit phpinfo()
  2. Suche nache gd
  3. sudo apt-get install php5-gd
  4. sudo service apache2 restart

Vorfall: Prestashop Produkt speichern Button


Prestashop Fehler: Das hinzufügen und speichern von Produkt Attributen Varianten ist nicht möglich im Prestashop Backend.

Das hinzufügen und speichern von Produkt Attributen Varianten wird nicht aktualisiert. Ab und zu manchmal funktioniert das hinzufügen und speichern von Produkt Attributen Varianten im Prestashop Backend.

Lösung:

https://www.prestashop.com/forums/topic/442145-cant-add-new-product-attributes/

Linux Ubuntu: Apache2 Webserver error.log


Wo ist die error.log Datei von Apache Webserver in Linux Ubuntu zu finden?

/var/log/apache2/error.log

JQuery OWL Carousel Responsive


Hier der funktionierende Code für den owl Carousel responsiv und getestet. Ebenso die CSS-DAtei und Javascript-Datei von GitHub:
https://github.com/OwlCarousel2/OwlCarousel2/tree/develop/dist

Download following files:
- dist/owl.carousel.min.js
- dist/assets/owl.carousel.min.css

>>>HTML <em>div class : owl-carousel my Image Link my Image Link my Image Link my Image Link my Image Link my Image Link my Image Link div </em> >>>JAVASCRIPT <em>$(document).ready(function() { var owl = $('.owl-carousel').owlCarousel({ itemsCustom : [ [0, 2], [450, 3], [680, 4], [900, 5], [1000, 6], [1200, 7], [1400, 8], [1650, 10] ], autoPlay : 5000, stopOnHover : true, navigation : true, navigationText : ["<",">"], loop:true, center: true, autoplay:true, autoplayTimeout:1000, autoplayHoverPause:true }) });</em>

Prestashop Bilder JPG JPEG PNG GIF


Prestashop: Die Bilder sind in der MySql Datenbank in den Tabellen ps_image und ps_image_shop zu finden
Alle Bilder sind in der MySql Datenbank in den Tabellen ps_image und ps_image_shop verknüpft. Die Bilder sind mit den Produkten über die ID's id_image und id_product verknüpft. In der Tabelle ps_image_lang sind Namen und Beschreibungen der Bilder zu finden.

Prestashop CSV Import


Wichtige Punkte für den Import von CSV-Import in Prestashop:

  1. Kategorie Import
  2. Artikel Import
  3. Attribut / Varianten Import

Kategorien mit CSV-Datei importieren:

  • Wichtig ist die Kategorie ID
  • Sehr wichtig sind die Kategorie Eltern ID s (Unter-/Üeberkategorien)
  • Die Kategorien können über den Namen oder ID import werden
  • Benutze keine Sonderzeichen beim CVS-Import in den Kategorienamen

Artikel Produkte mit CSV-Datei importieren:

  • Wichtig ist die Artikel Produkt ID
  • Sehr wichtig sind die Kategorie ID s
  • Du kannst in der Spalte Kategorie den Kategorienamen oder die Kategorie ID benutzen
  • Benutze keine Sonderzeichen beim CSV-Import in den Artikel Produktnamen
  • Wenn du die CSV-Import Option utf-8 wählst, kannst du HTML-Tags in den Beschreibungen benutzen

Varianten Attribute mit CSV-Datei importieren:

  • Benutze die Artikel Produkt ID s um die Attribute den richtigen Artikeln Produkte zuzuordnen
  • Einen Range Controller kannst du leider nicht in Prestashop für beliebige Attribute einsetzen. Nur für Preise und Gewicht

Prestashop AdminTab Modul einfügen


Der einfachste Weg ist immer der beste Weg. The easiest way is the best way. Vergessen Sie Ihre Fähigkeiten als Entwickler nicht und halten Sie sich an in die objektorientierte Programmierung. So können Sie Ihr Prestashop-Modul in die Prestashop-Backend-Menüleiste auf der linken Seite integrieren.

Nach einigen Versuchen und suchen in Blogs, hier Ihre einfachste Lösung:

//get prestashop admintab class include_once(PS_ADMIN_DIR.'/../classes/AdminTab.php'); //get your module class include_once(PS_ADMIN_DIR.'/../modules/produkt/produkt.php'); /*extend the admintab and put in in the folder /admin/tabs/AdminProdukt.php*/ class AdminProdukt extends AdminTab { private $asp=NULL; //Sicherheit zuerst public function __construct() { //deine Modul Klasse $this->asp = new Produkt(); //AdminTab Klasse aufrufen parent::__construct(); } public function display() { //bester weg um den Inhalt auszugeben echo $this->asp->getContent(); } }

XDebug Eclipse Mars PHP


Wie funktioniert PHP Remote-Debugging mit XDebug und Eclipse Mars Web-Anwendung?

  1. Download xampp with apache und mysql
  2. php.ini einstellen: [XDebug] xdebug.remote_enable=true xdebug.remote_host=127.0.0.1 xdebug.remote_port=9000
  3. Restart Webservice (xampp)
  4. Gehe zur xdebug Seite und kopiere deinen Quellcode im Textbereich und folge folgende Schritte:      https://xdebug.org/wizard.php
  5. Öffne Eclipse Mars
  6. Gehe zu Register Run - Debug Einstellungen a. Erstelle eine neue PHP Web Applikation b. Registriere Server - Default PHP Web Server - File - your PHP Project c. Debugger - Einstellung - Debugger - XDebug - Port 9000
  7. öffnen Sie Google Chrome Browser Installieren Sie Free XDebug Addon für Google Chrome. Jetzt kannst du ein Bug Icon auf der rechten Seite wie Bild sehen.
  8. Aktiviere XDebug via Icon
  9. Gehe zu Eclipse, setze Breakpoints am linken Rand mit Doppelklick und starte Debugging Schritt für Schritt
  10. Viel Spaß beim Debugging und Coding!

Zweiter Server: Starte Remote PHP SQL Query


Für mich ist die einfachste Lösung für dieses Problem / Problem die PHP-Funktion file_get_contents ()
Um eine Menge Problem zu vermeiden, erstellen Sie eine Datei auf dem Server mit mysql-Datenbank.

Schreiben Sie etwas aus, legen Sie ein, oder fügen Sie Abfragen normal ein Mysqli- connect und mysqli-query
("SELECT * FROM testtab WHERE testcol = 'yours'") oder mysqli-query("INSERT INTO testtab...).
Geben Sie die Abfrage mit print_r () oder Echo aus.
Erstellen Sie eine neue Datei auf einem anderen Server, in dem Sie die Abfragen ausdrucken möchten.

Verwenden Sie die PHP-Funktion file_get_contents
('Der Pfad der Abfrage-Datei') und bekomme die Zeichenfolge aller print_r () oder Echos aus der Abfragedatei in deine neue Datei.
Auch brauchst du die PHP-Funktionen utf8_decode () und utf8_encode () um Sonderzeichen richtig darzustellen.

Smarty Templates Example


Hier ein einfaches Beispiel für smarty Vorlagen mit. Bevor Sie mit smarty Vorlagen beginnen, besuchen Sie bitte die Homepage von smarty, um etwas über das smarty Framework / Motor zu lernen:  http://www.smarty.net/


<HTML> <DIV CLASS=“ONEDIV“>{$MYVARIABLE}</DIV> <DIV CLASS=“ANOTHERDIV“> {IF $CHOOSE EQ ‚FIRST‘} <DIV CLASS=“INSIDEDIVONE“>HELLO</DIV> {ELSEIF $CHOOSE EQ ’SECOND‘} <DIV CLASS=“INSIDEDIVTWO“>HOW ARE YOU?</DIV> {ELSE} <DIV CLASS=“INSIDEDIVTHREE“>NO</DIV> {\IF} </DIV> </HTML><PHP> $MYVARIABLE = ‚A SIMPLE SHORT EXAMPLE FOR SMARTY ENGINE‘, $CHOOSE = ‚FIRST‘; </PHP>

Joomla 2.5.14 Umzug 1und1


Nachdem ich für einen Kunden die Webseite basierend auf Joomla 2.5.14 auf ein 1und1 Server umgezogen habe, will ich euch die Problemlösungen nicht vorenthalten. Ich habe 2 Stunden auf diversen Hilfeseiten und Foren nachgeschlagen, die den Fehler bei Aufruf der Seite...

"Der Server meldet einen internet Fehler oder eine falsche Konfiguration. Deswegen ist es nicht möglich die Anfrage zu bearbeiten. Bitte kontaktieren sie den Server Administrator und informieren sie ihn über den Zeitpunkt des Fehlers. Teilen Sie dem Server Administrator bitte mit was sie bearbeitet haben, dass zu dem Fehler geführt haben könnte. Mehr Informationen über diesen Fehler können sie eventuell im Error Log erhalten. Ein 500 Internal Server Error error Fehlerseite tritt auf, wenn kein Error Dokument im .htaccess hinterlegt wurde.

Die meistens Tipps zur Lösung auf den Hilfeseiten und Foren gehen in die selbe Richtung, also nochmal hier kurzgefasst:
  • php.ini bearbeiten: den "allow_url_fopen" auf "on" stellen (Zeile einfügen: allow_url_fopen=on)
  • configuration.php bearbeiten: ganz wichtig - hier Datenbankeinstellungen und Pfade anpassen!
  • .htaccess bearbeiten: deaktivieren oder folgende Einträge einfügen:

    AddType x-mapp-php5.php
    AddHandler x-mapp-php5.php
  • Benutzer- und Gruppenrechte bearbeiten: laut Internet dürfen nicht alle auf Ordner und Dateien komplette Zugriffsrechte vergeben werden
  • Die Lösung:

    Ich habe für Google Chrome über Tools die kostenlose Erweiterung von https://chrome.google.com/webstore/detail/web-developer-joomla/kccpfcmcfhpdgkeadjmdkgjbebphnemk?hl=de heruntergeladen. Damit konnte ich auch mehr als nur die Startseite von Joomla erreichen. Ich habe mich eingeloggt und bin anschließend unter "Konfiguration" im Reiter "Sites" unter "Suchmaschinenoptimierung" das "URL-Rewrite nutzen" auf "Nein" gestellt. Das wars :) !

    Noch ein Tipp! Wenn Ihr schon an der Joomla Konfiguration seit, stellt gleich Version anzeigen auf "JA", damit Ihr beim nächsten mal Zeit sparen könnt.

php - header()


Wichtige Informationen für Entwickler: Senden von header () - Informationen lädt die Seite aufgrund der PHP-Funktionalität - Serverantwort und Anforderung. Wenn Sie mit Javascript arbeiten, ist dies nur onpage ohne Kommunikation zwischen Server und Client. Wenn du neue Seite und eine Kommunikation zum Server brauchst, musst du das mit PHP behandeln. Wenn Sie nur Inhalte in der gleichen Seite ändern, können Sie Javascript - nur Client-Website oder nur Server-Website verwenden.

Angular 2 für Anfänger


Angular 2 Model:

NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, FormsModule, HttpModule ], providers: [] }) export class AppModule { }

Angular 2 Komponente:

Component({ template : `<div>Willkommen zur Einf&uuml;hrung von Angular 2</div>` })

Angular 2 init Model:

platformBrowserDynamic().bootstrapModule(AppModule);

Angular 2 init Event Listener:

Component({ selector: 'profistart-root', template: `<textfield (keyup)="onKeyUp()" (textfield)="color=$event.target.value" [style.background-color]="color">` }) export class AppComponent { public color: string; onKeyUp() { console.log('keyup: ' + this.color) } }

Angular 2 Direktive:

Component({ selector: 'profistart-root', template : `<textfield´ [(ngModel)]="content" > <p>Inhalt</p>` }) export class AppComponent {}

Angular 2 Model View Schnittstelle:

Component({ selector: 'profistart-root', template: `<span>Hallo ich bin eine Komponente</span>` })

Angular 2 Ansicht Temlate:

<div class="container"> <profistart-root> </profistart-root> </div>

Mehr Beispiele: stackoverflow.com/questions/38103920/how-to-use-javascript-functions-in-an-angular-2-component-from-a-different-file

Angular - get scope from other controller


Wie bekomme ich $scope von anderen Controller in Angular
Der einfachste Weg ist immer der beste Weg. Wenn du zwei oder mehr Controller hast und du gerne den Umfang eines Controllers mit einem anderen Controller aktualisierst, brauchst du eine übergeordnete Kinderstruktur, sonst kannst du den Umfang eines anderen Controllers nicht aktualisieren. Ein weiterer Weg, um Service in Angular zu teilen ist die Fabrik Methode. Zurück zur übergeordneten Kindstruktur im Winkel. Wenn ein Controller der übergeordnete Controller ist, können Sie einfach den Umfang des übergeordneten Controllers mit dem untergeordneten Controller wie folgt ändern:

Javascript Angular:
anstatt : $scope.variable = data;
$scope.$parent.variable = data;

<div ng-controller="ParentCtrl"> <div ng-controller="ChildCtrl"></div> </div>

Microsoft Windows rundll32.exe


Heute hatte ich ein Problem mit meinem Microsoft Windows 7 System. Die Aufgabe rundll32.exe verwendet min. 50% meiner CPU Also habe ich angefangen, den Grund für diesen anormalen Unterschied zur Vergangenheit auszuprobieren. Schnell und schnell von Task-Manager fand ich den Grund: rundll32.exe

Ein Benutzer im Internet hatte das gleiche Problem. Es scheint, dass Microsoft Daten von Windows-Benutzer sammelt. Seit Windows 10 offiziell. Für mich ist es kein Problem für meinen privaten Computer zu Hause. Aber es ist ein Problem, wenn ich das System nicht nutzen kann, weil es verwendet wurde, um Daten an Microsoft zu übermitteln.

Die einfache Lösung für mein Problem war, check out Updates von Microsoft und deinstallieren Sie das Update KB2952664. Weitere Informationen finden Sie hier: http://www.winfuture-forum.de/index.php?showtopic=210145.

Windows 10


Seit dem 29. Juli ist Windows 10 auf dem Markt für jeden erhältlich. Auch gibt es von Microsoft fleißig Updates und jede Menge kleine Fehlerbehebungen. Mittlerweile verwenden bereits rund 60 Millionen Benutzer das neue Betriebssystem von Microsoft.

Damit Windows 10 richtig durchstarten kann, stellt Microsoft für viele Benutzer das Betriebssystem als kostenloses Update zur Verfügung.

Windows 10 soll das beste von Windows 7 und Windows 8 enthalten. Das Touchscreen optimierte Betriebssystem ist im Vergleich zu Windows 8 deutlich intuitiver und ist im Verbrauch von Ressourcen mit Windows 7 vergleichbar. "Cortana", der Sprachassistent ist jetzt auch in Windows 10 integriert. Windows 10 bietet mit DirectX 12 den Gamer eine deutlich bessere Nutzung der Hardware.

Unser Fazit: Nach der Klatsche mit Windows 8 für Microsoft, kann es mit Windows 10 nur bergauf gehen. Die Zeichen für Microsoft stehen gut.

phpStorm SVN Subversion Control Branches


Einfach branching mit phpStorm svn:

Mit phpStorm Subversion Control können Sie einfach in svn eine parallele Kopie Ihres Projekts erstellen.

Aktualisieren Sie Ihre Projektkopie aus dem Hauptprojekt, welches das ursprüngliche Arbeitsprojekt ist.

Nach svn update hast du die neueste Version (die aktuelle svn version) aus dem ursprünglichen projekt.

Arbeiten Sie mit Ihrem Projekt, die Kopie des Originals. Wenn du deine Entwicklung beendet hast, verschmelze dein

Projekt zum ursprünglichen Projekt. Das ist alles.

VCS - Subversion - Update Directory...
VCS - Subversion - Update File...

Wie bekomme ich eine E-Mail-Adresse von cleverreach


//apiKey cleverreach $apiKey = "b#797###e8f6###25#########40d63#-#"; $wsdl_url="http://api.cleverreach.com/soap/ interface_v5.1.php?wsdl"; //listId cleverreach $listId = "1####8"; $api = new SoapClient($wsdl_url); $page = 0; do{ $filter = array( "page"=>$page++, "filter"=>"all" //active, inactive, bounce ); $return = $api->receiverGetPage($apiKey, $listId, $filter); if($return->status=="SUCCESS") { for($i=0;$i < count($return->data);$i++){ var_dump($return->data[$i]->email); } }else{ //var_dump($return->message); } }while($return->data);

Postgresql Timestamp


Zeitunterschied in Postgresql Timestamp Format

SELECT "Timestamp", "column", "column" FROM "Database"."Table" WHERE "Timestamp" &gt; CURRENT_TIMESTAMP - INTERVAL '20 hours' ORDER BY "Timestamp" DESC

c3 Charts javascript config width


Ändern Sie die Breite von c3.js-Diagrammen, fügen Sie bitte folgende Methode für c3Config in Javascript ein

var c3Config  =  { size: { width: <em>mywidth</em> }, ... }

Microsoft Internet Explorer changes name


Microsoft wird den Namen des Internet Explorers ändern. Vielleicht ist der Grund das Image vom Internet Explorer, das Microsoft gerne ändern möchte. Ein weiterer Grund kann ein neuer Explorer ganz anders sein wie der alte Internet Explorer. Mehr Informationen über den neuen Namen und der Grund kommen bald...

Smarty Templates


Wenn Sie ein einfaches leicht zu verstehen und lernen oder schnelles Content-Management-System suchen, dann sollten Sie es mit Smarty Template versuchen!

Smarty Engine Webseite - http://www.smarty.net

Angular MVC


Angular für besseren, kompakteren und servicefähigen Javascript-Quellcode
MVC trennt Modell und Controller, so dass Sie das Modell ändern können, ohne den Controller zu wechseln. Oder die Steuerung anpassen ohne Änderungem am Modell. Angular bietet mehr Features. Eines der neuen Angular-Funktionen ist die Aktualisierung der Seite in Echtzeit, ohne einen Knopf zu drücken. Zum Beispiel können auch Anwender die Webseite-Ansicht direkt durch Formulare ändern.

Cache deine Datenbank


Mehr Postgres, MySql Leistung
Für mehr Postgres, MySql Leistung ist eine gute Zwischenspeicherung der beste Weg, um Ihre Anfragen in der Anwendung zu beschleunigen. Postgres, MySql, Oracle Sie brauchen immer eine gute Caching-Basis, um Informationen aus Ihrer Datenbank in einer nutzbaren Weise zu verwenden.

Bootstrap responsive c3.js charts javascript


Bootstrap Framework
Die beste Lösung für reaktionsfähige Webseiten, vom Handy, Tablets, Monitor zum großen Display, ist Bootstrap. Bootstrap mit vielen Features in Kombination mit c3.js Charts Javascript ist ein Muss für jeden Web-Entwickler. Verwenden Sie opensource community github.

Javascript Framework Angular.js


Angular MVC
Angular.js ist ein sehr nützliches, weit verbreitetes und brand aktuelles Javascript Framework, das auf das MVC-Prinzip beruht. MVC steht für Modell-View-Controller.

Das MVC-Prinzip hebt die Kopplung zwischen Ansicht und Logik auf. Das ermöglicht eine modulare Programmierung, das leichter zu warten und anpassungsfähiger ist, da Veränderung nicht mehr am gesamten System vorgenommen werden müssen, sondern nur noch an den betroffenen Komponenten. Daher ist Angular.js perfekt für grosse Projekte.

Charts und Diagramme mit Javascript chart.js


Nick Downie hat mit Javascript charts.js entwickelt, die mit HTML5 CANVAS sehr schöne Diagramme und Charts auf der Webseite erstellt. Die Javscript-Bibliothek ist nur 4,5 KB groß. charts.js mit Javascript beinhaltet sechs verschiedene Diagrammtypen und ist übersichtlich und einfach zu implementieren.

Javascript Luhn Algorithmus


$(document).keypress(function(event) { switch(event.which) { case 13:{ $(‚#luhn‘).empty(); var wert = $(‚#knr‘).val(); var sum = 0; var length = wert.length; var parity = length % 2; // $(‚#luhn‘).append(‚ Ergebnis: ‚); $(‚#luhn‘).append(‚ Kartennummer: ‚ + wert + ‚ ‚); // $(‚#luhn‘).append(‚Parity: ‚ + parity + ‚ ‚); for (var i = 0; i < length; i++) { var digit = parseInt(wert.charAt(i)); // $(‚#luhn‘).append(‚Z&auml;hler: ‚ + i + ‚ ‚); // $(‚#luhn‘).append(‚1 Wert: ‚ + digit + ‚ ‚); if (i % 2 == parity) { digit *= 2; // $(‚#luhn‘).append(‚2 Wert: ‚ + digit + ‚ ‚); } if (digit > 9) { digit -= 9; // $(‚#luhn‘).append(‚3 Wert: ‚ + digit + ‚ ‚); } sum += digit; // $(‚#luhn‘).append(‚4 Wert: ‚ + digit + ‚ ‚); // $(‚#luhn‘).append(‚Summe: ‚ + sum + ‚ ‚); } if(sum == 0){ $(‚#luhn‘).append(‚Ung&uuml;ltige Nummer ‚); } if (sum % 10 == 0) { $(‚#luhn‘).append(‚Endwert: ‚ + sum + ‚ (richtig) ‚); } if (sum % 10 > 0) { $(‚#luhn‘).append(‚Endwert: ‚ + sum + ‚ (falsch) ‚); } if(!(sum % 10 == 0) && !(sum % 10 > 0)){ $(‚#luhn‘).append(‚Wert nicht erkannt ‚); } if(sum % 10 < 0){ $(‚#luhn‘).append(‚Wert kleiner Null ‚); } break;} default:{break;}

Javascript Grundlagen


Für eine Javascript Einführung sollten Sie zuerst HTML lernen. Wir empfehlen W3C Webseite, das HTML Grundlagen sehr gut und einfach mit Beispielen vermittelt. Javascript ist die Sprache, um Elemente innerhalb des Browsers zu steuern. Dafür können Sie im HTML Code im BODY-Bereich einen Javascript Code implementieren oder eine externe Javascript Datei im HEAD-Bereich inkludieren. Folgend ein Beispiel für ein Popup-Fenster mit dem Inhalt "Hallo Welt" das vom Benutzer mit OK-Button bestätigt werden muss.

<script>alert("Hallo Welt")</script>

Fügen Sie den oben stehenden Javascript Code in Ihr HTML ein und laden Sie Ihre Webseite neu.

Html Javascript & JQuery


Das Rad muss nicht zweimal erfunden werden. JQuery in Javascript bietet viele Funktionen um eine moderne Seite aufzubauen.

$(document).ready(function(){ $('div').show(); });

Schnellere Webseite mit grunt and .less


Grunt verpackt dein Code, deine Dateien in eine kleinere Datei und spart somit die Ladezeit deiner Homepage. Verkleinerte JavaScript, Php, Html, Css Dateien mit grunt sind mit dem Namenszusatz .min zu erkennen.

Big Data und Datenverarbeitung


Wir liegen immer noch in Informationstechnologien als führender Industriestaat hinten. In Datenschutz ist der Staat immer noch ein offenes Buch für Hacker.

In Großstädten ist Dank Glasfaserkabel die übertragungsgeschwindigkeit stark gestiegen. Wir liegen immer noch in Informationstechnologien als führender Industriestaat hinten. In Datenschutz ist der Staat immer noch ein offenes Buch für Hacker.

Fazit: Wir begrüßen alle Subventionen!

Java Hadoop Big Data


Apache Hadoop ist ein sehr schneller und leistungsfähiger Algorithmus für die Speicherung großer Daten. Hadoop ist eines der erfolgreichsten Java Framework, das Daten zwischen den Knoten überträgt. Hadoop auch in Autos für mobile Datenübertragung und in Web-Anwendung, finanziell zu analysieren große Masse von Daten schnell. Hadoop ist das Werkzeug in Telematik, Thema Telekommunikation und Informatik.

CSS Stylesheet dynamisch mit Javascript einfügen


Hallo liebe Web-Developer,

wenn Ihr auf der Suche seit Eure Webseite dynamisch per Request dem Browser (Internet Explorer, Firefox, Opera, Safari) anzupassen, haben wir Neuigkeiten für Euch.

Microsoft verwendet seit Internet Explorer 11 nicht mehr bei der Abfrage mit der bekannten Javascript Objektmethode navigator.userAgent.toLowerCase() die Bezeichnung msie, Ihr müsst statt msie nach trident suchen.

Firefox verbleibt bei gecko/ und Safari ebenfalls wie gehabt.

Viele Grüße
Euer profistart Team

Javascript promise, async- und await Funktion


Wie funktioniert async und await in Javascript?

Eine async Funktion erfüllt ein Versprechen, das von der await Funktion ausgeführt wird. Wird dieses Versprechen eingelöst, kann der nächste Schritt ausgeführt werden.

Beispiel asynchrones Laden in Javascript:

function loadHeader() { return getAllContent().then(function(content) { return content[0].header; }).catch(function(err) { return { content: 'loading error' }; }); }
Neue Vorgehensweise bei der Entwicklung von asynchronen Funktionen in Javascript:
async function getHeader() { try { let content = await getAllContent(); return content[0].header; } catch (err) { return { content: 'loading error' }; } }

Prestashop TinyMCE Editor - beim Enter drücken Break anstatt Paragraphen für neue Zeile


Prestashop TinyMCE Editor Konfiguration, um für eine neue Zeile beim Enter drücken Break < br > anstatt Paragraph < p > zu verwenden

Fügen Sie folgende Konfiguration in die Datei /js/admin/tinymce.inc.js ein:

forced_root_block : false, force_p_newlines : false, force_br_newlines : true,