Comparing versions
Version 2Current version
 

Technical Overview

LibertyAttachments is a mechanism for attaching any ID based mechanism to any LibertyPackage-derived content (wiki, blogs).

The liberty_attachments table is an abstraction to the actual file location. This permits one to use the local file system (liberty_files) or database binary objects (liberty_blobs), tables from other 3rd party application (like a g_id from gallery2), or even links to other websites such as pbase. LibertyAttachable extended objects use the public methods to have a "black box" for attaching data, and the actual location is dependent on the attachment plugin.

All functionality is in the LibertyPackage package. There is a LibertyAttachable class that handles all storing and retrieving of attachment data. Currently, there are plugins for Lulu, PBase and uploads via bit_files. Future support (blobs, gallery2, etc.) will depend on community support and developer interest.

Here is a diagram of how the tables interface (note this diagram was prior to ReleaseOne and the names have changed in ReleaseTwo, however the ideas are largely still the same):



Features

Ajax Attachments

Ajax Attachments lets you upload files without refreshing the whole form. When you enabled Enforce Content Status you can even upload files when you are first creating a new content item.

For Developers

Ajax Attachments Process Trees
These two sketches show the basics of how the various ajax attachment templates are called and what key javascript and form elements they contain that make up the entire process. This is handy for debugging or modifying the code.

Starting at inclusion of edit_storage.tpl from a content edit form

<?php
edit_storage
.tpl
    
If Mime default enabled
        Files
:     mime_default_upload_inc.tpl
                Elms
:    INPUTupload
                Action
LA.uploader( [this:upload], liberty_upload_frameform_name )
                    
LA.uploaderSetupupload )
                
Files:    attachment_uploader_inc.tpl
                        Elms
:     FRAMEliberty_upload_frame
                        Action
:    LA.uploaderComplete( [this:liberty_upload_frame], uploadform_name )

            
edit_storage_list.tpl
                Elms
:    DIVedit_storage_list
                    DIV
edit_storage_list_tab
                Action
BA.updater( [this:edit_storage_list_tab] ) (delete)
                    
BA.updateredit_storage_list )        (get update after delete not a great place for this)

    Else 
Legacy
        Files
:    storage.bitfile.php
                Elms
:    INPUTupload
                Action
LA.uploader( [this:upload], liberty_upload_frameform_name )
                
Files:    attachment_uploader_inc.tpl    (see above)

            
edit_storage_list.tpl        (see above)
?>


Starting at the ajax upload handler file

<?php
attachment_uploader
.php
        Files
:    edit_storage_list.tpl        (see above)
            
edit_storage_list.tpl (tab)    (see above)
?>


Page History
Date/CommentUserIPVersion
26 Oct 2008 (10:00 UTC)
added alias; typos
laetzer85.179.34.17417
Current • Source
Will69.203.72.16115
View • Compare • Difference • Source
Will69.203.72.16114
View • Compare • Difference • Source
spiderr69.134.148.4013
View • Compare • Difference • Source
spiderr66.93.240.2049
View • Compare • Difference • Source
spiderr66.93.240.2048
View • Compare • Difference • Source
spiderr66.93.240.2047
View • Compare • Difference • Source
spiderr66.93.240.2046
View • Compare • Difference • Source
spiderr66.93.240.2044
View • Compare • Difference • Source
spiderr66.93.240.2043
View • Compare • Difference • Source
system0.0.0.02
View • Compare • Difference • Source