# Class ArticleObject

An article class for the CMS

  AlphaDAO
  ArticleObject

Package: alpha::model
Copyright: Copyright (c) 2014, John Collins (founder of Alpha Framework). All rights reserved.

    Redistribution and use in source and binary forms, with or
    without modification, are permitted provided that the
    following conditions are met:

    * Redistributions of source code must retain the above
      copyright notice, this list of conditions and the
      following disclaimer.
    * Redistributions in binary form must reproduce the above
      copyright notice, this list of conditions and the
      following disclaimer in the documentation and/or other
      materials provided with the distribution.
    * Neither the name of the Alpha Framework nor the names
      of its contributors may be used to endorse or promote
      products derived from this software without specific
      prior written permission.

    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
    CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
    INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
    CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
    NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
    OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

License: The BSD License
Author: John Collins <dev@alphaframework.org>
Version: $Id: ArticleObject.inc 1752 2014-03-30 22:26:22Z alphadevx $
Since: 1.0
Located at model/ArticleObject.inc

Methods summary
`public` | # `__construct( )` The constructor which sets up some housekeeping attributes The constructor which sets up some housekeeping attributes #### Since 1.0 #### Overrides `AlphaDAO::__construct()`
`protected` | # `after_save_callback( )` After creating a new ArticleObject, tokenize the description field to form a set of automated tags and save them. After creating a new ArticleObject, tokenize the description field to form a set of automated tags and save them. #### Since 1.0
`protected` | # `after_loadByAttribute_callback( )` Set up the transient URL attributes for the artcile after it has loaded Set up the transient URL attributes for the artcile after it has loaded #### Since 1.0
`protected` | # `after_load_callback( )` Set up the transient URL attributes for the article after it has loaded Set up the transient URL attributes for the article after it has loaded #### Since 1.0
`public array` | # `loadRecentWithLimit( integer $limit, string $excludeID = '' )` Gets an array of the OIDs of the most recent articles added to the system (by date), from the newest article to the amount specified by the $limit Gets an array of the OIDs of the most recent articles added to the system (by date), from the newest article to the amount specified by the $limit #### Parameters $limit `integer` $limit $excludeID `string` $excludeID #### Returns `array` #### Throws ``AlphaException`` #### Since 1.0
`public string` | # `getAttachmentsLocation( )` Generates the location of the attachments folder for this article Generates the location of the attachments folder for this article #### Returns `string` #### Since 1.0
`public string` | # `getAttachmentsURL( )` Generates the URL of the attachments folder for this article Generates the URL of the attachments folder for this article #### Returns `string` #### Since 1.0
`public` | # `getAttachmentSecureURL( string $filename )` Generates a secure URL for downloading an attachment file via the ViewAttachment controller Generates a secure URL for downloading an attachment file via the ViewAttachment controller #### Parameters $filename `string` $filename #### Since 1.0
`public` | # `createAttachmentsFolder( )` Creates the attachment folder for the article on the server. Creates the attachment folder for the article on the server. #### Throws ``AlphaException`` #### Since 1.0
`public float` | # `getArticleScore( )` Method for returning the calculated score for this article Method for returning the calculated score for this article #### Returns `float` #### Since 1.0
`public array` | # `getArticleVotes( )` Method for fetching all of the votes for this article Method for fetching all of the votes for this article #### Returns `array` An array of ArticleVoteObject objects #### Since 1.0
`public boolean` | # `checkUserVoted( )` Method to determine if the logged-in user has already voted for this article Method to determine if the logged-in user has already voted for this article #### Returns `boolean` True if they have voted already, false otherwise #### Throws ``AlphaException`` #### Since 1.0
`public array` | # `getArticleComments( )` Method for fetching all of the comments for this article Method for fetching all of the comments for this article #### Returns `array` An array of ArticleCommentObject objects #### Since 1.0
`public` | # `loadContentFromFile( mixed $filePath )` Loads the content of the ArticleObject from the specified file path Loads the content of the ArticleObject from the specified file path #### Parameters $filePath `mixed` $filePath #### Throws ``FileNotFoundException`` #### Since 1.0
`public boolean` | # `isLoadedFromFile( )` Returns true if the article content was loaded from a .text file, false otherwise. Returns true if the article content was loaded from a .text file, false otherwise. #### Returns `boolean` #### Since 1.0
`public string` | # `getContentFileDate( )` Returns the timestamp of when the content .text file for this article was last modified. Returns the timestamp of when the content .text file for this article was last modified. #### Returns `string` #### Throws ``FileNotFoundException`` #### Since 1.0

Methods inherited from AlphaDAO
`__wakeup(), addProperty(), addToCache(), begin(), cast(), checkBOTableExists(), checkClassDefExists(), checkRecordExists(), checkTableExists(), checkTableNeedsUpdate(), commit(), createForeignIndex(), createUniqueIndex(), delete(), deleteAllByAttribute(), disconnect(), dropTable(), findMissingFields(), get(), getBOClassNames(), getConnection(), getCount(), getCreateTS(), getCreatorId(), getDataLabel(), getDataLabels(), getDefaultAttributes(), getFriendlyClassName(), getHistoryCount(), getID(), getIndexes(), getLastQuery(), getMAX(), getMaintainHistory(), getOID(), getPersistentAttributes(), getPropObject(), getTableName(), getTaggedAttributes(), getTransientAttributes(), getUniqueAttributes(), getUpdateTS(), getUpdatorId(), getVersion(), getVersionNumber(), hasAttribute(), isInstalled(), isTableOverloaded(), isTagged(), isTransient(), load(), loadAll(), loadAllByAttribute(), loadAllByAttributes(), loadAllByDayUpdated(), loadAllFieldValuesByAttribute(), loadByAttribute(), loadClassDef(), loadFromCache(), makeHistoryTable(), makeTable(), markPersistent(), markTransient(), markUnique(), populateFromArray(), populateFromPost(), query(), rebuildTable(), reload(), removeFromCache(), rollback(), save(), saveAttribute(), saveHistory(), set(), setDataLabels(), setEnumOptions(), setLastQuery(), setMaintainHistory(), setOID(), toArray(), validate()`

Constants summary
`string` | `TABLE_NAME` | `'Article'` | # The name of the database table for the class The name of the database table for the class #### Since 1.0

Properties summary
`protected `String`` | $title | `` | # The article title The article title #### Since 1.0
`protected `DEnum`` | $section | `` | # The article site section The article site section #### Since 1.0
`protected `String`` | $description | `` | # The description of the article The description of the article #### Since 1.0
`protected `String`` | $bodyOnload | `` | # Optional custom body onload Javascript Optional custom body onload Javascript #### Since 1.0
`protected `Text`` | $headerContent | `` | # Any custom HTML header content (e.g. Javascript) for the article Any custom HTML header content (e.g. Javascript) for the article #### Since 1.0
`protected `Text`` | $content | `` | # The article content The article content #### Since 1.0
`protected `String`` | $author | `` | # The author of the article The author of the article #### Since 1.0
`protected `Boolean`` | $published | `` | # A boolean to control whether the artcile is publically accessible or not A boolean to control whether the artcile is publically accessible or not #### Since 1.0
`protected `Relation`` | $comments | `` | # A Relation containing all of the comments on this article A Relation containing all of the comments on this article #### Since 1.0
`protected `Relation`` | $votes | `` | # A Relation containing all of the votes on this article A Relation containing all of the votes on this article #### Since 1.0
`protected `Relation`` | $tags | `` | # A Relation containing all of the tags on this article A Relation containing all of the tags on this article #### Since 1.0
`protected array` | $taggedAttributes | `array('title', 'description', 'content')` | # An array of all of the attributes on this BO which are tagged An array of all of the attributes on this BO which are tagged #### Since 1.0
`private string` | $filePath | `` | # Path to a .text file where the content of this article is stored (optional) Path to a .text file where the content of this article is stored (optional) #### Since 1.0
`protected array` | $dataLabels | `array("OID"=>"Article ID#","title"=>"Title","section"=>"Site Section","description"=>"Description","bodyOnload"=>"Body onload Javascript","content"=>"Content","headerContent"=>"HTML Header Content","author"=>"Author","created_ts"=>"Date Added","updated_ts"=>"Date of last Update","published"=>"Published","URL"=>"URL","printURL"=>"Printer version URL","comments"=>"Comments","votes"=>"Votes","tags"=>"Tags")` | # An array of data display labels for the class properties An array of data display labels for the class properties #### Since 1.0
`protected string` | $URL | `` | # The URL for this article (transient) The URL for this article (transient) #### Since 1.0
`protected string` | $printURL | `` | # The print URL for this article (transient) The print URL for this article (transient) #### Since 1.0
`private static `Logger`` | $logger | `null` | # Trace logger Trace logger #### Since 1.0

Properties inherited from AlphaDAO
`$OID, $created_by, $created_ts, $defaultAttributes, $lastQuery, $transientAttributes, $uniqueAttributes, $updated_by, $updated_ts, $version_num`