Albums CMS Design Principles: Difference between revisions
No edit summary |
|||
| Line 56: | Line 56: | ||
===inserting an "add image" button=== | ===inserting an "add image" button=== | ||
HTML | ====HTML==== | ||
<syntaxhighlight lang="html4strict"> | <syntaxhighlight lang="html4strict" enclose="div"> | ||
<a class="add-img-btn" href="javascript:void(0)" rel="nofollow" data-id="<?=$img->id->value?>" data-tid="<?=$img->type_id->value ?>" title="add image">add image</a> | <a class="add-img-btn" href="javascript:void(0)" rel="nofollow" data-id="<?=$img->id->value?>" data-pid="<?=$input->id->value?>" data-tid="<?=$img->type_id->value ?>" title="add image">add image</a> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
JavaScript | ====JavaScript==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
$('.add-img-btn', $p) | $('.add-img-btn', $p) | ||
| Line 70: | Line 70: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
The <code>$('.add-img-btn')</code> handler is rolled into <code>LITTLED.Gallery.bindGalleryHandlers()</code>. | The <code>$('.add-img-btn')</code> handler is rolled into <code>LITTLED.Gallery.bindGalleryHandlers()</code>. | ||
====AJAX handler script==== | |||
The handler script is determined by <code>section_properties.upload_uri</code>. If no value is found in that column, the code falls back on <code>section_properties.edit_uri</code>. | |||
That page will expect a combination of values to be passed in via the <code>id</code>, <code>pid</code>, and <code>tid</code> arguments. Only <code>tid</code> (type id) is strictly required. <code>pid</code> (parent id) can be null in cases when creating a new parent record and uploading images simultaneously. <code>id</code> (image link record id) can be null in cases when uploading a new image. | |||
==See Also== | ==See Also== | ||
*[http://littledamien.com/docs/?p=636|littledamien.com: albums cms specs & principles] | *[http://littledamien.com/docs/?p=636|littledamien.com: albums cms specs & principles] | ||
[[Category:Albums CMS]] | [[Category:Albums CMS]] | ||
[[Category:CMS Documentation]] | [[Category:CMS Documentation]] | ||
Revision as of 23:06, 10 February 2012
AJAX
When adding a new album-based CMS section, the following files may need to be updated with the new content type:
/_classes/content/cache_class.php /_classes/content/resort_class.php
Obviously if a file includes the cache_class then the new content type will be available to that file.
PHP Classes
Classes derived from album_class and album_xpost_class that don’t have the same columns as those tables should set the db_field property value for those fields to FALSE in their class constructors.
$this->layout->db_field = false;
Listings
JavaScript/JQuery handlers
LITTLED.Gallery.bindAlbumListingsHandlers() The routine above doesn’t handle content refreshes. The code below adds that, along with some filtering utilities. This can be rolled up into a routine available through the LITTLED.CMS library.
LITTLED.init({ setSortables: LITTLED.Gallery.bindAlbumListingsHandlers });
LITTLED.Gallery.keywordAutocomplete();
LITTLED.setSortables();
$('.datepicker').datepicker();
$('.update-cache').click(LITTLED.updateCache);
image rollovers
- Requires “poshytip” JavaScript library in addition to the JQuery libraries.
- JQuery handlers
LITTLED.Gallery.bindAlbumListingsHandlers():
$('.album-tn', $p).poshytip(LITTLED.Gallery.preview_tt_properties);
- Surround IMG element in ANCHOR tags.
- IMG class="album-tn". This is the hook for JQuery handler.
href="javascript:void(0)"- When no thumbnail is available for the record:
<div class="error" style="text-align:center;">no thumbnail</div>
- Follow the thumbnail IMG element with an IMG element containing the medium or full-sized image wrapped in SPAN tags, depending on which size should appear on rollover.
- SPAN
class="tooltip-content" - The
tooltip-contentclass will hide the full-sized image until a rollover event is captured by the thumbnail. - The IMG element doesn’t require any class attributes.
image lightbox
- Surround IMG element in <A> tags.
- <A>
class="img-details-link". This is the hook for JQuery handlers. href="javascript:void(0)"- <A> attribute
data-idstores the image_link record id - <A> attribute
data-tidContent type id. Make sure this is for the image and not its parent’s (the album record) content type.
- <A>
- Requires a handler to be set in the Content Sections CMS:
- Details URI:
/_ajax/images/image_details.php $('.img-details-link')handler
- Details URI:
$('.img-details-link', $p).click(LITTLED.Gallery.detailsDialog('gallery-dialog'));
- The
$('.img-details-link')handler is rolled intoLITTLED.Gallery.bindAlbumListingsHandlers()
- The
inserting an "add image" button
HTML
<a class="add-img-btn" href="javascript:void(0)" rel="nofollow" data-id="<?=$img->id->value?>" data-pid="<?=$input->id->value?>" data-tid="<?=$img->type_id->value ?>" title="add image">add image</a>
JavaScript
$('.add-img-btn', $p)
.button({
icons: {primary: 'ui-icon-addchild'},
text: false
})
.click(LITTLED.Gallery.dialogEdit);
The $('.add-img-btn') handler is rolled into LITTLED.Gallery.bindGalleryHandlers().
AJAX handler script
The handler script is determined by section_properties.upload_uri. If no value is found in that column, the code falls back on section_properties.edit_uri.
That page will expect a combination of values to be passed in via the id, pid, and tid arguments. Only tid (type id) is strictly required. pid (parent id) can be null in cases when creating a new parent record and uploading images simultaneously. id (image link record id) can be null in cases when uploading a new image.