SlideShare a Scribd company logo
5 Unbelievable Tricks
to Help You COPE
Eric L. Epps, Sauk Valley Community College
@ericepps #CUC15 #COPEtricks
Which Hannon Hill
1. “It’s not about the web page”
(Cascade as a data warehouse)
2. “Ultimate set of tools”
(Take advantage of Cascade tools)
• Data Definition Smart Fields
• Data Definition Smart Fields
• Content Types/Content Type Publishing
• Data Definition Smart Fields
• Content Types/Content Type Publishing
• XSL Page Transforms
• Data Definition Smart Fields
• Content Types/Content Type Publishing
• XSL Page Transforms
• Web Services
• Data Definition Smart Fields
• Content Types/Content Type Publishing
• XSL Page Transforms
• Web Services
• Velocity Script Tools
(Velocity Includes, Locator Tool, Query API)
3. “Give me all the XML”
(APIs to XML using Web Services)
• $restURL =
'https://api.somesite.com?apikey={{secret}}';
$returnJSON = file_get_contents($restURL);
createXMLBlock($cascade, $auth,'/parent/folder',
'theAssetName', $siteName, $returnJSON,'json');
• foreach($values as $value) {
$restURL =
‘https://api.somesite.com?apikey={{secret}}&value='
. $value;
$returnXML = file_get_contents($restURL);
createXMLBlock($cascade, $auth, '/parent/folder',
$value, $siteName, $returnXML,'xml');
}
• $restURL = 'https://api.data.gov/ed/collegescorecard/v1/schools.json?
id=148672,147703&_fields=school.name,school.city,school.state,id&api_key={{
secret}}';
$scJSON = file_get_contents($restURL);
createXMLBlock($cascade,$auth, '/-blocks/CareerOneStop', 'scorecard',
$siteName, $scJSON,'json');
• foreach($socCodes as $value) {
$socCode = str_replace(‘-‘,'',$value);
$restURL =
'http://www.careerinfonet.org/webservices/occwages_webservice/occwagesservi
ce.asmx/GetWagesByZip?userID='.$apiKey.'&soccode='.$socCode.'&zip='.$zipCod
e;
$wagesXML = file_get_contents($restURL);
createXMLBlock($cascade,$auth, '/-blocks/CareerOneStop/Wage', $value,
$siteName, $wagesXML,’xml');
}
• http://bit.ly/cuc15-restapi (GitHub)
4. “A Brick Within a Block Within a ShortCode”
(Bricks and ShortCodes)
#set ( $sib = $_XPathTool.selectSingleNode($contentRoot, "/system-index-block) )
#set ( $bricks = $_XPathTool.selectNodes($sib, "system-page/system-data-
structure/brick") )
#macro ( useBricks $contentString )
#set ( $string = $contentString )
#foreach ( $item in $bricks )
#set ( $var = "[" + $_EscapeTool.xml($item.getChild("name").value) +
"]" )
#set ( $val = $_EscapeTool.xml($item.getChild("value").value) )
#set ( $string = $string.replaceAll($var, $val) )
#end
${string}
#end
#set ( $page = $_XPathTool.selectSingleNode($sib, "calling-page/system-page") )
#set ( $content = $_SerializerTool.serialize($page.getChild("page-xhtml"), true)
)
#useBricks($content)
Bricks
• [getBlock type="xhtml"
path="/absolute/path/to/block" site=“siteName"]
• [getBlock type="xhtml"
path="/absolute/path/to/block" site="siteName"
replace="textreplacement1 textreplacement2"
textreplacement1="value to display #1"
textreplacement2="value to display #2”]
(will replace the string "[|[textreplacement1]|]" in the block with
"value to display #1" and "[|[textreplacement2]|]" with "value to
display #2”)
• http://bit.ly/cuc15-shortcode (GitHub)
5. “Better together”
(Content Layering)
Faculty/Staff Websites
Program Pages
Thank you!
eric.epps@svcc.edu
github.com/ericepps

More Related Content

Viewers also liked

MenntaMiðja
MenntaMiðjaMenntaMiðja
Mi primer proyecto flipped
Mi primer proyecto flippedMi primer proyecto flipped
Mi primer proyecto flipped
Camilo Rodriguez MAcias
 
Presentación de tools en Inverness
Presentación de tools en InvernessPresentación de tools en Inverness
Presentación de tools en Inverness
Camilo Rodriguez MAcias
 
Eletrica
EletricaEletrica
VIDBOX_-Overview-june-15-2015
VIDBOX_-Overview-june-15-2015VIDBOX_-Overview-june-15-2015
VIDBOX_-Overview-june-15-2015Jorge Olson
 
Jane austen
Jane austenJane austen
Jane austensabrecht
 
La inteligencia
La inteligenciaLa inteligencia
La inteligencia
Juan1413
 
Crafting Reusable Resources
Crafting Reusable ResourcesCrafting Reusable Resources
Crafting Reusable Resources
Jennifer Davis
 
ICT and etwinning ,Camilo
ICT and etwinning ,CamiloICT and etwinning ,Camilo
ICT and etwinning ,Camilo
Camilo Rodriguez MAcias
 
งานนำเสนอวิชาการ1
งานนำเสนอวิชาการ1งานนำเสนอวิชาการ1
งานนำเสนอวิชาการ1Narinpho
 
La inteligencia
La inteligenciaLa inteligencia
La inteligenciaJuan1413
 
Presentation1
Presentation1Presentation1
Conte "Estimem i cuidem el planeta i la seua teuladeta"
Conte "Estimem i cuidem el planeta i la seua teuladeta"Conte "Estimem i cuidem el planeta i la seua teuladeta"
Conte "Estimem i cuidem el planeta i la seua teuladeta"
CRISTINAMON
 
Solid state drive buyer's guide
Solid state drive buyer's guideSolid state drive buyer's guide
Solid state drive buyer's guide
boatpad
 
I social-media-e-i-top-brands-nel-mercato-del-fashion
I social-media-e-i-top-brands-nel-mercato-del-fashionI social-media-e-i-top-brands-nel-mercato-del-fashion
I social-media-e-i-top-brands-nel-mercato-del-fashion
Datafashion srl
 
Velocity 2014 - From Hero to Zero
Velocity 2014 - From Hero to ZeroVelocity 2014 - From Hero to Zero
Velocity 2014 - From Hero to Zero
Jennifer Davis
 

Viewers also liked (20)

MenntaMiðja
MenntaMiðjaMenntaMiðja
MenntaMiðja
 
Mi primer proyecto flipped
Mi primer proyecto flippedMi primer proyecto flipped
Mi primer proyecto flipped
 
Presentación de tools en Inverness
Presentación de tools en InvernessPresentación de tools en Inverness
Presentación de tools en Inverness
 
Eletrica
EletricaEletrica
Eletrica
 
Pres4 blogger
Pres4 bloggerPres4 blogger
Pres4 blogger
 
VIDBOX_-Overview-june-15-2015
VIDBOX_-Overview-june-15-2015VIDBOX_-Overview-june-15-2015
VIDBOX_-Overview-june-15-2015
 
Jane austen
Jane austenJane austen
Jane austen
 
La inteligencia
La inteligenciaLa inteligencia
La inteligencia
 
Crafting Reusable Resources
Crafting Reusable ResourcesCrafting Reusable Resources
Crafting Reusable Resources
 
ICT and etwinning ,Camilo
ICT and etwinning ,CamiloICT and etwinning ,Camilo
ICT and etwinning ,Camilo
 
งานนำเสนอวิชาการ1
งานนำเสนอวิชาการ1งานนำเสนอวิชาการ1
งานนำเสนอวิชาการ1
 
La inteligencia
La inteligenciaLa inteligencia
La inteligencia
 
Presentation1
Presentation1Presentation1
Presentation1
 
Conte "Estimem i cuidem el planeta i la seua teuladeta"
Conte "Estimem i cuidem el planeta i la seua teuladeta"Conte "Estimem i cuidem el planeta i la seua teuladeta"
Conte "Estimem i cuidem el planeta i la seua teuladeta"
 
Billi kaulitz
Billi kaulitzBilli kaulitz
Billi kaulitz
 
Tgr
TgrTgr
Tgr
 
Solid state drive buyer's guide
Solid state drive buyer's guideSolid state drive buyer's guide
Solid state drive buyer's guide
 
I social-media-e-i-top-brands-nel-mercato-del-fashion
I social-media-e-i-top-brands-nel-mercato-del-fashionI social-media-e-i-top-brands-nel-mercato-del-fashion
I social-media-e-i-top-brands-nel-mercato-del-fashion
 
Velocity 2014 - From Hero to Zero
Velocity 2014 - From Hero to ZeroVelocity 2014 - From Hero to Zero
Velocity 2014 - From Hero to Zero
 
South africa
South africaSouth africa
South africa
 

Similar to 5 Unbelievable Tricks to Help You COPE

APIs, Web Services, and Mashups: What they are and how they can be used
APIs, Web Services, and Mashups: What they are and how they can be usedAPIs, Web Services, and Mashups: What they are and how they can be used
APIs, Web Services, and Mashups: What they are and how they can be used
snackeru
 
Harnessing Free Content with Web Service APIs
Harnessing Free Content with Web Service APIsHarnessing Free Content with Web Service APIs
Harnessing Free Content with Web Service APIsALATechSource
 
Library Mashups & APIs
Library Mashups & APIsLibrary Mashups & APIs
Library Mashups & APIslibrarywebchic
 
YQL: Select * from Internet
YQL: Select * from InternetYQL: Select * from Internet
YQL: Select * from Internet
drgath
 
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
Amazon Web Services
 
Big data workloads using Apache Sparkon HDInsight
Big data workloads using Apache Sparkon HDInsightBig data workloads using Apache Sparkon HDInsight
Big data workloads using Apache Sparkon HDInsight
Nilesh Gule
 
YQL:: Select * from Internet
YQL:: Select * from InternetYQL:: Select * from Internet
YQL:: Select * from Internetdrgath
 
WTF is Semantic Web?
WTF is Semantic Web?WTF is Semantic Web?
WTF is Semantic Web?
milesw
 
Ajax workshop
Ajax workshopAjax workshop
Ajax workshop
WBUTTUTORIALS
 
SemWeb Fundamentals - Info Linking & Layering in Practice
SemWeb Fundamentals - Info Linking & Layering in PracticeSemWeb Fundamentals - Info Linking & Layering in Practice
SemWeb Fundamentals - Info Linking & Layering in Practice
Dan Brickley
 
SADI: A design-pattern for “native” Linked-Data Semantic Web Services
SADI: A design-pattern for “native” Linked-Data Semantic Web ServicesSADI: A design-pattern for “native” Linked-Data Semantic Web Services
SADI: A design-pattern for “native” Linked-Data Semantic Web Services
LDBC council
 
SADI: A design-pattern for “native” Linked-Data Semantic Web Services
SADI: A design-pattern for “native” Linked-Data Semantic Web ServicesSADI: A design-pattern for “native” Linked-Data Semantic Web Services
SADI: A design-pattern for “native” Linked-Data Semantic Web Services
Ioan Toma
 
SharePoint and jQuery Essentials
SharePoint and jQuery EssentialsSharePoint and jQuery Essentials
SharePoint and jQuery Essentials
Mark Rackley
 
Linked Open Data and Digital Curation (Islandora)
Linked Open Data and Digital Curation (Islandora)Linked Open Data and Digital Curation (Islandora)
Linked Open Data and Digital Curation (Islandora)
Hong (Jenny) Jing
 
December 2, 2015: NISO/NFAIS Virtual Conference: Semantic Web: What's New and...
December 2, 2015: NISO/NFAIS Virtual Conference: Semantic Web: What's New and...December 2, 2015: NISO/NFAIS Virtual Conference: Semantic Web: What's New and...
December 2, 2015: NISO/NFAIS Virtual Conference: Semantic Web: What's New and...
DeVonne Parks, CEM
 
ElasticSearch - index server used as a document database
ElasticSearch - index server used as a document databaseElasticSearch - index server used as a document database
ElasticSearch - index server used as a document database
Robert Lujo
 
Building APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformBuilding APIs in an easy way using API Platform
Building APIs in an easy way using API Platform
Antonio Peric-Mazar
 
Case study of Rujhaan.com (A social news app )
Case study of Rujhaan.com (A social news app )Case study of Rujhaan.com (A social news app )
Case study of Rujhaan.com (A social news app )
Rahul Jain
 
REST easy with API Platform
REST easy with API PlatformREST easy with API Platform
REST easy with API Platform
Antonio Peric-Mazar
 

Similar to 5 Unbelievable Tricks to Help You COPE (20)

APIs, Web Services, and Mashups: What they are and how they can be used
APIs, Web Services, and Mashups: What they are and how they can be usedAPIs, Web Services, and Mashups: What they are and how they can be used
APIs, Web Services, and Mashups: What they are and how they can be used
 
Metadata is back!
Metadata is back!Metadata is back!
Metadata is back!
 
Harnessing Free Content with Web Service APIs
Harnessing Free Content with Web Service APIsHarnessing Free Content with Web Service APIs
Harnessing Free Content with Web Service APIs
 
Library Mashups & APIs
Library Mashups & APIsLibrary Mashups & APIs
Library Mashups & APIs
 
YQL: Select * from Internet
YQL: Select * from InternetYQL: Select * from Internet
YQL: Select * from Internet
 
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
 
Big data workloads using Apache Sparkon HDInsight
Big data workloads using Apache Sparkon HDInsightBig data workloads using Apache Sparkon HDInsight
Big data workloads using Apache Sparkon HDInsight
 
YQL:: Select * from Internet
YQL:: Select * from InternetYQL:: Select * from Internet
YQL:: Select * from Internet
 
WTF is Semantic Web?
WTF is Semantic Web?WTF is Semantic Web?
WTF is Semantic Web?
 
Ajax workshop
Ajax workshopAjax workshop
Ajax workshop
 
SemWeb Fundamentals - Info Linking & Layering in Practice
SemWeb Fundamentals - Info Linking & Layering in PracticeSemWeb Fundamentals - Info Linking & Layering in Practice
SemWeb Fundamentals - Info Linking & Layering in Practice
 
SADI: A design-pattern for “native” Linked-Data Semantic Web Services
SADI: A design-pattern for “native” Linked-Data Semantic Web ServicesSADI: A design-pattern for “native” Linked-Data Semantic Web Services
SADI: A design-pattern for “native” Linked-Data Semantic Web Services
 
SADI: A design-pattern for “native” Linked-Data Semantic Web Services
SADI: A design-pattern for “native” Linked-Data Semantic Web ServicesSADI: A design-pattern for “native” Linked-Data Semantic Web Services
SADI: A design-pattern for “native” Linked-Data Semantic Web Services
 
SharePoint and jQuery Essentials
SharePoint and jQuery EssentialsSharePoint and jQuery Essentials
SharePoint and jQuery Essentials
 
Linked Open Data and Digital Curation (Islandora)
Linked Open Data and Digital Curation (Islandora)Linked Open Data and Digital Curation (Islandora)
Linked Open Data and Digital Curation (Islandora)
 
December 2, 2015: NISO/NFAIS Virtual Conference: Semantic Web: What's New and...
December 2, 2015: NISO/NFAIS Virtual Conference: Semantic Web: What's New and...December 2, 2015: NISO/NFAIS Virtual Conference: Semantic Web: What's New and...
December 2, 2015: NISO/NFAIS Virtual Conference: Semantic Web: What's New and...
 
ElasticSearch - index server used as a document database
ElasticSearch - index server used as a document databaseElasticSearch - index server used as a document database
ElasticSearch - index server used as a document database
 
Building APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformBuilding APIs in an easy way using API Platform
Building APIs in an easy way using API Platform
 
Case study of Rujhaan.com (A social news app )
Case study of Rujhaan.com (A social news app )Case study of Rujhaan.com (A social news app )
Case study of Rujhaan.com (A social news app )
 
REST easy with API Platform
REST easy with API PlatformREST easy with API Platform
REST easy with API Platform
 

Recently uploaded

Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 

Recently uploaded (20)

Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 

5 Unbelievable Tricks to Help You COPE

  • 1. 5 Unbelievable Tricks to Help You COPE Eric L. Epps, Sauk Valley Community College @ericepps #CUC15 #COPEtricks Which Hannon Hill
  • 2.
  • 3. 1. “It’s not about the web page” (Cascade as a data warehouse)
  • 4. 2. “Ultimate set of tools” (Take advantage of Cascade tools)
  • 5. • Data Definition Smart Fields
  • 6. • Data Definition Smart Fields • Content Types/Content Type Publishing
  • 7. • Data Definition Smart Fields • Content Types/Content Type Publishing • XSL Page Transforms
  • 8. • Data Definition Smart Fields • Content Types/Content Type Publishing • XSL Page Transforms • Web Services
  • 9. • Data Definition Smart Fields • Content Types/Content Type Publishing • XSL Page Transforms • Web Services • Velocity Script Tools (Velocity Includes, Locator Tool, Query API)
  • 10. 3. “Give me all the XML” (APIs to XML using Web Services)
  • 11. • $restURL = 'https://api.somesite.com?apikey={{secret}}'; $returnJSON = file_get_contents($restURL); createXMLBlock($cascade, $auth,'/parent/folder', 'theAssetName', $siteName, $returnJSON,'json'); • foreach($values as $value) { $restURL = ‘https://api.somesite.com?apikey={{secret}}&value=' . $value; $returnXML = file_get_contents($restURL); createXMLBlock($cascade, $auth, '/parent/folder', $value, $siteName, $returnXML,'xml'); }
  • 12. • $restURL = 'https://api.data.gov/ed/collegescorecard/v1/schools.json? id=148672,147703&_fields=school.name,school.city,school.state,id&api_key={{ secret}}'; $scJSON = file_get_contents($restURL); createXMLBlock($cascade,$auth, '/-blocks/CareerOneStop', 'scorecard', $siteName, $scJSON,'json'); • foreach($socCodes as $value) { $socCode = str_replace(‘-‘,'',$value); $restURL = 'http://www.careerinfonet.org/webservices/occwages_webservice/occwagesservi ce.asmx/GetWagesByZip?userID='.$apiKey.'&soccode='.$socCode.'&zip='.$zipCod e; $wagesXML = file_get_contents($restURL); createXMLBlock($cascade,$auth, '/-blocks/CareerOneStop/Wage', $value, $siteName, $wagesXML,’xml'); } • http://bit.ly/cuc15-restapi (GitHub)
  • 13.
  • 14. 4. “A Brick Within a Block Within a ShortCode” (Bricks and ShortCodes)
  • 15. #set ( $sib = $_XPathTool.selectSingleNode($contentRoot, "/system-index-block) ) #set ( $bricks = $_XPathTool.selectNodes($sib, "system-page/system-data- structure/brick") ) #macro ( useBricks $contentString ) #set ( $string = $contentString ) #foreach ( $item in $bricks ) #set ( $var = "[" + $_EscapeTool.xml($item.getChild("name").value) + "]" ) #set ( $val = $_EscapeTool.xml($item.getChild("value").value) ) #set ( $string = $string.replaceAll($var, $val) ) #end ${string} #end #set ( $page = $_XPathTool.selectSingleNode($sib, "calling-page/system-page") ) #set ( $content = $_SerializerTool.serialize($page.getChild("page-xhtml"), true) ) #useBricks($content) Bricks
  • 16. • [getBlock type="xhtml" path="/absolute/path/to/block" site=“siteName"] • [getBlock type="xhtml" path="/absolute/path/to/block" site="siteName" replace="textreplacement1 textreplacement2" textreplacement1="value to display #1" textreplacement2="value to display #2”] (will replace the string "[|[textreplacement1]|]" in the block with "value to display #1" and "[|[textreplacement2]|]" with "value to display #2”) • http://bit.ly/cuc15-shortcode (GitHub)

Editor's Notes

  1. COPE, of course, stands for “Create Once, Publish Everywhere,” one of the core reasons to use a content management system, especially Cascade Server. Today, I want to look at some key concepts and techniques that have helped me COPE with content over the years. If everything works correctly, I’ll be posting links throughout the session with the hashtag #COPEtricks, so feel free to follow along or check those out afterwards This is going to be part historical, part technical, as I explore some of the key techniques I’ve discovered or developed to re-use content--whether that content be traditional web page content or system assets like formats. It’s a mix of concepts, techniques, and code, so I hope there will be a little something for everyone. Please feel free to stop me at any time with questions, and I hope we can have some time at the end for you to share your own favorite COPEing mechanisms. To start off, let me share a little about my context to explain why this has been so critical for me. I’m Web Developer at Sauk Valley Community College. Here’s a picture of our campus, which looks pretty rural, but if we zoom out a little bit….it looks even more rural. We’re definitely one of the smaller Cascade sites. [twitter]Follow #CUC15 or #COPETricks for related links (if it works right!)[/twitter]
  2. To start off, let me share a little about my context to explain why this has been so critical for me. I’m Web Developer at Sauk Valley Community College. Here’s a picture of our campus, which looks pretty rural, but if we zoom out a little bit….it looks even more rural. We’re definitely one of the smaller Cascade sites. So I wear several different hats--webmaster, campus display signage, mobile app, document imaging system, other duties as assigned--which comes with some challenges and benefits. Since I touch so many areas, I have an ability to look for where content can be re-used. But I also have a real need to make that process as efficient as possible. In larger institutions, you still have a need to be efficient and re-use content, but with the added need to share that content among several developers and departments.
  3. When I started using Cascade Server, back in version 4.7 (which boasted Internet Explorer 7 support!), I remember being frustrated by how complicated it was to build a simple web page. So, I love coffee, perhaps a little too much, and roast my own. If I have roasted some coffee beans and want to give you some, the easiest way is for me to put it in a bag and give it to you. Right? No need for any other steps. But we do have some limitations, don’t we? We have to be nearby. We need to be able to carry the package. So, if I have 100,000 pounds of coffee to distribute nationwide, I’m going to need to add some steps. If that coffee comes from a hundred different sources, more steps. I’m going to need a warehouse, a distribution center. One of the key realizations for me was when I stopped thinking of Cascade Server as a program to make web pages and started thinking of it as a data warehouse. I’m going to be collecting data from a lot of different sources--user generated in Cascade, XML feeds, APIs, user generated from outside Cascade, wherever I can get it. Some of that will need to be repackaged, transformed, filtered, then I can send it out to wherever it needs to go. In one sense, this is hardly revolutionary, but looking at Cascade this way is a key to unlocking Cascade’s full potential.
  4. First is “Smart Fields” in Data Definitions. In addition to making Data Definitions much easier to use for the end user, having the ability to hide part of a form makes it easier to reuse that Data Definition elsewhere. The general idea is that you can show or hide sections of a form based on a <select> box, checkbox, or radio button. Again, this makes life much easier for content creators, and since you have to select whether a particular section is shown or hidden, you can easily show or hide that section in your Velocity or XSLT Format based on that value.
  5. [twitter]Content Type publish sets: idea http://bit.ly/cuc15-ctpublishidea, code http://bit.ly/cuc15-ctpublishcode #CUC15 #COPETricks[/twitter] Second up is Content Types. Many of you may not been around for the dark ages before the Content Type, but the ability to group together all of a particular type of page regardless of their location is great. So, once you have a content type, you can use a Content Type Index Block or the Query API to get a list of all assets and further filter and display them. I have a listing of committees and their minutes in our Intranet; before Content Types, I had to remember to manually add each index page to the publish set every time a new committee was added. Now, it’s a Committee Index Content Type, and I can use Web Services to update the publish set automatically whenever a new committee is added. There’s also an idea in the Idea Exchange to make this an option in the native Publish Set, so a shameless plug to vote for that idea and make my Web Services script obsolete.
  6. Third is a technique I learned from Jay Mercer in my first ever User Conference session. He talked about XSLT Page Transforms and his “Identity Transform.” This has eliminated much of my need to write new templates by essentially giving access to the entire page from within the DEFAULT page region. The Identity Transform just loops through and replicates the entire XHTML page *after* all the regions have been processed. You can then add whatever templates you want to modify the processed XHTML. For example, if I want to append the current month and year to the <title> element for all news releases, I just add an element with a class=“addToTitle” which I “move” to the <title> element and remove from the DEFAULT region. Or, I can take any link with a class=”proxy” and run that link through EZ-Proxy. Or I can define an element in any region of the document and move it to the document <head> by adding a class of “moveToHead”. This dramatically reduces the number of modifications I need to make to Templates and the number of new Templates I have to make. Jay, thank you, thank you, thank you.
  7. Fourth is too big of a topic to do more than a passing mention, but nothing has supercharged my ability to manage and automate Cascade more than Web Services. There’s just no substitute for being able to set a cron job to create and modify content in batches and daily, weekly, or whatever.
  8. [twitter]Cascade Velocity Tools http://www.hannonhill.com/kb/Script-Formats/ #CUC15 #COPETricks[/twitter] Finally in my “ultimate set of tools” is Velocity Script Tools, especially Includes, Locator Tool, and Query API. We’ll use this many more times in all the rest of the presentation, but Velocity offers many tools to streamline your code. One of the most useful has been Velocity Includes, allowing me to define code used repeatedly as a Velocimacro in a shared Velocity format. Our course schedules are maintained in Cascade, and include several different filtered views (for example, night classes, friday classes, listing by department) but they’re all displayed in a common format. I used to have to edit each individual Format for every change to that format. Once I rewrote them in Velocity, I can modify that display table code once and update all those pages. Saves a ton of time. Locator Tool often saves me from needing to include a block as part of the Data Definition. Often, to get additional information, I’d need to include a huge Block in the Data Definition and hide it from end-users. This way, I can have smaller blocks and reference them just in the Format (which also makes them easier to change out). Again, we’ll be coming back and looking at some more examples later. I haven’t used the Query API much yet, but it similarly has the ability to be a more efficient way to access pages than attaching an index block and another format. Instead, the results can be filtered ahead of time and all from one Format.
  9. One of the things the Locator Tool opened up was the ability to easily open a block from within a script. This means it’s a lot easier to pull in just the block I want. All I need to know is the name and path--which I can reliably predict if I’m using Web Services to create the blocks.
  10. [twitter]Idea - Locator Tool access to Feed Block XML http://bit.ly/cuc15-feedblocks[/twitter] At the same time, it’s becoming more and more common for web apps to expose data via an API. I’ve seen REST APIs most commonly, and they’re among the easiest to work with, so we’ll use them for a couple examples. REST usually returns XML, JSON, or text. Of course, Cascade is great with XML, text can easily be wrapped in XML tags, and JSON can be pretty easily converted to XML. So all we need to do is use Web Services to access the REST API and store the result in an XML block. Time for another shameless plug: there’s an idea on the Idea Exchange, too, to allow the Locator Tool to access the XML of a Feed Block, which could even eliminate this step in many cases and allow the most up-to-date data at publish time.
  11. [twitter]Import REST API results into Cascade http://bit.ly/cuc15-restapi #CUC15 #COPEtricks[/twitter]
  12. [twitter]Import Acalog course catalog into Cascade http://bit.ly/cuc15-acalog #CUC15 #COPEtricks[/twitter]
  13. [twitter]Hannon Hill Bricks example http://bit.ly/cuc15-brick #CUC15 #COPEtricks[/twitter]