Adobe 65007312 Programming Guide - Page 197

Defining a data model and functionality

Page 197 highlights

CHAPTER 11: Web Gallery Plug-ins: A Tutorial Example Defining a data model and functionality 197 Defining a data model and functionality The information file defines the data model that your LuaPage code will use to store the information it needs to generate appropriate HTML. In this case, there will be two image sizes on the gallery pages, a small and a large version of each photo, so the model needs to define that basic parameters for each image size. 1. Add a model entry to the table returned by the galleryInfo.lrweb file: return { LrSdkVersion = 3.0, LrSdkMinimumVersion = 2.0, -- minimum SDK version required by this plug-in title = "My Sample Plug-in", id = "com.adobe.wpg.templates.mysample", galleryType = "lua", maximumGallerySize = 50000, model = { ["nonDynamic.imageBase"] = "content", ["photoSizes.thumb.height"] = 150, ["photoSizes.thumb.width"] = 150, ["photoSizes.thumb.metadataExportMode"] = "copyright", ["appearance.thumb.cssID"] = ".thumb", }, } This begins to define the parameters for the smallest photo size, naming it "thumb". The variables define the images size, allowing us to adjust the number of rows and columns the grid will need to display them. 2. The model.appearance parameter associates the "thumb" photos with a style-sheet variable. To make this work, we have to add the style sheet to the project. In the manifest.lrweb file, add this code at the top: AddCustomCSS { filename = 'content/custom.css', } 3. Now we will add some code to the HTML template that makes use of these variables to display thumbnail images in the workspace. In the grid.html file, add this code before the header statement, defining local variables:

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204

C
HAPTER
11: Web Gallery Plug-ins: A Tutorial Example
Defining a data model and functionality
197
Defining a data model and functionality
The information file defines the data model that your LuaPage code will use to store the information it
needs to generate appropriate HTML. In this case, there will be two image sizes on the gallery pages, a
small and a large version of each photo, so the model needs to define that basic parameters for each
image size.
1.
Add a
model
entry to the table returned by the
galleryInfo.lrweb
file:
return {
LrSdkVersion = 3.0,
LrSdkMinimumVersion = 2.0, -- minimum SDK version required by this plug-in
title = "My Sample Plug-in",
id = "com.adobe.wpg.templates.mysample",
galleryType = "lua",
maximumGallerySize = 50000,
model = {
["nonDynamic.imageBase"] = "content",
["photoSizes.thumb.height"] = 150,
["photoSizes.thumb.width"] = 150,
["photoSizes.thumb.metadataExportMode"] = "copyright",
["appearance.thumb.cssID"] = ".thumb",
},
}
This begins to define the parameters for the smallest photo size, naming it “thumb”. The variables
define the images size, allowing us to adjust the number of rows and columns the grid will need to
display them.
2.
The
model.appearance
parameter associates the “thumb” photos with a style-sheet variable. To make
this work, we have to add the style sheet to the project.
In the
manifest.lrweb
file, add this code at the top:
AddCustomCSS {
filename = 'content/custom.css',
}
3.
Now we will add some code to the HTML template that makes use of these variables to display
thumbnail images in the workspace.
In the
grid.html
file, add this code before the header statement, defining local variables:
<%
--[[ Define some variables to make locating other resources easier. ]]
local mySize = "thumb"
local others = "content"
local theRoot = "."
%>