SlideShare a Scribd company logo
1 of 24
PROGRAM
17:30 Registrering, mat, drikke og mingling
18:15 Hands-on introduksjon til modulen EPiImage
[Alexander Haneng, Making Waves AS]
19:00 Pause
19:15 Experiences with EasySearch
[Tomas Mæsel, Making Waves AS]
20:00 Svarene på Quizen
20:10 Mingling
Alexander Haneng
• Leder faggruppen for EPiServer i Making Waves
med ca 15 utviklere
• Har jobbet med EPiServer på nettsteder som
LO.no, Sivilforsvaret.no, BBS.no (nå Nets),
Haavind.no, og Fotball.no (NFF)
• Står bak to moduler på EPiCode: LinkDetective
og EPiImage
29.01.2015© MAKING WAVES3
@ahaneng
29.01.2015 © MAKING WAVES 4
Hands on intro to EPiImage
Alexander Haneng
I wanted a standard light weight module to handle image resizing in my
EPiServer projects.
I wanted image handling in edit mode to be a little more editor friendly
by adding previews to ”URL to image” properties.
I wanted a better way to create image galleries in edit mode.
29.01.2015 © MAKING WAVES 5
So why EPiImage?
ALEXANDER HANENG (TWITTER: @AHANENG)
EPiImage is a free, open source module for EPiServer CMS that solves
most basic image needs including image resizing and image gallery
functionality. It is available on EPiCode.
It consists of 4 parts:
• EPiImage Resizer (User Control)
• EPiImage Property
• EPiImageGallery Property
• EPiImageGallery Viewer (User Control)
29.01.2015 © MAKING WAVES 6
What is EPiImage?
ALEXANDER HANENG (TWITTER: @AHANENG)
EPiImageResizer provides an out of the box automatic resize
functionality to EPiServer. There is nothing to configure (although you
can if you want) and it simply works. All resized images are stored in a
cache folder for performance, and the resized image has a SEO friendly
URL.
29.01.2015 © MAKING WAVES 7
EPiImageResizer (User Control)
ALEXANDER HANENG (TWITTER: @AHANENG)
To use it simply register the control on the page:
Once registered you can use the User Control:
More attributes:
29.01.2015 © MAKING WAVES 8
EPiImageResizer (User Control)
ALEXANDER HANENG (TWITTER: @AHANENG)
The user control also have some advanced features:
29.01.2015 © MAKING WAVES 9
EPiImageResizer (User Control)
ALEXANDER HANENG (TWITTER: @AHANENG)
Attribute: What does it do?
PropertyName Specify the name of a property to fetch the image url from
instead of using ImageUrl.
FallbackImageUrl If the ImageUrl or PropertyName is empty, use this image
instead.
LinkURL Adds a <a href tag around the rendred img tag.
Alt Adds an alt attribute to the rendered img tag
Tooltip Adds a title attribute to the rendered img tag for mouse
over tooltips in all browsers
CssClass Adds a class attribute to the rendered img tag
CssStyle Adds a style attribute to the rendered img tag
LinkCssClass Adds a class attribute to the a href tag.
So how does it work?
The first time a picture is requested the image is resized and stored in
the folder: Global/Scaled/
The next time the image is requested, the cached version in
Global/Scaled is returned.
The image path of the scaled version is SEO friendly.
29.01.2015 © MAKING WAVES 10
EPiImageResizer (User Control)
ALEXANDER HANENG (TWITTER: @AHANENG)
The scaled images are stored
in folders on the format
“300x200x2”, where
300x200 means 300 pixels
wide, 200 pixels high, and x2
means that the
transformation “ScaleToFit”
is used (x0 is stretch and x1 is
ScaleToFill)
The EPiImage Property is very similar to the built in “URL to image”
property, but adds the following features:
• Thumbnail preview of the selected image, not just a meaningless url
• Click the “i” button to preview the image and add an image
description
29.01.2015 © MAKING WAVES 11
EPiImageProperty
ALEXANDER HANENG (TWITTER: @AHANENG)
If you click the “i” you get this dialog box:
29.01.2015 © MAKING WAVES 12
EPiImageProperty
ALEXANDER HANENG (TWITTER: @AHANENG)
How do I use the property?
Once installed you will get the new EPiImage property:
How do I access the property?
The easiest is just using the string value:
<%= CurrentPage["MyEPiImageProperty"] %>
If you have added an image description it will be added as a query
string: /globals/MyImage.jpg?alt=mydescription
To get access to the image url and description separately, cast the property
to a EPiImageProperty. You can then access the
variables ImageUrl and ImageDescription.
<%= (CurrentPage.Property["MyEPiImageProperty"] as
MakingWaves.EPiImage.EPiImageProperty).ImageUrl %>
<%= (CurrentPage.Property["MyEPiImageProperty"] as
MakingWaves.EPiImage.EPiImageProperty).ImageDescription %>
29.01.2015 © MAKING WAVES 13
EPiImageProperty
ALEXANDER HANENG (TWITTER: @AHANENG)
You can also use it as a normal EPiServer property.
<EPiServer:Property
PropertyName="MyEPiImageProperty" runat="server" />
This will render a img tag with an alt text if you have added a image
description.
You can also get an automatically resized version of the image by
specifying width, height and transformation:
<EPiServer:Property
PropertyName="MyEPiImageProperty"
Width="200"
Height="200"
Transformation="ScaleToFit"
runat="server" />
29.01.2015 © MAKING WAVES 14
EPiImageProperty
ALEXANDER HANENG (TWITTER: @AHANENG)
To use an EPiImage Property with the EPiImageResizer user control
simply specify the PropertyName of a EPiImage Property.
<EPiImage:EPiImageResizer
PropertyName="MyEPiImageProperty"
Width="150"
Height="150"
Transformation="ScaleToFit"
LinkURL="http://www.google.com"
runat="server" />
29.01.2015 © MAKING WAVES 15
EPiImageProperty &
EPiImageResizer
ALEXANDER HANENG (TWITTER: @AHANENG)
Provides simple image gallery functionality. Preview in edit mode,
ability to add image description/alt text for each image and drag and
drop sorting. The property returns a collection of images for you to
render in view mode as you like. You can also use the EPiImageGallery
Viewer to display the property.
29.01.2015 © MAKING WAVES 16
EPiImageGallery Property
ALEXANDER HANENG (TWITTER: @AHANENG)
This is a sample user control how to use a EPiImageGallery Property on
a page. It uses jQuery Tools to create the slider. Please note that this
just one way to use the EPiImageGallery Property. The property
provides the images as an image collection so it is easy to show the
images the way you want (e.g. as a list, a slideshow etc.).
29.01.2015 © MAKING WAVES 17
EPiImageGallery Viewer
ALEXANDER HANENG (TWITTER: @AHANENG)
Step 1. Download the module from
https://www.coderesort.com/p/epicode/wiki/EPiImage
Step 2. Install the module using EPiServer Deployment Center
29.01.2015 © MAKING WAVES 18
How do I install it?
ALEXANDER HANENG (TWITTER: @AHANENG)
If you have an install of EPiServer CMS 6 with the Alloy demo
templates you can install 2 demo templates for EPiImage by unzipping
and importing the file ”EPiImageDemoPageTypes Unzip And
Import.zip” found in the ”EPiImageDemoTemplates” folder.
29.01.2015 © MAKING WAVES 19
Demo templates
ALEXANDER HANENG (TWITTER: @AHANENG)
DEMO
Alexander Haneng (Twitter: @ahaneng)
Download module from EPiCode:
https://www.coderesort.com/p/epicode/wiki/EPiImage
Source code is available here:
https://www.coderesort.com/p/epicode/browser/MakingWaves.EPiIm
age
Documentation on EPiCode:
https://www.coderesort.com/p/epicode/wiki/EPiImage
Blog series on EPiServer world: (4 posts so far)
http://world.episerver.com/Blogs/Alexander-Haneng/
29.01.2015 © MAKING WAVES 21
EPiImage online
ALEXANDER HANENG (TWITTER: @AHANENG)
• Latest version is 1.2
• Used in several of our customers web sites
• Thank you to those who have contributed so far!
We are planning a 2.0 version. Here are some of the ideas
that might make it into the final release (no promises):
• Support for CMS 6 only
• Add multiple images to a image gallery in one operation (need to
show a “loading…” message as resizing a lot of images might be slow)
• Support for a link in addition to alt text for images
• Show a green “i” button for images that have an alt text
• Preview of the alt text on mouse over the green “i” button
29.01.2015 © MAKING WAVES 22
Status
ALEXANDER HANENG (TWITTER: @AHANENG)
We would love to be able to drag and drop files from the right side file
explorer directly to the ImageGallery property.
Anybody know how (or if) this is possible?
29.01.2015 © MAKING WAVES 23
We need your help!
ALEXANDER HANENG (TWITTER: @AHANENG)
29.01.2015 © MAKING WAVES 24
Feedback? Questions?

More Related Content

Similar to EPiImage

Animate any - introduction
Animate any  - introductionAnimate any  - introduction
Animate any - introductionvirajrajankar
 
DevOps Best Practices with Openshift - DevOpsFusion 2020
DevOps Best Practices with Openshift - DevOpsFusion 2020DevOps Best Practices with Openshift - DevOpsFusion 2020
DevOps Best Practices with Openshift - DevOpsFusion 2020Andreas Landerer
 
Using Featured Images with WordPress
Using Featured Images with WordPressUsing Featured Images with WordPress
Using Featured Images with WordPressSara Rosso
 
POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAPOLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAAiman Hud
 
Back to the [Completable] Future
Back to the [Completable] FutureBack to the [Completable] Future
Back to the [Completable] FutureSofiia Khomyn
 
Webinar: Front End Web Development - Trendy Web Designs Using HTML5
Webinar: Front End Web Development - Trendy Web Designs Using HTML5Webinar: Front End Web Development - Trendy Web Designs Using HTML5
Webinar: Front End Web Development - Trendy Web Designs Using HTML5Edureka!
 
DevOps best practices with OpenShift
DevOps best practices with OpenShiftDevOps best practices with OpenShift
DevOps best practices with OpenShiftMichael Lehmann
 
Deploy With Codefresh to Kubernetes in 3 steps
Deploy With Codefresh to Kubernetes in 3 stepsDeploy With Codefresh to Kubernetes in 3 steps
Deploy With Codefresh to Kubernetes in 3 stepsJenny Passi
 
How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...
How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...
How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...Yusuke Takahashi, PhD
 
How to implement react native animations using animated api
How to implement react native animations using animated apiHow to implement react native animations using animated api
How to implement react native animations using animated apiKaty Slemon
 
How to add watermark to image using php
How to add watermark to image using phpHow to add watermark to image using php
How to add watermark to image using phpYourBlogCoach1
 
Introduction to TinyMCE Session #6 Working With Images
Introduction to TinyMCE Session #6 Working With ImagesIntroduction to TinyMCE Session #6 Working With Images
Introduction to TinyMCE Session #6 Working With ImagesTiny
 
How to create your own WordPress plugin
How to create your own WordPress pluginHow to create your own WordPress plugin
How to create your own WordPress pluginJohn Tighe
 
Tailwind Animation: How to Make Eye-Catching Websites
Tailwind Animation: How to Make Eye-Catching WebsitesTailwind Animation: How to Make Eye-Catching Websites
Tailwind Animation: How to Make Eye-Catching WebsitesRonDosh
 
Technologies
TechnologiesTechnologies
TechnologiesJwardn18
 

Similar to EPiImage (20)

Animate any - introduction
Animate any  - introductionAnimate any  - introduction
Animate any - introduction
 
Drupal
DrupalDrupal
Drupal
 
DevOps Best Practices with Openshift - DevOpsFusion 2020
DevOps Best Practices with Openshift - DevOpsFusion 2020DevOps Best Practices with Openshift - DevOpsFusion 2020
DevOps Best Practices with Openshift - DevOpsFusion 2020
 
Using Featured Images with WordPress
Using Featured Images with WordPressUsing Featured Images with WordPress
Using Featured Images with WordPress
 
POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAPOLITEKNIK MALAYSIA
POLITEKNIK MALAYSIA
 
Back to the [Completable] Future
Back to the [Completable] FutureBack to the [Completable] Future
Back to the [Completable] Future
 
Top 8 Ruby on Rails Gems
Top 8 Ruby on Rails GemsTop 8 Ruby on Rails Gems
Top 8 Ruby on Rails Gems
 
Webinar: Front End Web Development - Trendy Web Designs Using HTML5
Webinar: Front End Web Development - Trendy Web Designs Using HTML5Webinar: Front End Web Development - Trendy Web Designs Using HTML5
Webinar: Front End Web Development - Trendy Web Designs Using HTML5
 
DevOps best practices with OpenShift
DevOps best practices with OpenShiftDevOps best practices with OpenShift
DevOps best practices with OpenShift
 
Deploy With Codefresh to Kubernetes in 3 steps
Deploy With Codefresh to Kubernetes in 3 stepsDeploy With Codefresh to Kubernetes in 3 steps
Deploy With Codefresh to Kubernetes in 3 steps
 
How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...
How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...
How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...
 
Faster WordPress Workflows
Faster WordPress WorkflowsFaster WordPress Workflows
Faster WordPress Workflows
 
How to implement react native animations using animated api
How to implement react native animations using animated apiHow to implement react native animations using animated api
How to implement react native animations using animated api
 
Learning center usage
Learning center usageLearning center usage
Learning center usage
 
How to add watermark to image using php
How to add watermark to image using phpHow to add watermark to image using php
How to add watermark to image using php
 
Introduction to TinyMCE Session #6 Working With Images
Introduction to TinyMCE Session #6 Working With ImagesIntroduction to TinyMCE Session #6 Working With Images
Introduction to TinyMCE Session #6 Working With Images
 
How to create your own WordPress plugin
How to create your own WordPress pluginHow to create your own WordPress plugin
How to create your own WordPress plugin
 
Tailwind Animation: How to Make Eye-Catching Websites
Tailwind Animation: How to Make Eye-Catching WebsitesTailwind Animation: How to Make Eye-Catching Websites
Tailwind Animation: How to Make Eye-Catching Websites
 
Technologies
TechnologiesTechnologies
Technologies
 
Question 6
Question 6Question 6
Question 6
 

More from EPiServer Meetup Oslo (8)

Teknisk gjennomgang av tm core
Teknisk gjennomgang av tm coreTeknisk gjennomgang av tm core
Teknisk gjennomgang av tm core
 
Netmeeting
NetmeetingNetmeeting
Netmeeting
 
Netmeeting
NetmeetingNetmeeting
Netmeeting
 
EPiServer connect for crm
EPiServer connect for crmEPiServer connect for crm
EPiServer connect for crm
 
EPiServer - Behind the scene
EPiServer - Behind the sceneEPiServer - Behind the scene
EPiServer - Behind the scene
 
Introduksjon Til EPiServer Composer
Introduksjon Til EPiServer ComposerIntroduksjon Til EPiServer Composer
Introduksjon Til EPiServer Composer
 
EPiServer Web Parts
EPiServer Web PartsEPiServer Web Parts
EPiServer Web Parts
 
EPiServer Deployment Tips & Tricks
EPiServer Deployment Tips & TricksEPiServer Deployment Tips & Tricks
EPiServer Deployment Tips & Tricks
 

Recently uploaded

Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
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 CVKhem
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
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 Processorsdebabhi2
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
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.pdfUK Journal
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
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)wesley chun
 

Recently uploaded (20)

Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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)
 

EPiImage

  • 1.
  • 2. PROGRAM 17:30 Registrering, mat, drikke og mingling 18:15 Hands-on introduksjon til modulen EPiImage [Alexander Haneng, Making Waves AS] 19:00 Pause 19:15 Experiences with EasySearch [Tomas Mæsel, Making Waves AS] 20:00 Svarene på Quizen 20:10 Mingling
  • 3. Alexander Haneng • Leder faggruppen for EPiServer i Making Waves med ca 15 utviklere • Har jobbet med EPiServer på nettsteder som LO.no, Sivilforsvaret.no, BBS.no (nå Nets), Haavind.no, og Fotball.no (NFF) • Står bak to moduler på EPiCode: LinkDetective og EPiImage 29.01.2015© MAKING WAVES3 @ahaneng
  • 4. 29.01.2015 © MAKING WAVES 4 Hands on intro to EPiImage Alexander Haneng
  • 5. I wanted a standard light weight module to handle image resizing in my EPiServer projects. I wanted image handling in edit mode to be a little more editor friendly by adding previews to ”URL to image” properties. I wanted a better way to create image galleries in edit mode. 29.01.2015 © MAKING WAVES 5 So why EPiImage? ALEXANDER HANENG (TWITTER: @AHANENG)
  • 6. EPiImage is a free, open source module for EPiServer CMS that solves most basic image needs including image resizing and image gallery functionality. It is available on EPiCode. It consists of 4 parts: • EPiImage Resizer (User Control) • EPiImage Property • EPiImageGallery Property • EPiImageGallery Viewer (User Control) 29.01.2015 © MAKING WAVES 6 What is EPiImage? ALEXANDER HANENG (TWITTER: @AHANENG)
  • 7. EPiImageResizer provides an out of the box automatic resize functionality to EPiServer. There is nothing to configure (although you can if you want) and it simply works. All resized images are stored in a cache folder for performance, and the resized image has a SEO friendly URL. 29.01.2015 © MAKING WAVES 7 EPiImageResizer (User Control) ALEXANDER HANENG (TWITTER: @AHANENG)
  • 8. To use it simply register the control on the page: Once registered you can use the User Control: More attributes: 29.01.2015 © MAKING WAVES 8 EPiImageResizer (User Control) ALEXANDER HANENG (TWITTER: @AHANENG)
  • 9. The user control also have some advanced features: 29.01.2015 © MAKING WAVES 9 EPiImageResizer (User Control) ALEXANDER HANENG (TWITTER: @AHANENG) Attribute: What does it do? PropertyName Specify the name of a property to fetch the image url from instead of using ImageUrl. FallbackImageUrl If the ImageUrl or PropertyName is empty, use this image instead. LinkURL Adds a <a href tag around the rendred img tag. Alt Adds an alt attribute to the rendered img tag Tooltip Adds a title attribute to the rendered img tag for mouse over tooltips in all browsers CssClass Adds a class attribute to the rendered img tag CssStyle Adds a style attribute to the rendered img tag LinkCssClass Adds a class attribute to the a href tag.
  • 10. So how does it work? The first time a picture is requested the image is resized and stored in the folder: Global/Scaled/ The next time the image is requested, the cached version in Global/Scaled is returned. The image path of the scaled version is SEO friendly. 29.01.2015 © MAKING WAVES 10 EPiImageResizer (User Control) ALEXANDER HANENG (TWITTER: @AHANENG) The scaled images are stored in folders on the format “300x200x2”, where 300x200 means 300 pixels wide, 200 pixels high, and x2 means that the transformation “ScaleToFit” is used (x0 is stretch and x1 is ScaleToFill)
  • 11. The EPiImage Property is very similar to the built in “URL to image” property, but adds the following features: • Thumbnail preview of the selected image, not just a meaningless url • Click the “i” button to preview the image and add an image description 29.01.2015 © MAKING WAVES 11 EPiImageProperty ALEXANDER HANENG (TWITTER: @AHANENG)
  • 12. If you click the “i” you get this dialog box: 29.01.2015 © MAKING WAVES 12 EPiImageProperty ALEXANDER HANENG (TWITTER: @AHANENG)
  • 13. How do I use the property? Once installed you will get the new EPiImage property: How do I access the property? The easiest is just using the string value: <%= CurrentPage["MyEPiImageProperty"] %> If you have added an image description it will be added as a query string: /globals/MyImage.jpg?alt=mydescription To get access to the image url and description separately, cast the property to a EPiImageProperty. You can then access the variables ImageUrl and ImageDescription. <%= (CurrentPage.Property["MyEPiImageProperty"] as MakingWaves.EPiImage.EPiImageProperty).ImageUrl %> <%= (CurrentPage.Property["MyEPiImageProperty"] as MakingWaves.EPiImage.EPiImageProperty).ImageDescription %> 29.01.2015 © MAKING WAVES 13 EPiImageProperty ALEXANDER HANENG (TWITTER: @AHANENG)
  • 14. You can also use it as a normal EPiServer property. <EPiServer:Property PropertyName="MyEPiImageProperty" runat="server" /> This will render a img tag with an alt text if you have added a image description. You can also get an automatically resized version of the image by specifying width, height and transformation: <EPiServer:Property PropertyName="MyEPiImageProperty" Width="200" Height="200" Transformation="ScaleToFit" runat="server" /> 29.01.2015 © MAKING WAVES 14 EPiImageProperty ALEXANDER HANENG (TWITTER: @AHANENG)
  • 15. To use an EPiImage Property with the EPiImageResizer user control simply specify the PropertyName of a EPiImage Property. <EPiImage:EPiImageResizer PropertyName="MyEPiImageProperty" Width="150" Height="150" Transformation="ScaleToFit" LinkURL="http://www.google.com" runat="server" /> 29.01.2015 © MAKING WAVES 15 EPiImageProperty & EPiImageResizer ALEXANDER HANENG (TWITTER: @AHANENG)
  • 16. Provides simple image gallery functionality. Preview in edit mode, ability to add image description/alt text for each image and drag and drop sorting. The property returns a collection of images for you to render in view mode as you like. You can also use the EPiImageGallery Viewer to display the property. 29.01.2015 © MAKING WAVES 16 EPiImageGallery Property ALEXANDER HANENG (TWITTER: @AHANENG)
  • 17. This is a sample user control how to use a EPiImageGallery Property on a page. It uses jQuery Tools to create the slider. Please note that this just one way to use the EPiImageGallery Property. The property provides the images as an image collection so it is easy to show the images the way you want (e.g. as a list, a slideshow etc.). 29.01.2015 © MAKING WAVES 17 EPiImageGallery Viewer ALEXANDER HANENG (TWITTER: @AHANENG)
  • 18. Step 1. Download the module from https://www.coderesort.com/p/epicode/wiki/EPiImage Step 2. Install the module using EPiServer Deployment Center 29.01.2015 © MAKING WAVES 18 How do I install it? ALEXANDER HANENG (TWITTER: @AHANENG)
  • 19. If you have an install of EPiServer CMS 6 with the Alloy demo templates you can install 2 demo templates for EPiImage by unzipping and importing the file ”EPiImageDemoPageTypes Unzip And Import.zip” found in the ”EPiImageDemoTemplates” folder. 29.01.2015 © MAKING WAVES 19 Demo templates ALEXANDER HANENG (TWITTER: @AHANENG)
  • 21. Download module from EPiCode: https://www.coderesort.com/p/epicode/wiki/EPiImage Source code is available here: https://www.coderesort.com/p/epicode/browser/MakingWaves.EPiIm age Documentation on EPiCode: https://www.coderesort.com/p/epicode/wiki/EPiImage Blog series on EPiServer world: (4 posts so far) http://world.episerver.com/Blogs/Alexander-Haneng/ 29.01.2015 © MAKING WAVES 21 EPiImage online ALEXANDER HANENG (TWITTER: @AHANENG)
  • 22. • Latest version is 1.2 • Used in several of our customers web sites • Thank you to those who have contributed so far! We are planning a 2.0 version. Here are some of the ideas that might make it into the final release (no promises): • Support for CMS 6 only • Add multiple images to a image gallery in one operation (need to show a “loading…” message as resizing a lot of images might be slow) • Support for a link in addition to alt text for images • Show a green “i” button for images that have an alt text • Preview of the alt text on mouse over the green “i” button 29.01.2015 © MAKING WAVES 22 Status ALEXANDER HANENG (TWITTER: @AHANENG)
  • 23. We would love to be able to drag and drop files from the right side file explorer directly to the ImageGallery property. Anybody know how (or if) this is possible? 29.01.2015 © MAKING WAVES 23 We need your help! ALEXANDER HANENG (TWITTER: @AHANENG)
  • 24. 29.01.2015 © MAKING WAVES 24 Feedback? Questions?