SlideShare a Scribd company logo
1 of 30
KICKSTARTING SITES
PROJECT



          WITH A CUSTOM PACKAGE
DATE                   CLIENT
          04.17.2009            T3CON09-DALLAS
Ron Hall
Busy Noggin
Jeff Segars
Web-Empowered Church
Why kickstart?
Launch quicker and cheaper.
Maintain less code.
KICKSTARTER 1.0
(WHAT YOU’RE ALREADY DOING)
⌘+C

KICKSTARTER 1.0
(WHAT YOU’RE ALREADY DOING)
⌘+C
                              ⌘+V
KICKSTARTER 1.0
(WHAT YOU’RE ALREADY DOING)
KICKSTARTER 2.0
(WHAT YOU NEED TO BE DOING)
⌘+C


KICKSTARTER 2.0
(WHAT YOU NEED TO BE DOING)
⌘+C
                              ⌘+V

KICKSTARTER 2.0
(WHAT YOU NEED TO BE DOING)
⌘+C
                              ⌘+V
                              ⌘+S
KICKSTARTER 2.0
(WHAT YOU NEED TO BE DOING)
ADAPT BEST PRACTICES FROM THE SITES YOU BUILD
NOT A ONE SIZE FITS ALL SOLUTION!
Templates
CSS Frameworks, inheritance & FCEs.
Modular Typoscript
Menus, constants, and external files.
CSS Zen Garden Menus
mainMenu = HMENU
mainMenu {

 entryLevel = 0

 1 = TMENU

 1{

 
 wrap = <ul>|</ul>


   
   NO {

   
   
 allWrap = <li> | </li>

   
   }

   

   
   ACT < .NO

   
   ACT = 1

   
   ACT {

   
   
 allWrap = <li class=quot;altquot;> | </li>

   
   }

   }
}
Shared configuration with custom constants
# Define the date and time formats
constants.wec.dateFormat = %m/%d/%y
constants.wec.timeFormat = %I:%M %p


# Convert the date format of news to WEC constant defined value
plugin.tt_news {
  displaySingle.date_stdWrap.strftime = {$constants.wec.dateFormat}
  displayLatest.date_stdWrap.strftime = {$constants.wec.dateFormat}
  displayList.date_stdWrap.strftime = {$constants.wec.dateFormat}
  displaySingle.time_stdWrap.strftime = {$constants.wec.timeFormat}
  displayLatest.time_stdWrap.strftime = {$constants.wec.timeFormat}
  displayList.time_stdWrap.strftime = {$constants.wec.timeFormat}
}


# Convert the date format of blog comments to WEC Constant defined value.
plugin.tx_veguestbook_pi1 {
  datetime_stdWrap.strftime= {$constants.wec.dateTimeFormat}
  date_stdWrap.strftime= {$constants.wec.dateFormat}
  time_stdWrap.strftime= {$constants.wec.timeFormat}
}




                                                                      example: wec_constants
External Typoscript via TS Setup
<INCLUDE TYPOSCRIPT src=”fileadmin/resources/ts/menu.ts” />




External Typoscript via Extensions
<?php

t3lib_extMgm::addStaticFile($_EXTKEY,'static/ts/','My Menu');

?>




                                                                example: wec_constants
Simplified Backends
Groups, permissions & TSConfig
Groups and Permissions
• Keep configuration in groups not users
• Baseline group for common settings
• Task or section based groups applied to
  pagetree




                              example: WEC Starter Package
TSConfig & TCA

   // Allow additional fields to be excluded in user and group records.
$TCA['tt_content']['columns']['header_position']['exclude'] = 1;
$TCA['tt_content']['columns']['header_link']['exclude'] = 1;

   // Force new content elements to be allowed before they appear.
$TCA['tt_content']['columns']['list_type']['config']['authMode'] = 'explicitAllow';


     // If be_acl is loaded, hide its records from list view.
if (t3lib_extMgm::isLoaded('be_acl')) {
      t3lib_extMgm::addPageTSConfig('
           mod.web_list.hideTables := addToList(tx_beacl_acl)
      ');
}




                                                                                 example: wec_config
Maintenance
Version control and a common platform.
Build up or tear down?
Broad client base vs. niche markets
What goes into your package?
Extensions, Typoscript Libraries, etc.
The Busy Noggin Quicksite
http://templavoila.busynoggin.com
WEC Starter Package
http://www.webempoweredchurch.com
Credits
• Kickstarter Photo
 http://www.flickr.com/photos/adifferentryan/133065997/


• One Size Fits All Photo
 http://www.flickr.com/photos/angusf/2270317189/

More Related Content

Similar to Kickstarting SItes With a Custom Package

Debugging and Error handling
Debugging and Error handlingDebugging and Error handling
Debugging and Error handling
Suite Solutions
 
Enhance Web Performance
Enhance Web PerformanceEnhance Web Performance
Enhance Web Performance
Adam Lu
 
Performance measurement and tuning
Performance measurement and tuningPerformance measurement and tuning
Performance measurement and tuning
AOE
 
10 wp7 local database
10 wp7   local database10 wp7   local database
10 wp7 local database
Tao Wang
 
Performance measurement and tuning
Performance measurement and tuningPerformance measurement and tuning
Performance measurement and tuning
AOE
 

Similar to Kickstarting SItes With a Custom Package (20)

Debugging and Error handling
Debugging and Error handlingDebugging and Error handling
Debugging and Error handling
 
2011 nri-pratiques tests-avancees
2011 nri-pratiques tests-avancees2011 nri-pratiques tests-avancees
2011 nri-pratiques tests-avancees
 
Ten Battle-Tested Tips for Atlassian Connect Add-ons
Ten Battle-Tested Tips for Atlassian Connect Add-onsTen Battle-Tested Tips for Atlassian Connect Add-ons
Ten Battle-Tested Tips for Atlassian Connect Add-ons
 
Standardizing JavaScript Decorators in TC39 (Full Stack Fest 2019)
Standardizing JavaScript Decorators in TC39 (Full Stack Fest 2019)Standardizing JavaScript Decorators in TC39 (Full Stack Fest 2019)
Standardizing JavaScript Decorators in TC39 (Full Stack Fest 2019)
 
Enhance Web Performance
Enhance Web PerformanceEnhance Web Performance
Enhance Web Performance
 
Plone Interactivity
Plone InteractivityPlone Interactivity
Plone Interactivity
 
Backbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVCBackbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVC
 
What you forgot from your Computer Science Degree
What you forgot from your Computer Science DegreeWhat you forgot from your Computer Science Degree
What you forgot from your Computer Science Degree
 
More Secrets of JavaScript Libraries
More Secrets of JavaScript LibrariesMore Secrets of JavaScript Libraries
More Secrets of JavaScript Libraries
 
Aug Xml Net Forum Dynamics Integration
Aug Xml Net Forum Dynamics IntegrationAug Xml Net Forum Dynamics Integration
Aug Xml Net Forum Dynamics Integration
 
Performance measurement and tuning
Performance measurement and tuningPerformance measurement and tuning
Performance measurement and tuning
 
10 wp7 local database
10 wp7   local database10 wp7   local database
10 wp7 local database
 
Performance measurement and tuning
Performance measurement and tuningPerformance measurement and tuning
Performance measurement and tuning
 
What's new in ASP.NET 4
What's new in ASP.NET 4What's new in ASP.NET 4
What's new in ASP.NET 4
 
Symfony 1, mi viejo amigo
Symfony 1, mi viejo amigoSymfony 1, mi viejo amigo
Symfony 1, mi viejo amigo
 
JDBC Java Database Connectivity
JDBC Java Database ConnectivityJDBC Java Database Connectivity
JDBC Java Database Connectivity
 
Basic testing with selenium
Basic testing with seleniumBasic testing with selenium
Basic testing with selenium
 
EPiServer Web Parts
EPiServer Web PartsEPiServer Web Parts
EPiServer Web Parts
 
Using RequireJS with CakePHP
Using RequireJS with CakePHPUsing RequireJS with CakePHP
Using RequireJS with CakePHP
 
Using REST and XML Builder for legacy XML
Using REST and XML Builder for legacy XMLUsing REST and XML Builder for legacy XML
Using REST and XML Builder for legacy XML
 

Recently uploaded

Recently uploaded (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Kickstarting SItes With a Custom Package

  • 1. KICKSTARTING SITES PROJECT WITH A CUSTOM PACKAGE DATE CLIENT 04.17.2009 T3CON09-DALLAS
  • 2. Ron Hall Busy Noggin Jeff Segars Web-Empowered Church
  • 3. Why kickstart? Launch quicker and cheaper. Maintain less code.
  • 4.
  • 5.
  • 6.
  • 7.
  • 10. ⌘+C ⌘+V KICKSTARTER 1.0 (WHAT YOU’RE ALREADY DOING)
  • 11. KICKSTARTER 2.0 (WHAT YOU NEED TO BE DOING)
  • 12. ⌘+C KICKSTARTER 2.0 (WHAT YOU NEED TO BE DOING)
  • 13. ⌘+C ⌘+V KICKSTARTER 2.0 (WHAT YOU NEED TO BE DOING)
  • 14. ⌘+C ⌘+V ⌘+S KICKSTARTER 2.0 (WHAT YOU NEED TO BE DOING)
  • 15. ADAPT BEST PRACTICES FROM THE SITES YOU BUILD NOT A ONE SIZE FITS ALL SOLUTION!
  • 17. Modular Typoscript Menus, constants, and external files.
  • 18. CSS Zen Garden Menus mainMenu = HMENU mainMenu { entryLevel = 0 1 = TMENU 1{ wrap = <ul>|</ul> NO { allWrap = <li> | </li> } ACT < .NO ACT = 1 ACT { allWrap = <li class=quot;altquot;> | </li> } } }
  • 19. Shared configuration with custom constants # Define the date and time formats constants.wec.dateFormat = %m/%d/%y constants.wec.timeFormat = %I:%M %p # Convert the date format of news to WEC constant defined value plugin.tt_news { displaySingle.date_stdWrap.strftime = {$constants.wec.dateFormat} displayLatest.date_stdWrap.strftime = {$constants.wec.dateFormat} displayList.date_stdWrap.strftime = {$constants.wec.dateFormat} displaySingle.time_stdWrap.strftime = {$constants.wec.timeFormat} displayLatest.time_stdWrap.strftime = {$constants.wec.timeFormat} displayList.time_stdWrap.strftime = {$constants.wec.timeFormat} } # Convert the date format of blog comments to WEC Constant defined value. plugin.tx_veguestbook_pi1 { datetime_stdWrap.strftime= {$constants.wec.dateTimeFormat} date_stdWrap.strftime= {$constants.wec.dateFormat} time_stdWrap.strftime= {$constants.wec.timeFormat} } example: wec_constants
  • 20. External Typoscript via TS Setup <INCLUDE TYPOSCRIPT src=”fileadmin/resources/ts/menu.ts” /> External Typoscript via Extensions <?php t3lib_extMgm::addStaticFile($_EXTKEY,'static/ts/','My Menu'); ?> example: wec_constants
  • 22.
  • 23.
  • 24. Groups and Permissions • Keep configuration in groups not users • Baseline group for common settings • Task or section based groups applied to pagetree example: WEC Starter Package
  • 25. TSConfig & TCA // Allow additional fields to be excluded in user and group records. $TCA['tt_content']['columns']['header_position']['exclude'] = 1; $TCA['tt_content']['columns']['header_link']['exclude'] = 1; // Force new content elements to be allowed before they appear. $TCA['tt_content']['columns']['list_type']['config']['authMode'] = 'explicitAllow'; // If be_acl is loaded, hide its records from list view. if (t3lib_extMgm::isLoaded('be_acl')) { t3lib_extMgm::addPageTSConfig(' mod.web_list.hideTables := addToList(tx_beacl_acl) '); } example: wec_config
  • 26. Maintenance Version control and a common platform.
  • 27. Build up or tear down? Broad client base vs. niche markets
  • 28. What goes into your package? Extensions, Typoscript Libraries, etc.
  • 29. The Busy Noggin Quicksite http://templavoila.busynoggin.com WEC Starter Package http://www.webempoweredchurch.com
  • 30. Credits • Kickstarter Photo http://www.flickr.com/photos/adifferentryan/133065997/ • One Size Fits All Photo http://www.flickr.com/photos/angusf/2270317189/

Editor's Notes

  1. Compare to developing TYPO3 from scratch. You wouldn&#x2019;t do that, so why rebuild the same sites over and over again. Long term maintenance costs decrease when a bugfix on one site works on many sites.
  2. Copying and pasting code from existing sites serves as an informal reference library.
  3. Copying and pasting code from existing sites serves as an informal reference library.
  4. Not a one size fits all solution Identify what YOU already when building sites and extract it into a formalized solution For the WEC Starter Package, this means identifying a pagetree and extensions that fits the needs of most churches and gives them a point to start learning TYPO3.
  5. Hope you attended Ron&#x2019;s template talk yesterdayCSS FrameworksCommon FCEs that complement your CSS frameworkDefine a consistent base and customize on top of it No need to worry about templates as extensions, just rely on version control
  6. GMENU still useful in certain situations but simple markup + CSS takes care of most needs. CSS Zen Garden
  7. WEC Constants
  8. Task-based groups Keep groups as lean as possible
  9. Not automated!
  10. WEC Constants
  11. Version control + extensions = quick and easy upgrades and rollbacks Common platform means less worry when upgrading TYPO3
  12. WEC targets churches and wants them to learn TYPO3 and be self sufficient. Thus, a comprehensive package where features will be disabled fits. Busy Noggin works with a diverse client base so a simple config where pieces are added fits better.
  13. Open discussion about best practices and extensions