Adobe 38040334 Extending Dreamweaver - Page 334

Adding a translated attribute to a tag

Page 334 highlights

DREAMWEAVER CS3 328 Extending Dreamweaver Adding a translated attribute to a tag Attribute translation relies on the Dreamweaver parser to ignore server markup. By default, Dreamweaver already ignores the most common kinds of server markup (including ASP, CFML, and PHP); if you use server markup that has different opening and closing markers, you must modify the third-party tag database to ensure that your translator works properly. For more information on modifying the third-party tag database, see "Customizing Dreamweaver" in Using Dreamweaver. When Dreamweaver handles preserving the original server markup, the translator generates a valid attribute value that can be viewed in the Document window. (If you use server markup only for attributes that do not have a uservisible effect, you do not need a translator.) The translator creates an attribute value that has a visible effect in the Document window by adding a special attribute, mmTranslatedValue, to the tag that contains the server markup. The mmTranslatedValue attribute and its value are not visible in the HTML panel or in Code view, nor are they saved with the document. The mmTranslatedValue attribute must be unique within the tag. If it is likely that your translator needs to translate more than one attribute in a single tag, you must add a routine in the translator that appends numbers to the mmTranslatedValue attribute (for example, mmTranslatedValue1, mmTranslatedValue2, and so on). The value of the mmTranslatedValue attribute must be a URL-encoded string that contains at least one valid attribute-value pair. This means that mmTranslatedValue="src=%22open.jpg%22" is a valid translation for both src="

  • 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
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342
  • 343
  • 344
  • 345
  • 346
  • 347
  • 348
  • 349
  • 350
  • 351
  • 352
  • 353
  • 354
  • 355
  • 356
  • 357
  • 358
  • 359
  • 360
  • 361
  • 362
  • 363
  • 364
  • 365
  • 366
  • 367
  • 368
  • 369
  • 370
  • 371
  • 372
  • 373
  • 374
  • 375
  • 376
  • 377
  • 378
  • 379
  • 380
  • 381
  • 382
  • 383
  • 384
  • 385

DREAMWEAVER CS3
Extending Dreamweaver
328
Adding a translated attribute to a tag
Attribute translation relies on the Dreamweaver parser to ignore server markup. By default, Dreamweaver already
ignores the most common kinds of server markup (including ASP, CFML, and PHP); if you use server markup that
has different opening and closing markers, you must modify the third-party tag database to ensure that your trans-
lator works properly. For more information on modifying the third-party tag database, see “Customizing
Dreamweaver” in
Using Dreamweaver
.
When Dreamweaver handles preserving the original server markup, the translator generates a valid attribute value
that can be viewed in the Document window. (If you use server markup only for attributes that do not have a user-
visible effect, you do not need a translator.)
The translator creates an attribute value that has a visible effect in the Document window by adding a special
attribute,
mmTranslatedValue
, to the tag that contains the server markup. The
mmTranslatedValue
attribute and
its value are not visible in the HTML panel or in Code view, nor are they saved with the document.
The
mmTranslatedValue
attribute must be unique within the tag. If it is likely that your translator needs to translate
more than one attribute in a single tag, you must add a routine in the translator that appends numbers to the
mmTranslatedValue
attribute (for example,
mmTranslatedValue1
,
mmTranslatedValue2
, and so on).
The value of the
mmTranslatedValue
attribute must be a URL-encoded string that contains at least one valid
attribute-value pair. This means that
mmTranslatedValue="src=%22open.jpg%22"
is a valid translation for both
src="<? if (dayType == weekday) then open.jpg else closed.jpg" ?>
and
<? if (dayType ==
weekday) then src="open.jpg" else src="closed.jpg" ?>
.
mmTranslatedValue="%22open.jpg%22"
is
not valid for either example because it contains only the value, not the attribute.
Translating more than one attribute at a time
The
mmTranslatedValue
attribute can contain more than one valid attribute-value pair. Consider the following
untranslated code:
<img <? if (dayType==weekday) then src="open.jpg" width="320" height="100" else
src="closed.jpg" width="100" height="320" ?> alt="We're open 24 hours a day from
12:01am Monday until 11:59pm Friday">
The following example shows how the translated markup might appear:
<img <? if (dayType==weekday) then src="open.jpg" width="320" height="100" else
src="closed.jpg" width="100" height="320" ?>
mmTranslatedValue="src=%22open.jpg%22 width=%22320%22 height=%22100%22"
alt="We're open 24 hours a day from 12:01am Monday until 11:59pm Friday">
The spaces between the attribute-value pairs in the
mmTranslatedValue
attribute are not encoded. Because
Dreamweaver looks for these spaces when it attempts to render the translated value, each attribute-value pair in the
mmTranslatedValue
attribute must be encoded separately and then pieced back together to form the full
mmTranslatedValue
attribute. For an example of this process, see “A simple attribute translator example” on
page 334.