var ewww_webp_supported=!1;function check_webp_feature(A,e){var w;e=void 0!==e?e:function(){},ewww_webp_supported?e(ewww_webp_supported):((w=new Image).onload=function(){ewww_webp_supported=0<w.width&&0<w.height,e&&e(ewww_webp_supported)},w.onerror=function(){e&&e(!1)},w.src="data:image/webp;base64,"+{alpha:"UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA=="}[A])}check_webp_feature("alpha");
var Arrive=function(c,w){"use strict";if(c.MutationObserver&&"undefined"!=typeof HTMLElement){var r,a=0,u=(r=HTMLElement.prototype.matches||HTMLElement.prototype.webkitMatchesSelector||HTMLElement.prototype.mozMatchesSelector||HTMLElement.prototype.msMatchesSelector,{matchesSelector:function(e,t){return e instanceof HTMLElement&&r.call(e,t)},addMethod:function(e,t,r){var a=e[t];e[t]=function(){return r.length==arguments.length?r.apply(this,arguments):"function"==typeof a?a.apply(this,arguments):void 0}},callCallbacks:function(e,t){t&&t.options.onceOnly&&1==t.firedElems.length&&(e=[e[0]]);for(var r,a=0;r=e[a];a++)r&&r.callback&&r.callback.call(r.elem,r.elem);t&&t.options.onceOnly&&1==t.firedElems.length&&t.me.unbindEventWithSelectorAndCallback.call(t.target,t.selector,t.callback)},checkChildNodesRecursively:function(e,t,r,a){for(var i,n=0;i=e[n];n++)r(i,t,a)&&a.push({callback:t.callback,elem:i}),0<i.childNodes.length&&u.checkChildNodesRecursively(i.childNodes,t,r,a)},mergeArrays:function(e,t){var r,a={};for(r in e)e.hasOwnProperty(r)&&(a[r]=e[r]);for(r in t)t.hasOwnProperty(r)&&(a[r]=t[r]);return a},toElementsArray:function(e){return e=void 0!==e&&("number"!=typeof e.length||e===c)?[e]:e}}),e=(l.prototype.addEvent=function(e,t,r,a){a={target:e,selector:t,options:r,callback:a,firedElems:[]};return this._beforeAdding&&this._beforeAdding(a),this._eventsBucket.push(a),a},l.prototype.removeEvent=function(e){for(var t,r=this._eventsBucket.length-1;t=this._eventsBucket[r];r--)e(t)&&(this._beforeRemoving&&this._beforeRemoving(t),(t=this._eventsBucket.splice(r,1))&&t.length&&(t[0].callback=null))},l.prototype.beforeAdding=function(e){this._beforeAdding=e},l.prototype.beforeRemoving=function(e){this._beforeRemoving=e},l),t=function(i,n){var o=new e,l=this,s={fireOnAttributesModification:!1};return o.beforeAdding(function(t){var e=t.target;e!==c.document&&e!==c||(e=document.getElementsByTagName("html")[0]);var r=new MutationObserver(function(e){n.call(this,e,t)}),a=i(t.options);r.observe(e,a),t.observer=r,t.me=l}),o.beforeRemoving(function(e){e.observer.disconnect()}),this.bindEvent=function(e,t,r){t=u.mergeArrays(s,t);for(var a=u.toElementsArray(this),i=0;i<a.length;i++)o.addEvent(a[i],e,t,r)},this.unbindEvent=function(){var r=u.toElementsArray(this);o.removeEvent(function(e){for(var t=0;t<r.length;t++)if(this===w||e.target===r[t])return!0;return!1})},this.unbindEventWithSelectorOrCallback=function(r){var a=u.toElementsArray(this),i=r,e="function"==typeof r?function(e){for(var t=0;t<a.length;t++)if((this===w||e.target===a[t])&&e.callback===i)return!0;return!1}:function(e){for(var t=0;t<a.length;t++)if((this===w||e.target===a[t])&&e.selector===r)return!0;return!1};o.removeEvent(e)},this.unbindEventWithSelectorAndCallback=function(r,a){var i=u.toElementsArray(this);o.removeEvent(function(e){for(var t=0;t<i.length;t++)if((this===w||e.target===i[t])&&e.selector===r&&e.callback===a)return!0;return!1})},this},i=new function(){var s={fireOnAttributesModification:!1,onceOnly:!1,existing:!1};function n(e,t,r){return!(!u.matchesSelector(e,t.selector)||(e._id===w&&(e._id=a++),-1!=t.firedElems.indexOf(e._id)))&&(t.firedElems.push(e._id),!0)}var c=(i=new t(function(e){var t={attributes:!1,childList:!0,subtree:!0};return e.fireOnAttributesModification&&(t.attributes=!0),t},function(e,i){e.forEach(function(e){var t=e.addedNodes,r=e.target,a=[];null!==t&&0<t.length?u.checkChildNodesRecursively(t,i,n,a):"attributes"===e.type&&n(r,i)&&a.push({callback:i.callback,elem:r}),u.callCallbacks(a,i)})})).bindEvent;return i.bindEvent=function(e,t,r){t=void 0===r?(r=t,s):u.mergeArrays(s,t);var a=u.toElementsArray(this);if(t.existing){for(var i=[],n=0;n<a.length;n++)for(var o=a[n].querySelectorAll(e),l=0;l<o.length;l++)i.push({callback:r,elem:o[l]});if(t.onceOnly&&i.length)return r.call(i[0].elem,i[0].elem);setTimeout(u.callCallbacks,1,i)}c.call(this,e,t,r)},i},o=new function(){var a={};function i(e,t){return u.matchesSelector(e,t.selector)}var n=(o=new t(function(){return{childList:!0,subtree:!0}},function(e,r){e.forEach(function(e){var t=e.removedNodes,e=[];null!==t&&0<t.length&&u.checkChildNodesRecursively(t,r,i,e),u.callCallbacks(e,r)})})).bindEvent;return o.bindEvent=function(e,t,r){t=void 0===r?(r=t,a):u.mergeArrays(a,t),n.call(this,e,t,r)},o};d(HTMLElement.prototype),d(NodeList.prototype),d(HTMLCollection.prototype),d(HTMLDocument.prototype),d(Window.prototype);var n={};return s(i,n,"unbindAllArrive"),s(o,n,"unbindAllLeave"),n}function l(){this._eventsBucket=[],this._beforeAdding=null,this._beforeRemoving=null}function s(e,t,r){u.addMethod(t,r,e.unbindEvent),u.addMethod(t,r,e.unbindEventWithSelectorOrCallback),u.addMethod(t,r,e.unbindEventWithSelectorAndCallback)}function d(e){e.arrive=i.bindEvent,s(i,e,"unbindArrive"),e.leave=o.bindEvent,s(o,e,"unbindLeave")}}(window,void 0),ewww_webp_supported=!1;function check_webp_feature(e,t){var r;ewww_webp_supported?t(ewww_webp_supported):((r=new Image).onload=function(){ewww_webp_supported=0<r.width&&0<r.height,t(ewww_webp_supported)},r.onerror=function(){t(!1)},r.src="data:image/webp;base64,"+{alpha:"UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==",animation:"UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA"}[e])}function ewwwLoadImages(e){if(e){for(var t=document.querySelectorAll(".batch-image img, .image-wrapper a, .ngg-pro-masonry-item a, .ngg-galleria-offscreen-seo-wrapper a"),r=0,a=t.length;r<a;r++)ewwwAttr(t[r],"data-src",t[r].getAttribute("data-webp")),ewwwAttr(t[r],"data-thumbnail",t[r].getAttribute("data-webp-thumbnail"));for(var i=document.querySelectorAll("div.woocommerce-product-gallery__image"),r=0,a=i.length;r<a;r++)ewwwAttr(i[r],"data-thumb",i[r].getAttribute("data-webp-thumb"))}for(var n=document.querySelectorAll("video"),r=0,a=n.length;r<a;r++)ewwwAttr(n[r],"poster",e?n[r].getAttribute("data-poster-webp"):n[r].getAttribute("data-poster-image"));for(var o,l=document.querySelectorAll("img.ewww_webp_lazy_load"),r=0,a=l.length;r<a;r++)e&&(ewwwAttr(l[r],"data-lazy-srcset",l[r].getAttribute("data-lazy-srcset-webp")),ewwwAttr(l[r],"data-srcset",l[r].getAttribute("data-srcset-webp")),ewwwAttr(l[r],"data-lazy-src",l[r].getAttribute("data-lazy-src-webp")),ewwwAttr(l[r],"data-src",l[r].getAttribute("data-src-webp")),ewwwAttr(l[r],"data-orig-file",l[r].getAttribute("data-webp-orig-file")),ewwwAttr(l[r],"data-medium-file",l[r].getAttribute("data-webp-medium-file")),ewwwAttr(l[r],"data-large-file",l[r].getAttribute("data-webp-large-file")),null!=(o=l[r].getAttribute("srcset"))&&!1!==o&&o.includes("R0lGOD")&&ewwwAttr(l[r],"src",l[r].getAttribute("data-lazy-src-webp"))),l[r].className=l[r].className.replace(/\bewww_webp_lazy_load\b/,"");for(var s=document.querySelectorAll(".ewww_webp"),r=0,a=s.length;r<a;r++)e?(ewwwAttr(s[r],"srcset",s[r].getAttribute("data-srcset-webp")),ewwwAttr(s[r],"src",s[r].getAttribute("data-src-webp")),ewwwAttr(s[r],"data-orig-file",s[r].getAttribute("data-webp-orig-file")),ewwwAttr(s[r],"data-medium-file",s[r].getAttribute("data-webp-medium-file")),ewwwAttr(s[r],"data-large-file",s[r].getAttribute("data-webp-large-file")),ewwwAttr(s[r],"data-large_image",s[r].getAttribute("data-webp-large_image")),ewwwAttr(s[r],"data-src",s[r].getAttribute("data-webp-src"))):(ewwwAttr(s[r],"srcset",s[r].getAttribute("data-srcset-img")),ewwwAttr(s[r],"src",s[r].getAttribute("data-src-img"))),s[r].className=s[r].className.replace(/\bewww_webp\b/,"ewww_webp_loaded");window.jQuery&&jQuery.fn.isotope&&jQuery.fn.imagesLoaded&&(jQuery(".fusion-posts-container-infinite").imagesLoaded(function(){jQuery(".fusion-posts-container-infinite").hasClass("isotope")&&jQuery(".fusion-posts-container-infinite").isotope()}),jQuery(".fusion-portfolio:not(.fusion-recent-works) .fusion-portfolio-wrapper").imagesLoaded(function(){jQuery(".fusion-portfolio:not(.fusion-recent-works) .fusion-portfolio-wrapper").isotope()}))}function ewwwWebPInit(e){ewwwLoadImages(e),ewwwNggLoadGalleries(e),document.arrive(".ewww_webp",function(){ewwwLoadImages(e)}),document.arrive(".ewww_webp_lazy_load",function(){ewwwLoadImages(e)}),document.arrive("videos",function(){ewwwLoadImages(e)}),"loading"==document.readyState?document.addEventListener("DOMContentLoaded",ewwwJSONParserInit):("undefined"!=typeof galleries&&ewwwNggParseGalleries(e),ewwwWooParseVariations(e))}function ewwwAttr(e,t,r){null!=r&&!1!==r&&e.setAttribute(t,r)}function ewwwJSONParserInit(){"undefined"!=typeof galleries&&check_webp_feature("alpha",ewwwNggParseGalleries),check_webp_feature("alpha",ewwwWooParseVariations)}function ewwwWooParseVariations(e){if(e)for(var t=document.querySelectorAll("form.variations_form"),r=0,a=t.length;r<a;r++){var i=t[r].getAttribute("data-product_variations"),n=!1;try{for(var o in i=JSON.parse(i))void 0!==i[o]&&void 0!==i[o].image&&(void 0!==i[o].image.src_webp&&(i[o].image.src=i[o].image.src_webp,n=!0),void 0!==i[o].image.srcset_webp&&(i[o].image.srcset=i[o].image.srcset_webp,n=!0),void 0!==i[o].image.full_src_webp&&(i[o].image.full_src=i[o].image.full_src_webp,n=!0),void 0!==i[o].image.gallery_thumbnail_src_webp&&(i[o].image.gallery_thumbnail_src=i[o].image.gallery_thumbnail_src_webp,n=!0),void 0!==i[o].image.thumb_src_webp&&(i[o].image.thumb_src=i[o].image.thumb_src_webp,n=!0));n&&ewwwAttr(t[r],"data-product_variations",JSON.stringify(i))}catch(e){}}}function ewwwNggParseGalleries(e){if(e)for(var t in galleries){var r=galleries[t];galleries[t].images_list=ewwwNggParseImageList(r.images_list)}}function ewwwNggLoadGalleries(e){e&&document.addEventListener("ngg.galleria.themeadded",function(e,t){window.ngg_galleria._create_backup=window.ngg_galleria.create,window.ngg_galleria.create=function(e,t){var r=$(e).data("id");return galleries["gallery_"+r].images_list=ewwwNggParseImageList(galleries["gallery_"+r].images_list),window.ngg_galleria._create_backup(e,t)}})}function ewwwNggParseImageList(e){for(var t in e){var r=e[t];if(void 0!==r["image-webp"]&&(e[t].image=r["image-webp"],delete e[t]["image-webp"]),void 0!==r["thumb-webp"]&&(e[t].thumb=r["thumb-webp"],delete e[t]["thumb-webp"]),void 0!==r.full_image_webp&&(e[t].full_image=r.full_image_webp,delete e[t].full_image_webp),void 0!==r.srcsets)for(var a in r.srcsets)nggSrcset=r.srcsets[a],void 0!==r.srcsets[a+"-webp"]&&(e[t].srcsets[a]=r.srcsets[a+"-webp"],delete e[t].srcsets[a+"-webp"]);if(void 0!==r.full_srcsets)for(var i in r.full_srcsets)nggFSrcset=r.full_srcsets[i],void 0!==r.full_srcsets[i+"-webp"]&&(e[t].full_srcsets[i]=r.full_srcsets[i+"-webp"],delete e[t].full_srcsets[i+"-webp"])}return e}check_webp_feature("alpha",ewwwWebPInit);
var lpData = {"site_url":"https:\/\/fnacompany.gr","user_id":0,"theme":"blocksy-child","lp_rest_url":"https:\/\/fnacompany.gr\/wp-json\/","nonce":"91636daa72","is_course_archive":false,"courses_url":"https:\/\/fnacompany.gr\/404-2\/","urlParams":[],"lp_version":"4.4.10","lp_rest_load_ajax":"https:\/\/fnacompany.gr\/wp-json\/lp\/v1\/load_content_via_ajax\/","ajaxUrl":"https:\/\/fnacompany.gr\/wp-admin\/admin-ajax.php","lpAjaxUrl":"https:\/\/fnacompany.gr\/lp-ajax-handle","coverImageRatio":5.16,"toast":{"gravity":"bottom","position":"center","duration":3000,"close":1,"stopOnFocus":1,"classPrefix":"lp-toast"},"i18n":{"yes":"\u039d\u03b1\u03b9","cancel":"\u0391\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7","generate_with_ai":"Generate with AI","confirm_close_ai":"Are you sure you want to close? Generate data will stop."},"enable_open_ai":false,"lp_woo_version":"4.2.4"};
var lpSettingCourses = {"lpArchiveLoadAjax":1,"lpArchiveNoLoadAjaxFirst":0,"lpArchivePaginationType":"number","noLoadCoursesJs":0};
var _ckyGcm = {"status":true,"default_settings":[{"analytics":"denied","advertisement":"denied","functional":"denied","necessary":"granted","ad_user_data":"denied","ad_personalization":"denied","regions":"All"}],"wait_for_update":2000,"url_passthrough":false,"ads_data_redaction":false}
«Η γνώση στο παγωτό δεν είναι απλώς τεχνική – είναι ο έλεγχος του αποτελέσματος.
Όταν κατανοείς τη συνταγή, μπορείς να ελέγξεις την ποιότητα, το κόστος και την παραγωγή.»
Founder / Εισηγητής σεμιναρίων
Ο Γιάννης Σκουρογιαννάκης γεννήθηκε και μεγάλωσε στο Ηράκλειο Κρήτης. Η πορεία του στη ζαχαροπλαστική ξεκίνησε σε ηλικία 14 ετών, παράλληλα με το σχολείο. Από τα πρώτα χρόνια της επαγγελματικής του διαδρομής, το ενδιαφέρον του στράφηκε πέρα από την εκτέλεση μιας συνταγής, προς την κατανόηση της τεχνολογίας των πρώτων υλών, της δομής των συνταγών και των παραμέτρων που καθορίζουν τη συμπεριφορά και το τελικό αποτέλεσμα ενός προϊόντος. Με την παρότρυνση του πρώτου του δασκάλου άρχισε να εμβαθύνει συστηματικά στην τεχνογνωσία και την τροφογνωσία της ζαχαροπλαστικής, με ιδιαίτερη έμφαση στην τεχνολογία και το formulation του παγωτού.
Σπουδές και επαγγελματική εμπειρία
Μετά την ολοκλήρωση του Λυκείου, σπούδασε Ζαχαροπλαστική στο ΙΕΚ ΑΚΜΗ. Στη συνέχεια διεύρυνε το γνωστικό του υπόβαθρο με σπουδές στην Τεχνολογία Τροφίμων και Επεξεργασία Ποτών, καθώς και στη Διαιτολογία και Διατροφολογία στο ΙΕΚ ΟΜΗΡΟΣ.Παράλληλα, απέκτησε εμπειρία σε πραγματικές συνθήκες παραγωγής, εργαζόμενος στη ζαχαροπλαστική και στην παραγωγή παγωτού. Διετέλεσε υπεύθυνος παραγωγής παγωτού στη Frulatti, ενώ το 2018 μετακινήθηκε στη Γαλλία, όπου εργάστηκε στην παραγωγή παγωτού του Alain Chartier.Η εμπειρία αυτή αποτέλεσε σημαντικό μέρος της εξέλιξής του, καθώς του επέτρεψε να συνδέσει τη θεωρητική γνώση με τις πραγματικές απαιτήσεις και τα τεχνικά προβλήματα της καθημερινής παραγωγής.
Μελέτη και τεχνική εξειδίκευση
Κεντρικό ρόλο στην εξέλιξή του έχει η συνεχής προσωπική μελέτη. Έχει μελετήσει περισσότερα από 70 εξειδικευμένα βιβλία και τεχνικές εκδόσεις, με ιδιαίτερη εμβάθυνση στην τεχνολογία γάλακτος, τη γαλακτοβιομηχανία, την τεχνολογία των πρώτων υλών και τη λειτουργία των συστατικών μέσα σε ένα σύστημα τροφίμου.Έχει εργαστεί εκτενώς με ξενόγλωσση επιστημονική και τεχνική βιβλιογραφία, μεταφράζοντας και οργανώνοντας πληροφορίες με στόχο να τις συνδέσει με την εφαρμοσμένη συνταγολόγηση, το formulation και την παραγωγή.Ιδιαίτερο αντικείμενο μελέτης αποτελεί η σχέση ανάμεσα στη σύσταση μιας πρώτης ύλης και στη συμπεριφορά της μέσα στη συνταγή. Στην τεχνολογία παγωτού, η προσέγγιση αυτή περιλαμβάνει τη μελέτη των πρωτεϊνών και των στερεών του γάλακτος, των λιπαρών, των σακχάρων, του νερού και των υπόλοιπων συστατικών που συμμετέχουν στη δημιουργία της δομής του τελικού προϊόντος.Στόχος αυτής της μελέτης είναι η βαθύτερη κατανόηση του τρόπου με τον οποίο κάθε μεταβολή στη σύνθεση μιας συνταγής μπορεί να επηρεάσει την υφή, τη σταθερότητα και τη συνολική συμπεριφορά του προϊόντος.
Εκπαίδευση στην Ελλάδα και το εξωτερικό
Παράλληλα με την επαγγελματική του πορεία, συνέχισε να επενδύει συστηματικά στην εκπαίδευσή του μέσα από εξειδικευμένα προγράμματα και σεμινάρια στην Ελλάδα και το εξωτερικό.
Στο εκπαιδευτικό του υπόβαθρο περιλαμβάνονται προγράμματα του Carpigiani Gelato University σε Basic, Intermediate, Advanced Gelato και Gelato Master Course, καθώς και εξειδικευμένες εκπαιδεύσεις σε Intensive Soft Serve και Gelato with No Added Sugars.
Έχει επίσης εκπαιδευτεί στο Gelateneo της Iceteam 1927, στη Gelato Expert Academy και στο University of Guelph στον Καναδά, σε θεματολογίες που συνδέονται με την τεχνολογία gelato, το formulation, τα γαλακτοκομικά συστήματα και τη λειτουργικότητα των πρώτων υλών. Στο εκπαιδευτικό του υπόβαθρο περιλαμβάνονται ακόμη προγράμματα στο Chocolate Academy Barcelona και στην École Lenôtre.
Ιδιαίτερη θέση στην πορεία του κατέχει η εξειδικευμένη one-to-one εκπαίδευσή του με τον Jordi Puigvert, πάνω σε τεχνικές θεματολογίες, μέρος των οποίων αξιοποιήθηκε στην ανάπτυξη εκπαιδευτικού υλικού και σεμιναρίων της FnA Academy. Έχει επίσης εκπαιδευτεί δίπλα σε επαγγελματίες του κλάδου, όπως οι Maurizio Paci και Alain Chartier.
Εξειδίκευση
Η τεχνική του ενασχόληση επικεντρώνεται κυρίως στην τεχνολογία και το formulation παγωτού και sorbet, στην τεχνολογία γάλακτος και γαλακτοκομικών συστατικών, στη λειτουργικότητα των πρώτων υλών, στα σάκχαρα και τις γλυκαντικές ύλες, στους εφαρμοσμένους υπολογισμούς formulation, στα προϊόντα χωρίς προσθήκη ζάχαρης και vegan, καθώς και στη διατροφική επισήμανση.Η προσέγγισή του βασίζεται στη σύνδεση της επιστημονικής και τεχνικής γνώσης με την καθημερινή πραγματικότητα της παραγωγής.
Η δημιουργία του FnA Method
Η συνεχής ενασχόλησή του με την τεχνολογία τροφίμων, τους εφαρμοσμένους υπολογισμούς, το formulation και τη διατροφική επισήμανση δημιούργησε σταδιακά την ανάγκη για ένα εργαλείο που θα μπορούσε να οργανώνει και να αξιολογεί δεδομένα συνταγών με πιο δομημένο τρόπο.Αυτή η ανάγκη αποτέλεσε τη βάση για τη δημιουργία του FnA Method, του λογισμικού που αναπτύχθηκε μέσα από την ίδια λογική τεχνικής ανάλυσης και συνταγολόγησης.
FnA Academy
Το 2020 ίδρυσε την FnA Company και ανέπτυξε την εκπαιδευτική της δραστηριότητα, η οποία σήμερα εκφράζεται μέσα από τη FnA Academy. Σήμερα είναι Founder & CEO της FnA Company και βασικός εισηγητής της FnA Academy.Μέσα από την FnA Academy μεταφέρει τη γνώση που έχει αποκτήσει από την επαγγελματική παραγωγή, τη συνεχή τεχνική μελέτη, τη διεθνή βιβλιογραφία και την εκπαίδευση στην Ελλάδα και το εξωτερικό.
Εκπαιδευτική φιλοσοφία
Η εκπαιδευτική του προσέγγιση έχει ως αφετηρία την κατανόηση.Ο επαγγελματίας χρειάζεται να γνωρίζει τι κάνει κάθε πρώτη ύλη, πώς αλληλεπιδρούν τα συστατικά μεταξύ τους και ποιες παράμετροι επηρεάζουν τη συμπεριφορά μιας συνταγής.Μέσα από αυτή τη λογική, η εκπαίδευση επικεντρώνεται στο formulation, στην ανάλυση της συνταγής, στην κατανόηση των πρώτων υλών και στην πρακτική εφαρμογή της γνώσης.Στόχος είναι ο συμμετέχων να αποκτήσει το υπόβαθρο που χρειάζεται ώστε να μπορεί να αξιολογεί μια συνταγή, να εντοπίζει τις παραμέτρους που επηρεάζουν το αποτέλεσμα και να προχωρά με μεγαλύτερη τεχνική αυτονομία στην προσαρμογή και τη δημιουργία προϊόντων.Αυτή είναι και η βασική φιλοσοφία της FnA Academy: η μετάβαση από την απλή εκτέλεση μιας συνταγής στην κατανόηση της λογικής που βρίσκεται πίσω από αυτή.
Επαγγελματίες και επιχειρήσεις που μας εμπιστεύονται
Από ανεξάρτητες gelaterias έως οργανωμένες επιχειρήσεις και brands.
(function () {
var c = document.body.className;
c = c.replace(/woocommerce-no-js/, 'woocommerce-js');
document.body.className = c;
})();
(function () {
'use strict';var syncTimer = null;/* Read the current count from the Blocksy header cart element. */
function getHeaderCartCount() {
var el = document.querySelector('.ct-dynamic-count-cart');
if (!el) { return null; }
var raw = el.getAttribute('data-count') || el.textContent || '0';
var n = parseInt(raw, 10);
return isNaN(n) ? 0 : n;
}/* Push a count value to every footer cart element on the page. */
function applyCount(count) {
var n = Math.max(0, parseInt(count || 0, 10));document.querySelectorAll('[data-dl-footer-cart-count]').forEach(function (el) {
el.textContent = n > 0 ? String(n) : '';
});document.querySelectorAll('.dl-footer-cart').forEach(function (el) {
el.classList.toggle('has-items', n > 0);
});
}function syncFromHeader() {
var count = getHeaderCartCount();
if (count !== null) {
applyCount(count);
}
}/* Debounced wrapper – MutationObserver can fire many times per frame. */
function debouncedSync() {
clearTimeout(syncTimer);
syncTimer = setTimeout(syncFromHeader, 60);
}/*
* Watch the Blocksy header cart container for fragment replacements.
* When wc-cart-fragments replaces .ct-dynamic-count-cart the observer
* fires and we re-read the count from the new element.
*/
function setupObserver() {
var target =
document.querySelector('.ct-header-cart') ||
document.querySelector('.ct-header') ||
document.querySelector('[data-id="header"]') ||
document.querySelector('header');if (!target) { return; }var observer = new MutationObserver(debouncedSync);
observer.observe(target, {
childList : true,
subtree : true,
characterData : true,
attributes : true,
attributeFilter : ['data-count']
});
}/* WC jQuery events and add-to-cart click detection. */
function setupEvents() {
if (window.jQuery) {
jQuery(document.body).on(
'wc_fragments_refreshed wc_fragments_loaded ' +
'added_to_cart removed_from_cart ' +
'updated_cart_totals wc_fragment_refresh',
function () {
/* Two passes: immediately after the event, and after
Blocksy finishes its own DOM update. */
setTimeout(syncFromHeader, 120);
setTimeout(syncFromHeader, 700);
}
);
}/* Catch add-to-cart button clicks (Woo + LearnPress). */
document.addEventListener('click', function (e) {
if (e.target.closest &&
e.target.closest(
'.lp-btn-add-item-to-cart, .add_to_cart_button, ' +
'.single_add_to_cart_button, button[name="add-to-cart"]'
)
) {
setTimeout(syncFromHeader, 500);
setTimeout(syncFromHeader, 1300);
setTimeout(syncFromHeader, 3000);
}
});
}function init() {
syncFromHeader();
setupObserver();
setupEvents();
}if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', init);
} else {
init();
}/* BFCache: re-sync when user navigates back/forward. */
window.addEventListener('pageshow', function (e) {
if (e.persisted) {
/* Page restored from BFCache – force a fresh read. */
setTimeout(syncFromHeader, 100);
} else {
syncFromHeader();
}
});})();