Albums CMS Design Principles: Difference between revisions
| Line 14: | Line 14: | ||
==Listings== | ==Listings== | ||
===JavaScript/JQuery handlers=== | ===JavaScript/JQuery handlers=== | ||
<syntaxhighlight lang="javascript"> | |||
LITTLED.Gallery.bindAlbumListingsHandlers() | LITTLED.Gallery.bindAlbumListingsHandlers() | ||
</syntaxhighlight> | |||
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. | 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. | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
LITTLED.init({ setSortables: LITTLED.Gallery.bindAlbumListingsHandlers }); | LITTLED.init({ setSortables: LITTLED.Gallery.bindAlbumListingsHandlers }); | ||
Revision as of 23:08, 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.