The document describes how to use the vtlib API to customize vtiger CRM. It provides examples for creating modules, tabs, blocks, fields, custom views, and enabling/disabling actions. The vtlib API allows easier development by automating common customization tasks like creating a new "Payslip" module with the necessary database tables, fields, and views. Test scripts demonstrate how to execute the API functions to fully create custom modules.
The document summarizes tips and tricks discussed at a meetup for PHP developers in Poznan, Poland. It covers accessing request parameters in Symfony controllers, naming strategies in Doctrine, using the app.user variable and Twig, configuring Swiftmailer for email delivery, automatically testing services, ParamConverters, DI/IoC bundles like JMSDiExtraBundle, JavaScript translation bundles, and AngularJS integration.
New Symfony Tips & Tricks (SymfonyCon Paris 2015)Javier Eguiluz
This talk included tens of tips and tricks, new features and rarely used options for Symfony and its ecosystem. Besides the full-stack Symfony framework, other related technologies were mentioned, like Doctrine, Composer, Twig, PHPUnit and Monolog.
Value types are at the core of Swift (seriously, mostly everything in the Swift standard library is a value type). But how do you avoid subclassing? That’s where the power of Protocol-Oriented programming comes in. Learn how to structure your code to never subclass (almost) again! Practical everyday examples and ideas for your own code base will be included.
This talk was presented at WordCamp Brisbane 2017. The WordPress Customizer allows you to update various WordPress settings and theme options, all while providing you with a Live Preview. These slides will show you how you can add Customizer functionality into your theme, including making use of the default Core Controls, Creating your own Custom Controls, updating the Live Preview and lastly, how to use the theme options in your theme.
The document describes a business tier framework for a retail company. It includes:
1. Two class libraries - a Foundation library with base classes/interfaces and an AppTypes library with entity/exception classes for business processes.
2. A custom Suppliers collection class that implements the ICustomCollection interface to provide a strongly typed collection of Supplier objects while ensuring type safety and uniqueness.
3. The Suppliers class uses an ArrayList internally and provides various methods like adding, removing, and iterating over suppliers as well as serialization/deserialization functionality.
Symfony Messenger (Symfony Live San Francisco)Samuel ROZE
Symfony Messenger allows sending and receiving messages through a message bus, transports, and handlers. Messages are any serializable PHP object that are dispatched through the bus. Transports allow sending messages to third party systems like queues. Handlers contain the business logic to execute when a message is received. Middleware can intercept messages to add functionality like auditing. Envelopes allow adding non-message data like configuration.
This document provides information about Javier Eguiluz, a programmer and trainer from Spain who specializes in Symfony and Twig. It outlines his experience with Symfony and as the author of a popular Symfony book. The agenda covers tips, tricks, advanced features, best practices and new noteworthy features of the Twig templating engine.
This is a presentation for the November WordPress Melbourne meetup. It shows how to modify your main WordPress query the right way, using the pre_get_posts hook, rather than using query_posts() or even WP_Query().
The document summarizes tips and tricks discussed at a meetup for PHP developers in Poznan, Poland. It covers accessing request parameters in Symfony controllers, naming strategies in Doctrine, using the app.user variable and Twig, configuring Swiftmailer for email delivery, automatically testing services, ParamConverters, DI/IoC bundles like JMSDiExtraBundle, JavaScript translation bundles, and AngularJS integration.
New Symfony Tips & Tricks (SymfonyCon Paris 2015)Javier Eguiluz
This talk included tens of tips and tricks, new features and rarely used options for Symfony and its ecosystem. Besides the full-stack Symfony framework, other related technologies were mentioned, like Doctrine, Composer, Twig, PHPUnit and Monolog.
Value types are at the core of Swift (seriously, mostly everything in the Swift standard library is a value type). But how do you avoid subclassing? That’s where the power of Protocol-Oriented programming comes in. Learn how to structure your code to never subclass (almost) again! Practical everyday examples and ideas for your own code base will be included.
This talk was presented at WordCamp Brisbane 2017. The WordPress Customizer allows you to update various WordPress settings and theme options, all while providing you with a Live Preview. These slides will show you how you can add Customizer functionality into your theme, including making use of the default Core Controls, Creating your own Custom Controls, updating the Live Preview and lastly, how to use the theme options in your theme.
The document describes a business tier framework for a retail company. It includes:
1. Two class libraries - a Foundation library with base classes/interfaces and an AppTypes library with entity/exception classes for business processes.
2. A custom Suppliers collection class that implements the ICustomCollection interface to provide a strongly typed collection of Supplier objects while ensuring type safety and uniqueness.
3. The Suppliers class uses an ArrayList internally and provides various methods like adding, removing, and iterating over suppliers as well as serialization/deserialization functionality.
Symfony Messenger (Symfony Live San Francisco)Samuel ROZE
Symfony Messenger allows sending and receiving messages through a message bus, transports, and handlers. Messages are any serializable PHP object that are dispatched through the bus. Transports allow sending messages to third party systems like queues. Handlers contain the business logic to execute when a message is received. Middleware can intercept messages to add functionality like auditing. Envelopes allow adding non-message data like configuration.
This document provides information about Javier Eguiluz, a programmer and trainer from Spain who specializes in Symfony and Twig. It outlines his experience with Symfony and as the author of a popular Symfony book. The agenda covers tips, tricks, advanced features, best practices and new noteworthy features of the Twig templating engine.
This is a presentation for the November WordPress Melbourne meetup. It shows how to modify your main WordPress query the right way, using the pre_get_posts hook, rather than using query_posts() or even WP_Query().
Developing components and extensions for ext jsMats Bryntse
This document discusses developing components and extensions for Ext JS. It begins with introductions and an example of how the presenter first encountered and used Ext JS for an internal portal application. It then covers Ext JS terminology like components, containers, extensions, plugins and mixins. It provides examples of creating a simple clock component extension with steps like identifying a base class, creating class files, and adding interactivity with plugins. The document emphasizes that extensions allow reuse and customization for other developers, and provides advanced extension examples like Ext Calendar Pro and Ext Scheduler.
The WordPress Customizer allows you to update various WordPress settings and theme options, all while providing you with a Live Preview. These slides will show you how you can add Customizer functionality into your theme, including making use of the default Core Controls, Creating your own Custom Controls, updating the Live Preview and lastly, how to use the theme options in your theme.
Symfony & Javascript. Combining the best of two worldsIgnacio Martín
This document discusses combining Symfony and JavaScript. It provides a brief history of client-server interactions and explains how JavaScript is now commonly used on the client side. It acknowledges challenges with JavaScript like asynchronous behavior but notes the large community and low barrier to entry. It advocates using Symfony to build APIs and leveraging JavaScript frameworks like Backbone for the front end. It also discusses rendering views with Twig.js and using server-side JavaScript for tasks like streaming data.
Il arrive parfois que nous, développeurs, pensions qu’il n’est pas nécessaire de connaître ce qu’ils appellent les « design patterns » ou « patrons de conception ». Nous pensons parfois que nous n’avons pas besoin de cette théorie. Après des années d’expériences avec la faible maintenabilité de mon propre code et de celui de mes clients, j’ai exploré de nombreuses façons de découpler nos applications afin de créer des applications « enterprise ready » qui peuvent vivre pendant de nombreuses années. Via des exemples concrets, je vais vous présenter quelques design patterns qui peuvent vous aider à travailler sur une codebase propre, structurée et bien découplée.
This document introduces Apostrophe, a Symfony-powered content management system (CMS) that aims to be easy for clients to use without specialized training. It discusses key goals like extensibility and preventing unintentional changes. The document outlines features like in-context editing, media management, and engines for multiple content types. It also covers how developers can extend Apostrophe through slots, forms, and actions following Symfony patterns. Virtual pages, routing, and JavaScript integration are presented as techniques enabling scalability.
A bean is a reusable software component based on Sun's JavaBeans specification that can be manipulated visually in a builder tool.“
The JavaBeans technology enables vendors to create environments that make it dramatically easier to develop user interfaces for Java applications.
Java Beans are reusable software components that can be visually manipulated in builder tools. They allow developers to write reusable components once and run them anywhere on any Java-enabled platform. Key features of Java Beans include properties, events, persistence, and introspection to allow visual manipulation in builder tools. Customization is also supported to allow customizing a bean's appearance and behavior.
Beginning iphone 4_devlopement_chpter7_tab_bJihoon Kong
The document discusses creating different types of pickers and tab bars in iOS, including:
1. Explaining pickers and tab bars
2. Plans to create date, single-value, double-value, dependent, and custom pickers
3. Steps to set up the tab bar and add picker views to sample tabs
JavaBeans are reusable software components that can be visually composed using builder tools. They have properties that can be edited visually, support events to communicate between components, and allow introspection to discover their features. JavaBeans use serialization and XML for persistence so their state can be saved and restored. They provide a portable, platform-independent way to create reusable application components.
The document provides an overview of the Sonata AdminBundle. It introduces Thomas Rabaix, the lead developer, and describes how the bundle provides a backend generator for Symfony 2 that aims to create a consistent and rich user experience for managing data beyond basic CRUD functionality. Key features highlighted include the dashboard interface, easy configuration of list, edit, and form views, internationalization support, and reliance on Symfony components and other Sonata bundles.
Stephan Hochdörfer discusses various techniques for testing code that is difficult to test, known as "untestable code". He covers approaches like using autoloading and modifying the include path to mock dependencies, as well as overriding language functions with runkit. Generative programming is proposed as a way to automatically generate testable code by replacing dependencies with mocks. The key messages are that one should write testable code from the start, and that PHP provides many creative ways to test code through language features and workarounds.
The document discusses Swing, the graphical user interface (GUI) toolkit for Java. It introduces Swing as a replacement for the original Abstract Window Toolkit (AWT) that improved on AWT's weaknesses. Key points covered include:
- Swing was introduced in 1997 as part of the Java Foundation Classes to address AWT's limitations. It uses lightweight components instead of relying on native platform components.
- Swing supports pluggable look-and-feel and is based on the model-view-controller architecture. It includes a variety of common GUI components like tables, trees, sliders.
- Layout managers like FlowLayout, GridLayout, BorderLayout, and BoxLayout are used to position and
This document provides an overview of Java Bean component models. It discusses that Java beans are reusable software components that can be visually manipulated in builder tools. It also describes the different types of ports beans can have including methods, properties, events sources, and event sinks. The document outlines how to implement properties, events, and listeners in beans to make them customizable. It also discusses how beans can be made persistent through serialization and how customizers can provide customized user interfaces for complex beans.
A brief introduction to the Declarative Schema introduced into Magento 2.3.
This presentation covers:
- What developers were required to do previously
- The benefits of using Declarative Schema
- How to create tables
- How to rename tables
- How to drop tables
- Table attributes
- Adding columns
- Column attributes
- Indexes
- Unique values within columns
- Primary keys
- Foreign keys
- Data patches and how to create them
- Schema patches and how to create them
On February 18th, 2010 was O'Reilly's "Exploring Rails 3" online conference and these are Gregg Pollack's slides. They are by no means a complete record of improvements in Rails 3, but they should serve to get your appetite wet.
Java Swing provides graphical user interface (GUI) components for building desktop applications. It includes common widgets like buttons, text fields, labels and dialog boxes. JOptionPane allows building simple dialog boxes for input/output. Swing components are lightweight and platform-independent compared to the older AWT components. Common Swing components discussed include JFrame for windows, JButton for buttons, JLabel for text, JFileChooser for file selection and JCheckBox, JRadioButton for state buttons.
This document provides an overview of Java Swing through a series of slides. It introduces Swing as a GUI toolkit for Java that includes 14 packages and over 450 classes. It discusses how Swing components are lightweight and not thread-safe. The document covers key Swing concepts like layout managers, event handling with listeners, look and feels, common containers like JPanel and JSplitPane, controls like JButton and JTextField, and components like images, scroll bars, check boxes and radio buttons. Code examples are provided for many of the concepts discussed.
1. The document discusses various Spring concepts including layers vs domains, Lombok annotations, SOLID principles, testing, exceptions, transactions, and JPA.
2. It provides code examples for implementing concepts like the repository pattern, POJO testing, controller testing, and data access with JPA.
3. Specific topics covered include layering, Lombok, GRASP principles, Spring Boot testing approaches, exception handling best practices, transaction isolation levels, and relationships and optimizations in JPA.
This document provides an introduction to dependency injection containers (DIC). It begins by explaining dependency injection and its benefits over direct instantiation, such as easier testing and replacing dependencies. It then introduces the concept of a dependency injection container, which manages object instantiation and wiring of dependencies. Using a container allows configuring services differently for production versus development and avoids deeply nested instantiation code. The document demonstrates implementing a simple DI container and using it to resolve object graphs in place of direct construction.
This document lists various room types at a hotel including a tea lounge, living room, meeting facilities, and staff rooms. It appears to be an inventory or floor plan of some kind that is enumerating the different rooms and spaces available at the property.
The document discusses some of the key reasons why people may not donate to charity, including cost, ease of donation, trust in charities, and lack of familiarity with charities and their causes. It then provides examples of successful charitable mobile apps that have helped raise funds for causes like fighting blindness in developing countries and combating HIV/AIDS in Africa. The document concludes by suggesting an idea for a hypothetical charitable mobile app that could help fund public transportation for those in need.
Developing components and extensions for ext jsMats Bryntse
This document discusses developing components and extensions for Ext JS. It begins with introductions and an example of how the presenter first encountered and used Ext JS for an internal portal application. It then covers Ext JS terminology like components, containers, extensions, plugins and mixins. It provides examples of creating a simple clock component extension with steps like identifying a base class, creating class files, and adding interactivity with plugins. The document emphasizes that extensions allow reuse and customization for other developers, and provides advanced extension examples like Ext Calendar Pro and Ext Scheduler.
The WordPress Customizer allows you to update various WordPress settings and theme options, all while providing you with a Live Preview. These slides will show you how you can add Customizer functionality into your theme, including making use of the default Core Controls, Creating your own Custom Controls, updating the Live Preview and lastly, how to use the theme options in your theme.
Symfony & Javascript. Combining the best of two worldsIgnacio Martín
This document discusses combining Symfony and JavaScript. It provides a brief history of client-server interactions and explains how JavaScript is now commonly used on the client side. It acknowledges challenges with JavaScript like asynchronous behavior but notes the large community and low barrier to entry. It advocates using Symfony to build APIs and leveraging JavaScript frameworks like Backbone for the front end. It also discusses rendering views with Twig.js and using server-side JavaScript for tasks like streaming data.
Il arrive parfois que nous, développeurs, pensions qu’il n’est pas nécessaire de connaître ce qu’ils appellent les « design patterns » ou « patrons de conception ». Nous pensons parfois que nous n’avons pas besoin de cette théorie. Après des années d’expériences avec la faible maintenabilité de mon propre code et de celui de mes clients, j’ai exploré de nombreuses façons de découpler nos applications afin de créer des applications « enterprise ready » qui peuvent vivre pendant de nombreuses années. Via des exemples concrets, je vais vous présenter quelques design patterns qui peuvent vous aider à travailler sur une codebase propre, structurée et bien découplée.
This document introduces Apostrophe, a Symfony-powered content management system (CMS) that aims to be easy for clients to use without specialized training. It discusses key goals like extensibility and preventing unintentional changes. The document outlines features like in-context editing, media management, and engines for multiple content types. It also covers how developers can extend Apostrophe through slots, forms, and actions following Symfony patterns. Virtual pages, routing, and JavaScript integration are presented as techniques enabling scalability.
A bean is a reusable software component based on Sun's JavaBeans specification that can be manipulated visually in a builder tool.“
The JavaBeans technology enables vendors to create environments that make it dramatically easier to develop user interfaces for Java applications.
Java Beans are reusable software components that can be visually manipulated in builder tools. They allow developers to write reusable components once and run them anywhere on any Java-enabled platform. Key features of Java Beans include properties, events, persistence, and introspection to allow visual manipulation in builder tools. Customization is also supported to allow customizing a bean's appearance and behavior.
Beginning iphone 4_devlopement_chpter7_tab_bJihoon Kong
The document discusses creating different types of pickers and tab bars in iOS, including:
1. Explaining pickers and tab bars
2. Plans to create date, single-value, double-value, dependent, and custom pickers
3. Steps to set up the tab bar and add picker views to sample tabs
JavaBeans are reusable software components that can be visually composed using builder tools. They have properties that can be edited visually, support events to communicate between components, and allow introspection to discover their features. JavaBeans use serialization and XML for persistence so their state can be saved and restored. They provide a portable, platform-independent way to create reusable application components.
The document provides an overview of the Sonata AdminBundle. It introduces Thomas Rabaix, the lead developer, and describes how the bundle provides a backend generator for Symfony 2 that aims to create a consistent and rich user experience for managing data beyond basic CRUD functionality. Key features highlighted include the dashboard interface, easy configuration of list, edit, and form views, internationalization support, and reliance on Symfony components and other Sonata bundles.
Stephan Hochdörfer discusses various techniques for testing code that is difficult to test, known as "untestable code". He covers approaches like using autoloading and modifying the include path to mock dependencies, as well as overriding language functions with runkit. Generative programming is proposed as a way to automatically generate testable code by replacing dependencies with mocks. The key messages are that one should write testable code from the start, and that PHP provides many creative ways to test code through language features and workarounds.
The document discusses Swing, the graphical user interface (GUI) toolkit for Java. It introduces Swing as a replacement for the original Abstract Window Toolkit (AWT) that improved on AWT's weaknesses. Key points covered include:
- Swing was introduced in 1997 as part of the Java Foundation Classes to address AWT's limitations. It uses lightweight components instead of relying on native platform components.
- Swing supports pluggable look-and-feel and is based on the model-view-controller architecture. It includes a variety of common GUI components like tables, trees, sliders.
- Layout managers like FlowLayout, GridLayout, BorderLayout, and BoxLayout are used to position and
This document provides an overview of Java Bean component models. It discusses that Java beans are reusable software components that can be visually manipulated in builder tools. It also describes the different types of ports beans can have including methods, properties, events sources, and event sinks. The document outlines how to implement properties, events, and listeners in beans to make them customizable. It also discusses how beans can be made persistent through serialization and how customizers can provide customized user interfaces for complex beans.
A brief introduction to the Declarative Schema introduced into Magento 2.3.
This presentation covers:
- What developers were required to do previously
- The benefits of using Declarative Schema
- How to create tables
- How to rename tables
- How to drop tables
- Table attributes
- Adding columns
- Column attributes
- Indexes
- Unique values within columns
- Primary keys
- Foreign keys
- Data patches and how to create them
- Schema patches and how to create them
On February 18th, 2010 was O'Reilly's "Exploring Rails 3" online conference and these are Gregg Pollack's slides. They are by no means a complete record of improvements in Rails 3, but they should serve to get your appetite wet.
Java Swing provides graphical user interface (GUI) components for building desktop applications. It includes common widgets like buttons, text fields, labels and dialog boxes. JOptionPane allows building simple dialog boxes for input/output. Swing components are lightweight and platform-independent compared to the older AWT components. Common Swing components discussed include JFrame for windows, JButton for buttons, JLabel for text, JFileChooser for file selection and JCheckBox, JRadioButton for state buttons.
This document provides an overview of Java Swing through a series of slides. It introduces Swing as a GUI toolkit for Java that includes 14 packages and over 450 classes. It discusses how Swing components are lightweight and not thread-safe. The document covers key Swing concepts like layout managers, event handling with listeners, look and feels, common containers like JPanel and JSplitPane, controls like JButton and JTextField, and components like images, scroll bars, check boxes and radio buttons. Code examples are provided for many of the concepts discussed.
1. The document discusses various Spring concepts including layers vs domains, Lombok annotations, SOLID principles, testing, exceptions, transactions, and JPA.
2. It provides code examples for implementing concepts like the repository pattern, POJO testing, controller testing, and data access with JPA.
3. Specific topics covered include layering, Lombok, GRASP principles, Spring Boot testing approaches, exception handling best practices, transaction isolation levels, and relationships and optimizations in JPA.
This document provides an introduction to dependency injection containers (DIC). It begins by explaining dependency injection and its benefits over direct instantiation, such as easier testing and replacing dependencies. It then introduces the concept of a dependency injection container, which manages object instantiation and wiring of dependencies. Using a container allows configuring services differently for production versus development and avoids deeply nested instantiation code. The document demonstrates implementing a simple DI container and using it to resolve object graphs in place of direct construction.
This document lists various room types at a hotel including a tea lounge, living room, meeting facilities, and staff rooms. It appears to be an inventory or floor plan of some kind that is enumerating the different rooms and spaces available at the property.
The document discusses some of the key reasons why people may not donate to charity, including cost, ease of donation, trust in charities, and lack of familiarity with charities and their causes. It then provides examples of successful charitable mobile apps that have helped raise funds for causes like fighting blindness in developing countries and combating HIV/AIDS in Africa. The document concludes by suggesting an idea for a hypothetical charitable mobile app that could help fund public transportation for those in need.
My master's thesis project from Uppsala University where I developed a voice portal for Kenyan farmers, using the open-source speech synthesis engine Festival, for the Swahili language.
The project was mainly conducted and at the University of Nairobi in Kenya, and partly in Bristol, England.
760150 Webinar Innovation Management And Technology Transfer In ChinaJames_C_Chapman
This document summarizes a panel discussion on innovation management and technology transfer in China. It discusses China's goals to invest in research and development and establish research institutes. It provides an overview of life science technology development in China, including key innovation centers, government funding programs, patent growth, and potential partnership strategies and pitfalls when collaborating in China.
This document provides strategies for improving sentences, including correcting sentence fragments, run-on sentences, and improving parallel structure, word choice, and conciseness. Specific techniques are presented such as adding a subject or verb to a fragment, separating run-on sentences with punctuation, and using fewer words to eliminate wordiness. Five strategies for eliminating extra words from sentences are also outlined.
The student created a music magazine as part of an assignment to practice skills needed for their final project. They received feedback on their preliminary magazine which helped them improve aspects like using vibrant colors, large eye-catching images, and concise yet engaging cover lines for their final music magazine cover. Key lessons included the importance of layout, style and visual design elements in attracting readers and sales.
This document provides a SWOT (Strengths, Weaknesses, Opportunities, Threats) analysis of open-source software (OSS). It notes that while OSS has strengths like low costs and a large community, its biggest challenge is supporting software without strict governance rules. OSS also faces threats from established institutions resistant to change and past perceptions that liken it to outdated systems. The document advocates for "next generation" library catalogs that go beyond just finding information to helping users understand content through services like analyzing word frequencies, phrases and numeric metadata.
The document summarizes 5 tools for creating healthy habits: 1) Foodflex helps track food purchases and find healthier alternatives; 2) crossword sites stimulate cognitive activity and improve memory; 3) Hammering Wheels bike club offers social bike meetups on varied terrain; 4) Pandora provides a wide variety of relaxing music to avoid limitations; 5) MapMyRide allows mapping and logging bike routes, setting goals, and connecting with others.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise causes chemical changes in the brain that may help boost feelings of calmness, happiness and focus.
The Holy Spirit helps believers pray through intercession. He was promised and sent by Jesus after his ascension. In Acts, the Holy Spirit empowers the disciples to preach boldly and spreads the gospel from Jerusalem to Samaria and to the Gentiles, working signs and wonders. Non-Jews like Cornelius also receive the Spirit, showing that the gospel is for all people.
Coca-Cola is the world's largest beverage company and most popular soft drink, selling over 1.6 billion servings per day in over 200 countries. It was created in Atlanta, Georgia by Dr. John S. Pemberton and has grown to have a wide portfolio of beverages. While very successful globally, Coca-Cola faces challenges from competition and negative publicity. The company utilizes social media platforms like Facebook and Twitter to interact with customers, promote causes, and monitor brand perception.
This document provides tips and tricks for Odoo development. It discusses module structure, creating new tables and inheriting existing tables, creating menu items and CRUD for models, creating master-detail relationships between models, creating models from multiple models using queries, creating buttons that trigger actions, sending emails via API using email templates, and creating job schedules using automated actions.
The document provides tips for finding resources in the Eclipse workspace using a visitor. It describes creating a class that implements IResourceProxyVisitor and overriding the visit() method. This method would check each resource proxy for a match to the location string and return the resource if found. This allows recursively searching the workspace to locate a resource based on its path or other identifier.
Uploading files using selenium web driverPankaj Biswas
The document discusses different methods for automating the uploading of files in Selenium tests. It describes using the sendKeys method to upload files for input tags, but also covers using third party tools like AutoIt and Sikuli when upload buttons are not input tags. AutoIt and Sikuli can interact with OS level windows that Selenium cannot access directly. The document provides instructions on setting up AutoIt and Sikuli, identifies common methods like click and type, and includes examples of uploading a file using each tool within a Selenium test.
CASE STUDY InternetExcel Exercises, page 434, textRecord your.docxketurahhazelhurst
CASE STUDY
Internet/Excel Exercises, page 434, text
Record your findings in a Word document and submit it online
IBM has substantial operations in many countries, including the United States, Canada, and Germany. Go to finance.yahoo.com/q?s=ibm.
1. Click on Historical Prices. (Or apply this exercise to a different MNC.) Set the date range so that you can obtain quarterly values of the U.S. stock index for the last 20 quarters. Insert the quarterly data on a spreadsheet. Compute the percentage change in IBM’s stock price for each quarter. Next go to finance.yahoo.com/stock-center/ and click (under U.S.) on S&P Composite 1500 Index, which represents the U.S. stock market index, so that you can derive the quarterly percentage change in the U.S. stock index over the last 20 quarters. Then run a regression analysis with IBM’s quarterly return (percentage change in stock price) as the dependent variable and the quarterly percentage change in the U.S. stock market’s value as the independent variable. (Appendix C explains how Excel can be used to run regression analysis.) The slope coefficient serves as an estimate of the sensitivity of IBM’s value to the U.S. market returns. Also, check the fit of the relationship based on the R-squared statistic.
2. Go to finance.yahoo.com/stock-center/ and click (under “Europe”) on DAX, which represents the German stock market index. Repeat the process described in exercise 1 so that you can assess IBM’s sensitivity to the German stock market. Compare the slope coefficient between the two analyses. Is IBM’s value more sensitive to the U.S. market or the German market? Does the U.S. market or the German market explain a higher proportion of the variation in IBM’s returns (check the R-squared statistic)? Offer an explanation of your results.
Lab 5 Database Security
Use the script from week 1 for the week 5 lab.
1. Create four new users
a. The first user will have full rights to the database
b. The second user grant access to the Client’s table and allow them the rights to INSERT data into the clients table
c. The third user grant rights to create user logins and reset passwords
d. The fourth user grant column rights to the Course_Activity table allow access to the Course Code and Grade column. Allow user to UPDATE a maximum of 5 times per hour.
2. Login with each user to demonstrate the rights you have given them
a. User 1 login and create a VIEW for user 2 that just displays the Client table
b. User 2 login and add 3 more clients to the Clients table
c. User 3 login create two new users
d. User 4 login and UPDATE two new entries for Course Code and Grade Column for Client 1 and 2
e. For each user run the Show Privileges command to show correct rights and permissions have been applied
3. Show Log Files: For each user show log files (since we do not have MySQL Enterprise we cannot use the Audit function but as a substitute we can use the built-in log file function)
4. Create a Stored Procedure with User ...
This document provides an overview of Symfony2, a PHP framework that includes reusable components and libraries, configuration, and an MVC architecture. It discusses installing Symfony2, creating an application bundle, defining a data model with Doctrine ORM, loading initial data with fixtures, adding routing and templates, and testing applications. The document also mentions additional Symfony bundles that can provide useful features like user management, administration interfaces, and pagination.
show code and all classes with full implementation for these Program S.pdfAlanSmDDyerl
show code and all classes with full implementation for these Program Specifications.
Example products ( camcorder, dvd player, blueray player, tv, camera, xbox 360, ps4, Wii,
laptops, iphone, battery, smart phones, computer desktop, printer, usb, mouse)
Develop an inventory management system for an electronics store. The inventory system should
have the following functionalities:
BuildInventory: read a text file containing electronics products information and dynamically
store them in an array of pointers.
ShowInventory: display all inventory items.
UpdateInventory: ask for item id and quantity. If found display cost and update Product object
info (reduce Product's quantity and potentially update restocking flag).
Terminate: save current inventory to a text file.
This programming assignment illustrates the following concepts:
Text file reading and writing.
Arrays of pointers and dynamic memory allocations with new and delete.
Inheritance.
C++ type casting: static_cast.
NOTE: This assignment is not about polymorphism or dynamic_cast! Your program should not
contain any virtual function and/or use of dynamic_cast mechanism or point deductions will
apply. You will have opportunity to use polymorphism in the next assignment.
Class Design
You need at least three classes.
class InventoryItem (minimum implementation specified below) - This is the base class.
Protected member data: item id (integer) and restocking (bool).
Public static data:
const integer (item id): initialize to 9999.
const bool (restocking): initialize to false.
Constructors
Default constructor: initialize item id and restocking using the default static data with member
initializer syntax.
Non-default constructor: take 2 parameters.
Destructor: output "InventoryItem <item id> with <true/false> restocking destroyed ..."
Public member functions:
mutator/accessor for restocking, item id.
Display : to show InventoryItem item id and restocking (true/false). item id must be displayed as
a 4-digit integer with leading 0s if < 1000.
class Product : derived from InventoryItem class (minimum implementation specified below).
Private member data: name (string), quantity (integer) and price (double).
Public static data:
const string (name): "No Product".
const int (quantity): 0
const double (price): 0.99
Constructors (use member initializer syntax)
Default constructor: set member data to static data's default values above. Must explicitly invoke
the base class' default constructor.
Non-default constructor: take five parameters (id, restocking, name, quantity and price). Must
explicitly invoke the base class' non-default constructor.
Destructor: output "Product: <item id>, Name<name>, quantity<quantity>, price <price>,
restocking<true/false> destroyed ...".
Public member functions:
accessors/mutators for name, quantity, price.
Display: invoke Display from base class, then display its own data. NOTE: If the product
restocking is true somehow indicate it using "special effects" such as ***** or wh.
Program Specifications in c++ Develop an inventory management system f.docxsharold2
Program Specifications in c++
Develop an inventory management system for an electronics store. The inventory system should have the following functionalities:
BuildInventory: read a text file containing electronics products information and dynamically store them in an array of pointers.
ShowInventory: display all inventory items.
UpdateInventory: ask for item id and quantity. If found display cost and update Product object info (reduce Product's quantity and potentially update restocking flag).
Terminate: save current inventory to a text file.
This programming assignment illustrates the following concepts:
Text file reading and writing.
Arrays of pointers and dynamic memory allocations with new and delete.
Inheritance.
C++ type casting: static_cast.
NOTE: This assignment is not about polymorphism or dynamic_cast! Your program should not contain any virtual function and/or use of dynamic_cast mechanism or point deductions will apply. You will have opportunity to use polymorphism in the next assignment.
Class Design
You need at least three classes.
class InventoryItem (minimum implementation specified below) - This is the base class.
Protected member data: item id (integer) and restocking (bool).
Public static data:
const integer (item id): initialize to 9999.
const bool (restocking): initialize to false.
Constructors
Default constructor: initialize item id and restocking using the default static data with member initializer syntax.
Non-default constructor: take 2 parameters.
Destructor: output "InventoryItem <item id> with <true/false> restocking destroyed ..."
Public member functions:
mutator/accessor for restocking, item id.
Display : to show InventoryItem item id and restocking (true/false). item id must be displayed as a 4-digit integer with leading 0s if < 1000.
class Product : derived from InventoryItem class (minimum implementation specified below).
Private member data: name (string), quantity (integer) and price (double).
Public static data:
const string (name): "No Product".
const int (quantity): 0
const double (price): 0.99
Constructors (use member initializer syntax)
Default constructor: set member data to static data's default values above. Must explicitly invoke the base class' default constructor.
Non-default constructor: take five parameters (id, restocking, name, quantity and price). Must explicitly invoke the base class' non-default constructor.
Destructor: output "Product: <item id>, Name<name>, quantity<quantity>, price <price>, restocking<true/false> destroyed ...".
Public member functions:
accessors/mutators for name, quantity, price.
Display: invoke Display from base class, then display its own data. NOTE: If the product restocking is true somehow indicate it using "special effects" such as ***** or whatever effect you'd like.
Cost : take an integer as its only parameter representing the quantity (how many product to be sold) and return the total cost (price * quantity parameter).
class InventorySystem: (minimum implement.
Program Specifications in c++ Develop an inventory management syste.docxsharold2
Program Specifications in c++
Develop an inventory management system for an electronics store. The inventory system should have the following functionalities:
BuildInventory: read a text file containing electronics products information and dynamically store them in an array of pointers.
ShowInventory: display all inventory items.
UpdateInventory: ask for item id and quantity. If found display cost and update Product object info (reduce Product's quantity and potentially update restocking flag).
Terminate: save current inventory to a text file.
This programming assignment illustrates the following concepts:
Text file reading and writing.
Arrays of pointers and dynamic memory allocations with new and delete.
Inheritance.
C++ type casting: static_cast.
NOTE: This assignment is not about polymorphism or dynamic_cast! Your program should not contain any virtual function and/or use of dynamic_cast mechanism or point deductions will apply. You will have opportunity to use polymorphism in the next assignment.
Class Design
You need at least three classes.
class InventoryItem (minimum implementation specified below) - This is the base class.
Protected member data: item id (integer) and restocking (bool).
Public static data:
const integer (item id): initialize to 9999.
const bool (restocking): initialize to false.
Constructors
Default constructor: initialize item id and restocking using the default static data with member initializer syntax.
Non-default constructor: take 2 parameters.
Destructor: output "InventoryItem <item id> with <true/false> restocking destroyed ..."
Public member functions:
mutator/accessor for restocking, item id.
Display : to show InventoryItem item id and restocking (true/false). item id must be displayed as a 4-digit integer with leading 0s if < 1000.
class Product : derived from InventoryItem class (minimum implementation specified below).
Private member data: name (string), quantity (integer) and price (double).
Public static data:
const string (name): "No Product".
const int (quantity): 0
const double (price): 0.99
Constructors (use member initializer syntax)
Default constructor: set member data to static data's default values above. Must explicitly invoke the base class' default constructor.
Non-default constructor: take five parameters (id, restocking, name, quantity and price). Must explicitly invoke the base class' non-default constructor.
Destructor: output "Product: <item id>, Name<name>, quantity<quantity>, price <price>, restocking<true/false> destroyed ...".
Public member functions:
accessors/mutators for name, quantity, price.
Display: invoke Display from base class, then display its own data. NOTE: If the product restocking is true somehow indicate it using "special effects" such as ***** or whatever effect you'd like.
Cost : take an integer as its only parameter representing the quantity (how many product to be sold) and return the total cost (price * quantity parameter).
class InventorySystem: (minimum implement.
Program Specifications Develop an inventory management system for an e.docxVictormxrPiperc
Program Specifications
Develop an inventory management system for an electronics store. The inventory system should have the following functionalities:
BuildInventory: read a text file containing electronics products information and dynamically store them in an array of pointers.
ShowInventory: display all inventory items.
UpdateInventory: ask for item id and quantity. If found display cost and update Product object info (reduce Product's quantity and potentially update restocking flag).
Terminate: save current inventory to a text file.
This programming assignment illustrates the following concepts:
Text file reading and writing.
Arrays of pointers and dynamic memory allocations with new and delete.
Inheritance.
C++ type casting: static_cast.
NOTE: This assignment is not about polymorphism or dynamic_cast! Your program should not contain any virtual function and/or use of dynamic_cast mechanism or point deductions will apply. You will have opportunity to use polymorphism in the next assignment.
Class Design
You need at least three classes.
class InventoryItem (minimum implementation specified below) - This is the base class.
Protected member data: item id (integer) and restocking (bool).
Public static data:
const integer (item id): initialize to 9999.
const bool (restocking): initialize to false.
Constructors
Default constructor: initialize item id and restocking using the default static data with member initializer syntax.
Non-default constructor: take 2 parameters.
Destructor: output "InventoryItem <item id> with <true/false> restocking destroyed ..."
Public member functions:
mutator/accessor for restocking, item id.
Display : to show InventoryItem item id and restocking (true/false). item id must be displayed as a 4-digit integer with leading 0s if < 1000.
class Product : derived from InventoryItem class (minimum implementation specified below).
Private member data: name (string), quantity (integer) and price (double).
Public static data:
const string (name): "No Product".
const int (quantity): 0
const double (price): 0.99
Constructors (use member initializer syntax)
Default constructor: set member data to static data's default values above. Must explicitly invoke the base class' default constructor.
Non-default constructor: take five parameters (id, restocking, name, quantity and price). Must explicitly invoke the base class' non-default constructor.
Destructor: output "Product: <item id>, Name<name>, quantity<quantity>, price <price>, restocking<true/false> destroyed ...".
Public member functions:
accessors/mutators for name, quantity, price.
Display: invoke Display from base class, then display its own data. NOTE: If the product restocking is true somehow indicate it using "special effects" such as ***** or whatever effect you'd like.
Cost : take an integer as its only parameter representing the quantity (how many product to be sold) and return the total cost (price * quantity parameter).
class InventorySystem: (minimum implementation s.
This workshop is a hands-on training where a real Zend Framework application is used as an example to start improving QA using tools to test, document and perform software metric calculations to indicate where the software can be improved. I also explain the reports produced by a CI system.
The document discusses tools and techniques for making Java development more enjoyable. It recommends using libraries like Mockito, Guice and Guava to simplify testing and dependency injection. It also suggests using builder patterns, writing concise yet descriptive unit tests, and avoiding string-typing in favor of object-oriented types.
Stop Hacking WordPress, Start Working with it - Charly Leetham - WordCamp Syd...WordCamp Sydney
Many developers know how to write code in php but that doesn't mean they can write code for Wordpress.
When developing sites for clients in Wordpress, it sometimes preferably to write a custom function that will simplify data input, management and display.
The Wordpress coding framework is continually evolving and provides a number of hooks (through actions & filters) to allow developers to quickly and easily grab functions to create world class websites.
Charly will speak about the power of hooks and filters and explain some of the most common ones to use if you want to write your own custom functions, to make the management of your wordpress websites a breeze.
The document provides an overview of techniques for customizing OroCRM, including:
- Adding a new bundle manually or using commands, registering the bundle, and setting bundle priorities
- Creating a new entity and generating CRUD functionality including controllers, forms, routing, and views
- Adding migrations for data and schema changes
- Overriding existing bundles by overriding services, controllers, routing, views, forms, and JavaScript modules
- Key techniques for customizing include extending classes rather than replacing them, using annotation and configuration overrides, and utilizing placeholder blocks in overridden template files.
The document provides instructions for a Google Wave workshop on building interactive gadgets and robots. The workshop covers getting started with Google Wave, downloading necessary files, building a simple voting gadget to demonstrate core gadget functionality, and building an interactive robot using the Google App Engine and Wave Robot API. Attendees will learn how to add external CSS and JavaScript, store and retrieve state data, and set callback functions to update gadgets in real-time in response to events.
This document provides a summary of Svelte's component format and template syntax:
Svelte components are defined in .svelte files with optional <script>, <style>, and markup sections. The <script> section contains reactive logic and exported props. Assignments trigger re-renders. Stores allow reactive access to values. Conditionals like {#if} and iterators like {#each} are used in markup. Template syntax supports expressions, comments, and spread attributes to pass props.
Rifartek Robot Training Course - How to use ClientRobotTsai Tsung-Yi
The document discusses using ClientRobot to integrate ZigBee modules and insert sensor data into a database in 5 steps. It also covers developing plugins for ClientRobot using the RifartekRobotPlugin base class and testing plugins within the Eclipse IDE.
Here’s a step-by-step guide to implement Flask JWT Authentication with an example. Clone the flask-jwt authentication github repo and play around with the code
2. Table of Contents
About................................................................................................................................3
Requirements.....................................................................................................................3
Applying Customization.......................................................................................................3
Testing Module Creation.......................................................................................................4
API Usage..........................................................................................................................5
Creating Tab (Menu Item)................................................................................................5
Creating Block................................................................................................................6
Creating Field.................................................................................................................7
Creating Custom View.....................................................................................................9
Enable/Disable Action....................................................................................................10
Creating New Module.....................................................................................................11
Creating Payslip Module.....................................................................................................12
Module Entry Point........................................................................................................13
Default List view...........................................................................................................13
Create view..................................................................................................................14
Detail view...................................................................................................................14
List view......................................................................................................................14
Export – Import Tool......................................................................................................15
3. About
vtlib aims at providing easier development environment for vtiger. In this version API's are
provided which lets you create module easily for vtiger.
Requirements
vtiger 5.0.4 should be installed.
NOTE: Source directory in this document refers, vtiger CRM source installation.
If you have used vtiger CRM bundled installation like, .exe or .bin, it will be located in
<vtigercrm_install_directory>apachehtdocsvtigerCRM
Applying Customization
1. Take backup of your vtiger CRM Source directory.
2. Unpack the vtlib-x.y.zip into your vtiger CRM source directory.
Files and Folder:
Existing file changes
include export.php Hooks added to support record export for
modules.
modules/Import ImportStep1.php Hooks added to support record import into
modules.
ImportStep2.php
ImportStep3.php
ImportSteplast.php
ImportStepundo.php
UsersLastImport.php
Smarty/templates Buttons_List.tpl Hook provided to enable import and export
buttons for custom modules.
Buttons_List1.tpl
New file additions
modules/Payslip Example modules for testing vtlib scripts.
modules/EmailScanner
Test Scripts
vtlib.Test.html Provides link to execute the following scripts
vtlib.Test.Create.Menu.Item.php Example to create menu item
vtlib.Test.Create.Module.Blocks.php Example to show module creation and block for it.
vtlib.Test.Create.Module.Fields.php Example to show module creation and fields for it.
vtlib.Test.Create.Module1.php Payslip Module Creation (modules/Payslip dir is already packaged)
Make the following entry in include/language/en_us.lang.php after script
execution
$app_strings = Array(
'Payslip' => 'PaySlip',
....
4. vtlib.Test.Create.Module2.php EmailScanner Module Creation (modules/EmailScanner dir is already
packaged)
Make the following entry in include/language/en_us.lang.php after script
execution
$app_strings = Array(
'EmailScanner => 'Email Scanner',
....
Testing Module Creation
1. After unpacking the vtlib zip file, open http://localhost/vtigercrm/vtlib.Test.html
2. Click on Create Payslip Module to test creation of Payslip Module
3. Click on Create EmailScanner Module to test creation of EmailScanner Module
NOTE: When you create module as said above, you will see blank links added under Tools menu. Kindly
edit include/language/en_us.lang.php and update $app_strings as shown below:
$app_strings = Array (
'Payslip' => 'PaySlip',
'EmailScanner' => 'EMAIL SCANNER',
...
After this you will be able to see Tools » Payslip and Tools » EMAIL SCANNER
5. API Usage
Given below are examples on how to use the API's provided by vtlib.
Creating Tab (Menu Item)
include_once('vtlib/Vtiger/Tab.php');
Vtiger_Tab::create('<NEWMODULE>', '<NEWMODULE_LABEL>', '<MENUNAME>');
This API will create new menu item which serves as entry point for the module.
Example:
Vtiger_Tab::create('Payslip', 'Payslip', 'Tools');
NOTE: You will need to put the <NEWMODULE_LABEL> mapping in the language file
(include/language/en_us.lang.php) to see the affect.
$app_strings = Array (
'Payslip' => 'PaySlip',
...
6. Creating Block
include_once('vtlib/Vtiger/Block.php');
Vtiger_Block::create('<MODULE>', '<BLOCK_LABEL>');
This API will create block for the specified <MODULE>.
Example:
Vtiger_Block::create('Leads', 'LBL_VTLIB_INFORMATION');
NOTE: You will need to put the <BLOCK_LABEL> mapping in the module language file
(modules/<MODULE>/language/en_us.lang.php) to see the affect.
For the above example, add the mapping in modules/Leads/language/en_us.lang.php
$mod_strings = Array (
'LBL_VTLIB_INFORMATION' => 'vtlib Information',
...
NOTE2: The block will not be displayed until we associate one field to it.
7. Creating Field
include_once('vtlib/Vtiger/Field.php');
$field1 = new Vtiger_Field();
// Populate Field Information
$field1->set('module', '<MODULE>')
-> set('columnname', '<TABLE COLUMN NAME>')
-> set('tablename', '<TABLE NAME>')
-> set('columntype', '<TABLE COLUMN TYPE>')
-> set('generatedtype', '<STANDARD (=1) OR CUSTOM (=2) TYPE>')
-> set('uitype', <UI TYPE>)
-> set('fieldname', '<FIELD NAME>')
-> set('fieldlabel', '<FIELD LABEL ON UI>') // Need language file entry
-> set('readonly', '<READONLY (=0) orelse (1)>')
-> set('presence', '0')
-> set('selected', '0')
-> set('maximumlength', '<MAXIMUM DATA LENGTH (=100)>')
-> set('sequence', null) // Will be set dynamically.
-> set('typeofdata', '<TYPE OF DATA>')
-> set('quickcreate', '<AVAILABLE IN QUICK CREATE FORM(=0) orelse(=1)>')
-> set('block', null) // Set blockid and make blocklabel null
-> set('blocklabel', '<BLOCK LABEL to which field needs to attached>')
-> set('displaytype', '<DISPLAY TYPE>')
-> set('quickcreatesequence', null) // Will be set dynamically
-> set('info_type', '<TYPE OF INFORMATION (BAS=Basic,ADV=Advanced)>');
// Create Field
$field1->create();
The above API will let you create vtiger field and assoicate it to the module block.
You will have to provide all the information described above.
NOTE: During vtiger field creation, the columnname existence is checked in the tablename
specified. If it does not exists then tablename is alter and columnname (columntype) is created.
You can create table before creating field & provide the tablename, columnname to use this table.
include_once('vtlib/Vtiger/Utils.php');
Vtiger_Utils::CreateTable('<TABLENAME>', '(<COLUMNNAME COLUMNTYPE>)');
This API will let us create table with tablename and given column conditions.
Example: To create a new field and associate to custom block in Leads module.
include_once('vtlib/Vtiger/Field.php');
$field1 = new Vtiger_Field();
$field1-> set('module', 'Leads')
-> set('columnname', 'vtlib_leads') // New column
-> set('tablename', 'vtiger_leaddetails') // Existing table
-> set('columntype', 'varchar(255)')
-> set('generatedtype', '1')
-> set('uitype', 2)
-> set('fieldname', 'vtlibldname')
-> set('fieldlabel', 'vtlibLeadName')
// Entry needed in modules/Leads/language/en_us.lang.php
-> set('readonly', '1')
-> set('presence', '0')
-> set('selected', '0')
-> set('maximumlength', '100')
8. -> set('sequence', null)
-> set('typeofdata', 'V~M')
-> set('quickcreate', '1')
-> set('block', null)
-> set('blocklabel', 'LBL_VTLIB_INFORMATION')
-> set('displaytype', '1')
-> set('quickcreatesequence', null)
-> set('info_type', 'BAS');
$field1->create();
After executing this script, make sure to check the mapping in
modules/Leads/language/en_us.lang.php for fieldlabel (vtlibLeadName) used above.
If you have associated the field with a new table then you will need to update:
modules/Leads/Leads.php $tab_name and $tab_name_index Arrays
var $tab_name = Array( ..., '<NEW_TABLENAME>');
var $tab_name_index = Array( ..., '<NEW_TABLENAME>' => '<ID_COLUMN>');
9. Creating Custom View
include_once('vtlib/Vtiger/CustomView.php');
Vtiger_CustomView::create('<MODULE>', '<FILTER NAME>');
This API will let you create custom view (filter) for the required module. Once the filter is created
you need to associate module fields to it. The module field instance need to be populated as
explained in previous section.
$cv = new Vtiger_CustomView('<MODULE>', '<FILTER NAME>');
$cv->addColumn($Vtiger_Field_Instance);
Example:
Create custom view for Leads module and associating the field created in last section.
include_once('vtlib/Vtiger/CustomView.php');
include_once('vtlib/Vtiger/Field.php');
Vtiger_CustomView::create('Leads', 'vtlibFilter');
$cv = new Vtiger_CustomView('Leads', 'vtlibFilter');
$field1-> set('module', 'Leads')
-> set('columnname', 'vtlib_leads')
-> set('tablename', 'vtiger_leaddetails')
-> set('fieldname', 'vtlibldname')
-> set('fieldlabel', 'vtlibLeadName')
-> set('typeofdata', 'V~M');
$cv->addColumn($field1);
10. Enable/Disable Action
Import, Export and Merge are treated as Actions for a module. To enable or disable them, you can
use the API given below.
include_once('vtlib/Vtiger/Tab.php');
Vtiger_Tab::disableAction('<MODULE>','<Action>');
Vtiger_Tab::enableAction('<MODULE>','<Action>');
Example:
To Disable Import and Enable Export for Leads module.
Vtiger_Tab::disableAction('Leads','Import');
Vtiger_Tab::enableAction('Leads', 'Export');
NOTE: This will enable or disable the action (tool) for all the existing profiles.
11. Creating New Module
This can be broken down into two steps:
1. Database setup
2. Module directory setup
Database setup
Using the above API's explained above you will be able to create new modules for vtiger. The
following are important steps that should be followed to get basic working module.
a) Create tab (entry point for module on UI)
b) Create required module table, module group table.
c) Create blocks for the module.
d) Create fields and associate it to blocks.
Set atleast one of the field as entity identifer.
e) Create custom view with required fields (make sure to create filter name All which is
treated as special default filter)
NOTE: Please look at vtlib.Test.Create.Module1.php file to understand the steps explained above.
Module directory setup
vtlib directory contains skeleton ModuleDir which can be used as a template for new module that
is created. It contains source files that needs to be changed accordingly.
1. Rename ModuleDir to <NewModuleName>
2. Rename ModuleDir/ModuleFile.php to <NewModuleName>.php
3. Rename ModuleDir/ModuleFileAjax.php to <NewModuleName>Ajax.php
4. Edit <NewModuleName>.php
a) Rename Class ModuleClass to <NewModuleName>
b) Update $table_name and $table_index (Module table name and table index column)
c) Update $groupTable
d) Update $tab_name, $tab_name_index
e) Update $list_fields, $list_fields_name, $sortby_fields
f) Update $detailview_links
g) Update $default_order_by, $default_sort_order
h) Update $required_fields
i) Rename function ModuleClass to function <NewModuleName> [This is the Constructor Class]
12. Creating Payslip Module
When Create Payslip Module link is clicked from http://localhost/vtigercrm/vtlib.Test.html you will see the
following:
NOTE: Kindly edit include/language/en_us.lang.php and update $app_strings as shown below:
$app_strings = Array (
'Payslip' => 'PaySlip'
...