This document discusses how to write custom modules for three different PHP-based e-commerce systems: Magento, OXID eShop, and Shopware. It provides an overview of each system's architecture and module structure. For Magento, it describes how to drill down from templates to models and databases to access product information. For OXID, it explains how to extend classes and integrate custom functionality using an event-listener system. For Shopware, it outlines how to use plugins, events, hooks, and listeners to insert custom code. The document concludes that while each system has slightly different methods, custom modules can be added without core hacking by leveraging each system's extensibility features and testing custom code
Modul-Entwicklung für Magento, OXID eShop und Shopware (2013)Roman Zenner
The document provides information on how to write custom modules for PHP-based e-commerce systems like Magento, OXID eShop, and Shopware. It discusses the structure and templating systems of these platforms, how to extend core classes through inheritance, and build plugins to add new functionality like displaying the number of days until Christmas on product pages. The document drills down through the different layers from templates to models to explain how to access data from a module.
The document discusses stateful controllers in Direct To Web (D2W) applications built with WebObjects. It provides background on D2W and how controllers were traditionally implemented using ERDBranchDelegate and NextPageDelegate. Stateful controllers improve upon this by allowing controller classes to be reused across multiple pages while maintaining state between pages. This is done by overriding branchChoicesForContext to programmatically define branch choices and storing necessary objects like the editing context. The document provides examples of how stateful controllers can implement common page flows and interactions through utility methods while keeping code DRY and reusable.
This document discusses alternatives to using WebObjects for developing web applications. It summarizes the key aspects of a stack that could satisfy former WebObjects developers, including:
- Dependency injection frameworks like Spring and Google Guice that allow loose coupling between classes.
- HTML frameworks like Tapestry that are similar to WebObjects in allowing infinitely nestable page components.
- JAX-RS as a REST framework specification implemented by libraries like Jersey that maps HTTP requests to Java methods.
- Migrating from WebObjects by keeping its philosophies but rewriting code from scratch using these new frameworks, with tools to import existing data models and port components like DirectToWeb and DirectToJavaClient.
This document provides tips and best practices for staying sane as a Drupal developer. It discusses that 80% of building Drupal sites is configuration, while the remaining 20% requires customization. It emphasizes using Drupal APIs and hooks, playing well with contributed modules, and following coding standards and best practices like version control, automated testing and deployment, and documentation.
The document discusses WOUnit, a unit testing framework for Wonder. It provides features like mocking the editing context, creating dummy objects to bypass validations, and spying on objects. Sample tests are shown to test validation rules and relationships. WOUnit aims to make testing simple, fast and support Wonder features like editing contexts through assertions and annotations like @Rule, @Dummy and @Spy.
The document describes an in-memory OLAP engine created by Samuel Pelletier to enable fast querying of multidimensional data with millions of facts. It loads data into memory as plain old Java objects (POJOs) for faster access compared to entity objects or SQL queries. Dimensions are modeled as classes to index the facts and compute summarized results. The engine is multithreaded and designed for simplicity and minimal dependencies.
[2015/2016] Local data storage for web-based mobile appsIvano Malavolta
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
Modul-Entwicklung für Magento, OXID eShop und Shopware (2013)Roman Zenner
The document provides information on how to write custom modules for PHP-based e-commerce systems like Magento, OXID eShop, and Shopware. It discusses the structure and templating systems of these platforms, how to extend core classes through inheritance, and build plugins to add new functionality like displaying the number of days until Christmas on product pages. The document drills down through the different layers from templates to models to explain how to access data from a module.
The document discusses stateful controllers in Direct To Web (D2W) applications built with WebObjects. It provides background on D2W and how controllers were traditionally implemented using ERDBranchDelegate and NextPageDelegate. Stateful controllers improve upon this by allowing controller classes to be reused across multiple pages while maintaining state between pages. This is done by overriding branchChoicesForContext to programmatically define branch choices and storing necessary objects like the editing context. The document provides examples of how stateful controllers can implement common page flows and interactions through utility methods while keeping code DRY and reusable.
This document discusses alternatives to using WebObjects for developing web applications. It summarizes the key aspects of a stack that could satisfy former WebObjects developers, including:
- Dependency injection frameworks like Spring and Google Guice that allow loose coupling between classes.
- HTML frameworks like Tapestry that are similar to WebObjects in allowing infinitely nestable page components.
- JAX-RS as a REST framework specification implemented by libraries like Jersey that maps HTTP requests to Java methods.
- Migrating from WebObjects by keeping its philosophies but rewriting code from scratch using these new frameworks, with tools to import existing data models and port components like DirectToWeb and DirectToJavaClient.
This document provides tips and best practices for staying sane as a Drupal developer. It discusses that 80% of building Drupal sites is configuration, while the remaining 20% requires customization. It emphasizes using Drupal APIs and hooks, playing well with contributed modules, and following coding standards and best practices like version control, automated testing and deployment, and documentation.
The document discusses WOUnit, a unit testing framework for Wonder. It provides features like mocking the editing context, creating dummy objects to bypass validations, and spying on objects. Sample tests are shown to test validation rules and relationships. WOUnit aims to make testing simple, fast and support Wonder features like editing contexts through assertions and annotations like @Rule, @Dummy and @Spy.
The document describes an in-memory OLAP engine created by Samuel Pelletier to enable fast querying of multidimensional data with millions of facts. It loads data into memory as plain old Java objects (POJOs) for faster access compared to entity objects or SQL queries. Dimensions are modeled as classes to index the facts and compute summarized results. The engine is multithreaded and designed for simplicity and minimal dependencies.
[2015/2016] Local data storage for web-based mobile appsIvano Malavolta
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
This document provides an overview of ASP.NET MVC 2.0, covering topics such as routing, controllers, action methods, views, validation, and filters. It introduces the MVC framework's basic structure and components, and explains how to build a sample Todo application using ASP.NET MVC to manage tasks. The document also outlines some advanced features in ASP.NET MVC 2.0 like areas and asynchronous controllers, as well as new capabilities in ASP.NET MVC 3 Beta such as the Razor view engine and improved dependency injection support.
Anatomy of a web app
HTML5
CSS3
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2014.
http://www.ivanomalavolta.com
Http Service will help us fetch external data, post to it, etc. We need to import the http module to make use of the http service. Let us consider an example to understand how to make use of the http service.
Model View Controller (MVC) is a software architectural pattern commonly used for developing web applications. It promotes separation of concerns by dividing the application into three interconnected parts - the Model, the View, and the Controller. The Model manages the data logic and rules of the application. The View displays the user interface and presentation logic. The Controller interprets user input, communicates between the Model and View, and controls the flow of data and functionality. MVC enables modular and reusable application components and code and simplifies application maintenance. Django is a web framework that follows the MVT (Model Template View) pattern, which is very similar to MVC.
The document summarizes new features and improvements in Internet Explorer 8, including standards compliance, multiple rendering modes, developer tools, AJAX enhancements, and security updates. Key points include improved support for CSS 2.1, HTML 5, and accessibility standards; contextual accelerators and activities; RSS-based WebSlices for content subscription; back/forward navigation and DOM storage for AJAX apps; and integrated HTML, CSS, and JavaScript debugging tools. A timeline outlines the beta and release schedule through 2008.
This workshop conducted by the team member of Inspire Chittagong (Mizanur Rahaman Mizan and Saad Amin). Workshop was in East Delta Univeristy. There was a session relating to the infos and also another one fully focusing on the practical theme development
Explains the basics of creating a new WordPress theme; outlining some useful functions, explains some usage in OOP PHP, briefly describes the WordPress themes API.
Writing a WordPress Theme - HighEdWeb 2013 #WRK2Curtiss Grymala
This document provides information about frameworks, parent themes, and child themes in WordPress theme development. It explains that a parent theme sets up common functionality that can be extended or overridden by a child theme. A framework is like a plugin that allows creation of parent and child themes with shared functionality. Examples of frameworks and parent/child themes are given. Required theme files like style.css and index.php are outlined. The WordPress template hierarchy and use of template files and the loop are also summarized. Steps for designing and developing a WordPress theme are presented at the end.
Living on the Grid - Unlock the Power of Dojo Data Grids in XPages - MWLUG 2013balassaitis
This document summarizes features of the Dojo Data Grid and EnhancedGrid controls in XPages, including:
- Creating a basic Dojo Data Grid bound to a REST service and adding columns
- Additional features like sorting, opening documents, searching, and editing
- Converting the grid to an EnhancedGrid for additional plugins like drag-and-drop and filtering
- Using a TreeGrid control for multi-level categorization and adding column totals and counts
The speaker provides code examples for implementing various features and notes limitations based on Domino version. Questions are welcomed on the speaker's blog or Twitter account.
Are you tired of using view panels to display data in XPages? This webinar will show how you can provide a new look and feel and rich functionality with several variations of Dojo data grids. You'll learn about the XPages Dojo Data Grid control and its key features, including infinite scrolling, sorting, and editable cells. Then you'll see how to transform the grid into a Dojo EnhancedGrid and take advantage of enhanced plugins to provide even more functionality, such as multi-rule filtering and context menus. Finally, you'll get a glimpse of how to bypass the grid control in order to create a categorized Dojo TreeGrid.
You'll come away with a myriad of options for providing appealing, interactive, highly functional data grids.
This document provides an overview of ASP.NET MVC including its history, the MVC pattern, controllers, views, routing, and Razor views. It discusses the Model-View-Controller components, controller actions, action results, and action filters. It also covers view helpers, layouts, sections, and Razor syntax features.
Drupal8 modernization (new object-oriented base) and adoption of many Symfony components is a huge step in connecting these two amazing communities and amazing projects. Drupal8 is not powered by full-stack Symfony and there is still many differences between these two relatives, but still, Symfony developers should master it easily.
This talk is for Symfony developers who don't have experience with Drupal8. It will guide you through routing, controllers, hooks, events, Drupal Console, DI and many other interesting elements that power Drupal8 under the hood. It will also show how to build custom modules Symfony way.
Web services in PHP using the NuSOAP libraryFulvio Corno
This document provides an overview of using the NuSOAP library to create PHP web services. It discusses creating SOAP servers and clients with NuSOAP, using WSDL files, handling errors, and supporting complex data types. The NuSOAP library allows creating and consuming web services in PHP in an object-oriented way and can automatically generate WSDL files to describe the services.
The document discusses Java persistence and JPA 2. It introduces entity beans as persistent objects mapped to database tables. An entity bean represents data from a database table as a Java object. The document covers the lifecycle of entity beans, associations between entity beans like one-to-one and many-to-many relationships, and using the entity manager to persist, find, and remove entity beans from the database. It provides examples of entity bean classes annotated with JPA annotations and a persistence configuration file.
Mobile applications Development - Lecture 14
REST Basics
This presentation has been developed in the context of the Mobile Applications Development course at the Computer Science Department of the University of L’Aquila (Italy).
http://www.di.univaq.it/malavolta
Introduction
Require JS
Handlebars
Conclusions
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2015.
http://www.ivanomalavolta.com
In this Java JSP Training session, you will learn JSP. Topics covered in this session are:
• JSP vs Servlet
• LifeCycle of Servlet
• JSP Elements
• JSP Page directive
• Directives vs Action tags
For more information, visit this link:
https://www.mindsmapped.com/courses/software-development/jsp-and-servlets-designing-web-applications-with-java/
This session starts by giving an overview of components of an Alfresco content model. We then examine the various forms of call-backs and hook-points available to the developer and give some examples of how these can be used to enforce custom business logic and model consistency.
A directive is a custom HTML element that is used to extend the power of HTML. Angular 2 has the following directives that get called as part of the BrowserModule module.
ngif
ngFor
If you view the app.module.ts file, you will see the following code and the BrowserModule module defined. By defining this module, you will have access to the 2 directives.
Deploying Schemas and XMetaL Customization FilesXMetaL
Derek Read discusses how XMetaL locates schemas, customization files, and other resources needed for document editing. It first looks in the same folder as the schema, then in default installation folders, and will auto-generate files if they are not found. Complex customizations may involve multiple files packaged together, such as in a XAC file. The XMetaL Developer tool assists with debugging the lookup process. Questions about specific CMS integrations should be directed to the CMS provider.
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...Lucidworks
This document discusses challenges in providing search capabilities for the Apache Solr Reference Guide content. It explores indexing the reference guide content stored in HTML format using the bin/post tool and Apache Solr's ExtractingRequestHandler. It also considers using Lucidworks' Site Search hosted service as an alternative. While both options face challenges due to the source content structure, Site Search provides a quicker path to basic search functionality for the reference guide.
This document provides a technical summary of a complex integration using Dexterity to manage member profiles and synchronize data between a Plone website and a Salesforce CRM for the nonprofit Net Impact. Key features included editable member profiles, searchable member directories, multi-level privacy workflows, and nightly syncing of member data between the two systems. Custom behaviors, schemas, and forms were developed to handle things like member roles, profile editing, and converting Salesforce IDs to Plone UUIDs.
This document provides an overview of ASP.NET MVC 2.0, covering topics such as routing, controllers, action methods, views, validation, and filters. It introduces the MVC framework's basic structure and components, and explains how to build a sample Todo application using ASP.NET MVC to manage tasks. The document also outlines some advanced features in ASP.NET MVC 2.0 like areas and asynchronous controllers, as well as new capabilities in ASP.NET MVC 3 Beta such as the Razor view engine and improved dependency injection support.
Anatomy of a web app
HTML5
CSS3
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2014.
http://www.ivanomalavolta.com
Http Service will help us fetch external data, post to it, etc. We need to import the http module to make use of the http service. Let us consider an example to understand how to make use of the http service.
Model View Controller (MVC) is a software architectural pattern commonly used for developing web applications. It promotes separation of concerns by dividing the application into three interconnected parts - the Model, the View, and the Controller. The Model manages the data logic and rules of the application. The View displays the user interface and presentation logic. The Controller interprets user input, communicates between the Model and View, and controls the flow of data and functionality. MVC enables modular and reusable application components and code and simplifies application maintenance. Django is a web framework that follows the MVT (Model Template View) pattern, which is very similar to MVC.
The document summarizes new features and improvements in Internet Explorer 8, including standards compliance, multiple rendering modes, developer tools, AJAX enhancements, and security updates. Key points include improved support for CSS 2.1, HTML 5, and accessibility standards; contextual accelerators and activities; RSS-based WebSlices for content subscription; back/forward navigation and DOM storage for AJAX apps; and integrated HTML, CSS, and JavaScript debugging tools. A timeline outlines the beta and release schedule through 2008.
This workshop conducted by the team member of Inspire Chittagong (Mizanur Rahaman Mizan and Saad Amin). Workshop was in East Delta Univeristy. There was a session relating to the infos and also another one fully focusing on the practical theme development
Explains the basics of creating a new WordPress theme; outlining some useful functions, explains some usage in OOP PHP, briefly describes the WordPress themes API.
Writing a WordPress Theme - HighEdWeb 2013 #WRK2Curtiss Grymala
This document provides information about frameworks, parent themes, and child themes in WordPress theme development. It explains that a parent theme sets up common functionality that can be extended or overridden by a child theme. A framework is like a plugin that allows creation of parent and child themes with shared functionality. Examples of frameworks and parent/child themes are given. Required theme files like style.css and index.php are outlined. The WordPress template hierarchy and use of template files and the loop are also summarized. Steps for designing and developing a WordPress theme are presented at the end.
Living on the Grid - Unlock the Power of Dojo Data Grids in XPages - MWLUG 2013balassaitis
This document summarizes features of the Dojo Data Grid and EnhancedGrid controls in XPages, including:
- Creating a basic Dojo Data Grid bound to a REST service and adding columns
- Additional features like sorting, opening documents, searching, and editing
- Converting the grid to an EnhancedGrid for additional plugins like drag-and-drop and filtering
- Using a TreeGrid control for multi-level categorization and adding column totals and counts
The speaker provides code examples for implementing various features and notes limitations based on Domino version. Questions are welcomed on the speaker's blog or Twitter account.
Are you tired of using view panels to display data in XPages? This webinar will show how you can provide a new look and feel and rich functionality with several variations of Dojo data grids. You'll learn about the XPages Dojo Data Grid control and its key features, including infinite scrolling, sorting, and editable cells. Then you'll see how to transform the grid into a Dojo EnhancedGrid and take advantage of enhanced plugins to provide even more functionality, such as multi-rule filtering and context menus. Finally, you'll get a glimpse of how to bypass the grid control in order to create a categorized Dojo TreeGrid.
You'll come away with a myriad of options for providing appealing, interactive, highly functional data grids.
This document provides an overview of ASP.NET MVC including its history, the MVC pattern, controllers, views, routing, and Razor views. It discusses the Model-View-Controller components, controller actions, action results, and action filters. It also covers view helpers, layouts, sections, and Razor syntax features.
Drupal8 modernization (new object-oriented base) and adoption of many Symfony components is a huge step in connecting these two amazing communities and amazing projects. Drupal8 is not powered by full-stack Symfony and there is still many differences between these two relatives, but still, Symfony developers should master it easily.
This talk is for Symfony developers who don't have experience with Drupal8. It will guide you through routing, controllers, hooks, events, Drupal Console, DI and many other interesting elements that power Drupal8 under the hood. It will also show how to build custom modules Symfony way.
Web services in PHP using the NuSOAP libraryFulvio Corno
This document provides an overview of using the NuSOAP library to create PHP web services. It discusses creating SOAP servers and clients with NuSOAP, using WSDL files, handling errors, and supporting complex data types. The NuSOAP library allows creating and consuming web services in PHP in an object-oriented way and can automatically generate WSDL files to describe the services.
The document discusses Java persistence and JPA 2. It introduces entity beans as persistent objects mapped to database tables. An entity bean represents data from a database table as a Java object. The document covers the lifecycle of entity beans, associations between entity beans like one-to-one and many-to-many relationships, and using the entity manager to persist, find, and remove entity beans from the database. It provides examples of entity bean classes annotated with JPA annotations and a persistence configuration file.
Mobile applications Development - Lecture 14
REST Basics
This presentation has been developed in the context of the Mobile Applications Development course at the Computer Science Department of the University of L’Aquila (Italy).
http://www.di.univaq.it/malavolta
Introduction
Require JS
Handlebars
Conclusions
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2015.
http://www.ivanomalavolta.com
In this Java JSP Training session, you will learn JSP. Topics covered in this session are:
• JSP vs Servlet
• LifeCycle of Servlet
• JSP Elements
• JSP Page directive
• Directives vs Action tags
For more information, visit this link:
https://www.mindsmapped.com/courses/software-development/jsp-and-servlets-designing-web-applications-with-java/
This session starts by giving an overview of components of an Alfresco content model. We then examine the various forms of call-backs and hook-points available to the developer and give some examples of how these can be used to enforce custom business logic and model consistency.
A directive is a custom HTML element that is used to extend the power of HTML. Angular 2 has the following directives that get called as part of the BrowserModule module.
ngif
ngFor
If you view the app.module.ts file, you will see the following code and the BrowserModule module defined. By defining this module, you will have access to the 2 directives.
Deploying Schemas and XMetaL Customization FilesXMetaL
Derek Read discusses how XMetaL locates schemas, customization files, and other resources needed for document editing. It first looks in the same folder as the schema, then in default installation folders, and will auto-generate files if they are not found. Complex customizations may involve multiple files packaged together, such as in a XAC file. The XMetaL Developer tool assists with debugging the lookup process. Questions about specific CMS integrations should be directed to the CMS provider.
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...Lucidworks
This document discusses challenges in providing search capabilities for the Apache Solr Reference Guide content. It explores indexing the reference guide content stored in HTML format using the bin/post tool and Apache Solr's ExtractingRequestHandler. It also considers using Lucidworks' Site Search hosted service as an alternative. While both options face challenges due to the source content structure, Site Search provides a quicker path to basic search functionality for the reference guide.
This document provides a technical summary of a complex integration using Dexterity to manage member profiles and synchronize data between a Plone website and a Salesforce CRM for the nonprofit Net Impact. Key features included editable member profiles, searchable member directories, multi-level privacy workflows, and nightly syncing of member data between the two systems. Custom behaviors, schemas, and forms were developed to handle things like member roles, profile editing, and converting Salesforce IDs to Plone UUIDs.
Advanced guide to develop ajax applications using dojoFu Cheng
The document discusses developing Ajax applications using Dojo. It provides a brief history of web applications and introduces rich internet applications and Ajax. It then covers why Ajax is used, different Ajax application types, how Ajax changes web applications, and the anatomy of Ajax applications. The document also discusses semantic HTML, best practices for CSS, JavaScript concepts, DOM querying and manipulation using Dojo, efficient DOM techniques, events, and event propagation.
This document provides an introduction and overview of the Django web framework. It describes what Django is, lists some major companies that use it, and outlines its main features such as an admin interface, templating, forms, internationalization, and an object-relational mapper. It also gives a high-level overview of Django's model-view-template architecture and common components like URLs, views, templates, and models. Finally, it provides some examples of getting started with Django and developing a sample "Onderwijstips" education tips application.
The document summarizes the key changes in the module structure and development approach for Magento 2.0. Some of the main changes include a simplified module structure located under app/code, refactored configuration to remove class aliases and simplify rewrites, and changes to the view layer including new view configuration, use of containers instead of blocks, and simplified themes. The developer tools and tests have also been improved to help support the new approaches in Magento 2.0.
An introduction to Web Components describes why we should use web components for Web App development and how Polymer Javascript library from Google can help build web components faster.
Magento 2.0: Prepare yourself for a new way of module developmentIvan Chepurnyi
The document summarizes upcoming changes in the structure and development of modules for Magento 2.0. Key changes include a more transparent module structure, simplified configurations, improved performance, and refactored view and theme systems. Module classes, templates, and other assets will be consolidated within each module's directory for easier management. Configuration definitions will be simplified and merged for each active module. Themes will have a clearer inheritance structure and be more customizable.
This document discusses JavaScript frameworks and web components. It provides examples of code for Dojo, Ember, Angular, React, and jQuery. It also discusses the benefits of web components, including that they are part of the DOM, future-proof, and modular. Web components include custom elements, shadow DOM, templates, and HTML imports. Browser support is improving but not yet universal. Polyfills exist to provide support in older browsers. The web components specification has changed from version 0 to version 1 to support ES6 classes.
This document outlines a course on using Oracle's BI Publisher tool for reporting in Oracle E-Business Suite. The course objectives are to explain BI Publisher concepts and advantages, teach how to create reports using RTF templates, and administer BI Publisher. The agenda includes an overview, installation, creating and running reports, formatting, security, and using data templates to generate XML. Data templates allow building dynamic XML structures against any database.
Stencil the time for vanilla web components has arrivedGil Fink
Stencil provides a compiler that generates standard-compliant custom elements from components written using its API, making it easier to create reusable web components. It addresses problems with vanilla custom elements by adding features like virtual DOM, reactivity, JSX and TypeScript support. Stencil components can be used by any framework since the output is just standard web components, avoiding issues of framework coupling. It also helps create sharable infrastructure components and enables building microfrontends with shared behaviors across applications.
MV* presentation frameworks in Javascript: en garde, pret, allez!Roberto Messora
HTML5 is the playing area, the strip, Javascript presentation frameworks are the fences and they are fierce and proud. In this presentation we will attend an interesting match between two of the emerging contenders in the MV* family: KnockoutJS and BackboneJS. We'll try to understand how they solve the same issues in modern web software development to better decide which one is suitable in our scenario.
HTML5 is the next generation of HTML that supersedes previous versions. Key features of HTML5 include new semantic HTML elements, Web Forms 2.0, multimedia support for video and audio, canvas element for 2D drawing, and local storage. HTML5 aims to provide one standard for web development that works across all major browsers through cooperation between the W3C and WHATWG.
This document introduces CodeIgniter, an open source PHP web application framework based on the Model-View-Controller (MVC) pattern. It discusses why MVC frameworks are useful for building enterprise web applications. CodeIgniter provides features like routing, database access, form validation and security filtering to help structure applications and make tasks less tedious. The document outlines CodeIgniter's directory structure, controllers, views, helpers and libraries to demonstrate how it implements the MVC pattern.
"Umbraco MVC - a journey of discovery" - Lotte Pitcherlottepitcher
Slides from the presentation I gave at the Umbraco UK Festival in November 2013.
The accompanying Visual Studio 2012 solution is downloadable from here:
https://www.dropbox.com/s/le5t9wqldg2zx2u/UKFestivalMVC.zip (15MB approx)
If you have any questions please let me know @lottepitcher
A full course about asp.net mvc 5 in Arabic. You can watch on my youtube channel https://www.youtube.com/watch?v=jrhdXwuyrfs&list=PLAPpPaAUVQyZJvtvWH9eOJcVkj7NLPQLk
This session will consider: - what data is available from index blocks - Cascade's object and data types and their implications on indexes - organizing transformation 'formats' for multi-/re-use Example widgets include: - Handy reports for project managers and site administrators - News aggregation and syndication blocks - Dynamic decision tree web widgets - XPath-based search and browse web widgets Bring your inspired indexing ideas and innovations for sharing.
This document discusses Open Atrium, an open source intranet platform built with Drupal. It describes Open Atrium's core features for blogs, wikis, calendars, to-do lists, and more. It also provides examples of how Open Atrium can be customized and extended through the use of Drupal modules like Features, Spaces, and Organic Groups to create public websites, private groups, social networks, and other configurations. The document includes code snippets demonstrating how to customize user profiles, override core configurations, alter contexts at runtime, and remove blocks using various Drupal hooks and modules.
This is an effort towards teaching Angular JS from what an average Javascript developer already know. The presentation tries to fill the gap rather than posing Angular as a magical framework.
The Time for Vanilla Web Components has ArrivedGil Fink
The document discusses the emerging web components standards that enable encapsulation, separation of concerns, and element portability. It covers the main web components APIs including templates, imports, shadow DOM, and custom elements. Templates allow declaring reusable DOM fragments. Imports allow loading additional HTML documents. Shadow DOM encapsulates DOM parts and prevents style leakage. Custom elements enable extending or creating custom HTML elements. While browser support is still developing, web components offer powerful tools for building reusable components in a standardized way.
Social Connections VI — IBM Connections Extensions and Themes DemystifiedClaudio Procida
IBM Connections uses JavaScript extensively to build its applications and UI components. JavaScript resources are centrally served by the Common application and dynamically generated into layers based on dependencies. Modules can be written using the AMD or legacy Dojo format and aggregated. Extensions are supported through extension points like web bundles, themes, and module bindings. Developers can customize or extend Connections using these extension mechanisms.
Similar to How to Write Custom Modules for PHP-based E-Commerce Systems (2011) (20)
Github is from Venus, Excel is from Mars: Wie sich Entwickler und Business-En...Roman Zenner
In diesem Vortrag geht es um die Frage, wie und warum Entwickler auf der einen und "Business-Heinis" auf der anderen Seite sich während Projekten missverstehen und was das für Folgen haben kann.
Commerce im Wandel: Steine, Schweine - und immer an die Leser denken!Roman Zenner
Beim Thema Kaufen und Verkaufen im Internet werden viele Säue durch’s digitale Dorf getrieben. Es gibt F-Commerce, M-Commerce, Tablet Commerce, Couch Commerce, und gefühlt kommt monatlich ein neuer Begriff hinzu. Dabei ist es im Grunde so einfach: Verabschieden wir uns von all den künstlichen und pseudo-wissenschaftlichen Unterscheidungen und einigen uns auf eine einfache Formel: Egal ob “online” über ein Endgerät oder “offline” in einem richtigen Ladenlokal, es geht immer um Handel, also Commerce, und immer ist der Benutzer und Kunde derjenige, um den sich alles dreht. Punkt.
Dieser Vortrag, den ich auf der Meet-Magento 4.10 gehalten habe, beschäftigt sich mit dem Thema Mobile Commerce und wie Magento mobil genutzt werden kann.
In dieser kurzen Präsentation werden verschiedene Möglichkeiten aufgezeigt, Magento mit Software von Drittherstellern mittels geeigneter Schnittstellen zu verknüpfen.
HijackLoader Evolution: Interactive Process HollowingDonato Onofri
CrowdStrike researchers have identified a HijackLoader (aka IDAT Loader) sample that employs sophisticated evasion techniques to enhance the complexity of the threat. HijackLoader, an increasingly popular tool among adversaries for deploying additional payloads and tooling, continues to evolve as its developers experiment and enhance its capabilities.
In their analysis of a recent HijackLoader sample, CrowdStrike researchers discovered new techniques designed to increase the defense evasion capabilities of the loader. The malware developer used a standard process hollowing technique coupled with an additional trigger that was activated by the parent process writing to a pipe. This new approach, called "Interactive Process Hollowing", has the potential to make defense evasion stealthier.
Discover the benefits of outsourcing SEO to Indiadavidjhones387
"Discover the benefits of outsourcing SEO to India! From cost-effective services and expert professionals to round-the-clock work advantages, learn how your business can achieve digital success with Indian SEO solutions.
Securing BGP: Operational Strategies and Best Practices for Network Defenders...APNIC
Md. Zobair Khan,
Network Analyst and Technical Trainer at APNIC, presented 'Securing BGP: Operational Strategies and Best Practices for Network Defenders' at the Phoenix Summit held in Dhaka, Bangladesh from 23 to 24 May 2024.
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...APNIC
Adli Wahid, Senior Internet Security Specialist at APNIC, delivered a presentation titled 'Honeypots Unveiled: Proactive Defense Tactics for Cyber Security' at the Phoenix Summit held in Dhaka, Bangladesh from 23 to 24 May 2024.
How to Write Custom Modules for PHP-based E-Commerce Systems (2011)
1. How to write Custom
Modules for PHP-based E-
Commerce Systems
Dr. Roman Zenner
2. Roman Zenner
• Working as freelance trainer, author and
developer since 2004
• Has written two books on Magento
• Is in the process of writing a book on
OXID eShop
• Publishes in various magazines
3. Initial thoughts
• Modularity a no-brainer in today’s
ecommerce software
• There must be a way of extending
classes or an event-listener system in
order to integrate custom functionalities
4. Types of modules
• Encapsulate graphical (template)
changes
• Provide additional information (e.g. for
an article
• Special calculations
• Payment and shipping
• Other interfaces (ImpEx, etc.
9. Brief History
• First stable version released in spring 2008
• Community Edition under OSL
• Professional and Enterprise Editions
• Based on Zend Framework and MySQL
• Relies heavily on EAV structure
• XML definitions
• Bought by eBay in 2011 (X.commerce)
• Current stable version: 1.6.1
29. Drilling down (3)
public function render()
{
$myConfig = $this->getConfig();
$oProduct = $this->getProduct();
}
public function getProduct()
{
$sOxid = oxConfig::getParameter( 'anid' );
$this->_oProduct = oxNew( 'oxarticle' );
if ( !$this->_oProduct->load( $sOxid ) ) {
...
}
}
30. Drilling down (4)
public function load( $oxID)
{
$blRet = parent::load( $oxID);
public function load( $sOXID)
{
//getting at least one field before lazy loading the object
$this->_addField('oxid', 0);
$sSelect = $this->buildSelectString( array( $this->getViewName().".oxid" => $sOXID));
return $this->_isLoaded = $this->assignRecord( $sSelect );
}
/core/oxarticle.php
/core/oxbase.php
31. Custom classes (1)
• Most view- and core classes can be overloaded
• Module are registered in backend
• Object instantiation via oxNew(): core/oxutilsobject.php
oxArticle
my_oxArticle
our_oxArticle
class my_oxArticle extends oxArticle
class our_oxArticle extends my_oxArticle
32. Custom classes (2)
• This procedure becomes problematic when there is more
than one new module wanting to extend a specific class.
• Solution: oxNew() dynamically creates transparent
classes in the form of: [class-name]_parent
• This means that by means of the following structure,
module classes can be chained:
– oxArticle => my_oxArticle&our_oxArticle
33. Plugins (1)
• Task: Write a module that displays the remaining time until
X mas with each article.
1. New module directory: /modules/xmas/
2. Publishing it via Admin:
34. Plugins (2)
class xmasArticle extends xmasArticle_parent
{
public function getDaysLeft()
{
$time = mktime(0, 0, 0, 12, 25, 2011, 1) - time();
$days = floor($time/86400);
return $days;
}
}
<div>Only [{$oDetailsProduct->getDaysLeft()}] days left until Xmas!</div>
/modules/xmas/xmasArticle.php
/out/azure/tpl/page/details/inc/productmain.tpl
35.
36. Brief History
• First stable version released in 2007.
• OS-Edition since October 2010.
• Since v.3.5 based on Enlight Framework
(based on ZF) & MySQL
• MVC-Model
• Backend based on ExtJS 4
• Templates based on Smarty 3
• Recent version: 3.5.5
37. Enlight-Framework
• Basis functionalities are inherited from Zend
Framework:
• Syntax and Workflow
• Request- and Response-Objects
• Action-Controller Design
• Rewritten Router / Dispatcher and View-
Object optimised for performance and
expandability
• Own plugin system based on events and
hooks
43. Drilling down (2)
• Article detail page: templates_defaultfrontenddetailindex.tpl
• Part that displays article name in frontend
• Template-Path (frontend/detail/index.tpl) tells us where to find the
corresponding controller. In this case: Shopware/Controllers/
Frontend/Detail.php – indexAction.
• Get article information from Model and assign to template
• Shopware()->Modules()->Articles() is a service locator to access the
main article object that could be found at /engine/core/class/
sArticles.php
• sGetArticleById fetches a certain article by id from database and
returns the result as an array for further processing
47. Plugins: Hooks
<?php
class Shopware_Plugins_Frontend_myHook_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{
public function install()
{
$hook = $this->createHook(
'sArticles',
'sGetArticleById',
'onArticle',
Enlight_Hook_HookHandler::TypeAfter,
0
);
$this->subscribeHook($hook);
return true;
}
static function onArticle(Enlight_Hook_HookArgs $args)
{
}
}
48. Summary
• Each system employs a slightly different method of
inserting custom functionalities
• Layout and functional files are more or less
encapsulated
• No core-hacking required – still a need for testing!