Exemplo n.º 1
0
    /**
     * Generates html output of $Content array
     *
     * @param array|object $Content
     * @param PromotedContentModule $Sender
     */
    function writePromotedContent($Content, $Sender)
    {
        static $UserPhotoFirst = NULL;
        if ($UserPhotoFirst === null) {
            $UserPhotoFirst = c('Vanilla.Comment.UserPhotoFirst', true);
        }
        $ContentType = val('RecordType', $Content);
        $ContentID = val("{$ContentType}ID", $Content);
        $Author = val('Author', $Content);
        $ContentURL = val('Url', $Content);
        $Sender->EventArguments['Content'] =& $Content;
        $Sender->EventArguments['ContentUrl'] =& $ContentURL;
        ?>
        <div id="<?php 
        echo "Promoted_{$ContentType}_{$ContentID}";
        ?>
" class="<?php 
        echo CssClass($Content);
        ?>
">
            <div class="AuthorWrap">
         <span class="Author">
            <?php 
        if ($UserPhotoFirst) {
            echo userPhoto($Author);
            echo userAnchor($Author, 'Username');
        } else {
            echo userAnchor($Author, 'Username');
            echo userPhoto($Author);
        }
        $Sender->fireEvent('AuthorPhoto');
        ?>
         </span>
         <span class="AuthorInfo">
            <?php 
        echo ' ' . WrapIf(htmlspecialchars(val('Title', $Author)), 'span', array('class' => 'MItem AuthorTitle'));
        echo ' ' . WrapIf(htmlspecialchars(val('Location', $Author)), 'span', array('class' => 'MItem AuthorLocation'));
        $Sender->fireEvent('AuthorInfo');
        ?>
         </span>
            </div>
            <div class="Meta CommentMeta CommentInfo">
         <span class="MItem DateCreated">
            <?php 
        echo anchor(Gdn_Format::date($Content['DateInserted'], 'html'), $ContentURL, 'Permalink', array('rel' => 'nofollow'));
        ?>
         </span>
                <?php 
        // Include source if one was set
        if ($Source = val('Source', $Content)) {
            echo wrap(sprintf(t('via %s'), t($Source . ' Source', $Source)), 'span', array('class' => 'MItem Source'));
        }
        $Sender->fireEvent('ContentInfo');
        ?>
            </div>
            <div
                class="Title"><?php 
        echo anchor(Gdn_Format::text(sliceString($Content['Name'], $Sender->TitleLimit), false), $ContentURL, 'DiscussionLink');
        ?>
</div>
            <div class="Body">
                <?php 
        echo anchor(htmlspecialchars(sliceString(Gdn_Format::plainText($Content['Body'], $Content['Format']), $Sender->BodyLimit)), $ContentURL, 'BodyLink');
        $Sender->fireEvent('AfterPromotedBody');
        // separate event to account for less space.
        ?>
            </div>
        </div>
    <?php 
    }
Exemplo n.º 2
0
            <span class="Author">
               <?php 
if ($UserPhotoFirst) {
    echo UserPhoto($Author);
    echo UserAnchor($Author, 'Username');
} else {
    echo UserAnchor($Author, 'Username');
    echo UserPhoto($Author);
}
echo FormatMeAction($Discussion);
?>
            </span>
            <span class="AuthorInfo">
               <?php 
echo WrapIf(htmlspecialchars(GetValue('Title', $Author)), 'span', array('class' => 'MItem AuthorTitle'));
echo WrapIf(htmlspecialchars(GetValue('Location', $Author)), 'span', array('class' => 'MItem AuthorLocation'));
$this->FireEvent('AuthorInfo');
?>
            </span>
         </div>
         <div class="Meta DiscussionMeta">
            <span class="MItem DateCreated">
               <?php 
echo Anchor(Gdn_Format::Date($Discussion->DateInserted, 'html'), $Discussion->Url, 'Permalink', array('rel' => 'nofollow'));
?>
            </span>
            <?php 
echo DateUpdated($Discussion, array('<span class="MItem">', '</span>'));
?>
            <?php 
// Include source if one was set
 /**
  * Determines what part of the poll (if any) needs to be rendered
  * Checks permissions and displays any tools available to user
  * @param VanillaController $Sender
  * @return type
  */
 protected function _PollInsertion($Sender)
 {
     $Discussion = $Sender->Discussion;
     $Session = Gdn::Session();
     $DPModel = new DiscussionPollsModel();
     // Does an attached poll exist?
     if ($DPModel->Exists($Discussion->DiscussionID)) {
         $Results = FALSE;
         $Closed = FALSE;
         $Poll = $DPModel->GetByDiscussionID($Discussion->DiscussionID);
         // Can the current user view polls?
         if (!$Session->CheckPermission('Plugins.DiscussionPolls.View')) {
             // make this configurable?
             echo Wrap(T('Plugins.DiscussionPolls.NoView', 'You do not have permission to view polls.'), 'div', array('class' => 'DP_AnswerForm'));
             return;
         }
         // Check to see if the discussion is closed
         if ($Discussion->Closed) {
             // Close the Poll if the discussion is closed (workaround)
             $DPModel->Close($Discussion->DiscussionID);
             // TODO: Get rid of workaround by finding _some way_ to hook into the discussion model
             // and close/open the poll **only** when the attached discussion is [un]closed.
             $Closed = TRUE;
         }
         // Has the user voted?
         if ($DPModel->HasAnswered($Poll->PollID, $Session->UserID) || !$Session->IsValid() || $Closed) {
             $Results = TRUE;
             // Render results
             $this->_RenderResults($Poll);
         } else {
             $PartialAnswers = $DPModel->PartialAnswer($Poll->PollID, $Session->UserID);
             //if some saved partial answers inform
             if (!empty($PartialAnswers)) {
                 // TODO: Remove?
                 Gdn::Controller()->InformMessage(T('Plugins.DiscussionPolls.LoadedPartial', 'Your answered questions have been loaded.'));
             }
             // Render the submission form
             $this->_RenderVotingForm($Sender, $Poll, $PartialAnswers);
         }
         // Render poll tools
         // Owner and Plugins.DiscussionPolls.Manage gets delete if exists and attach if it doesn't
         // Plugins.DiscussionPolls.View gets show results if the results aren't shown
         $Tools = '';
         if ($Discussion->InsertUserID == $Session->UserID || $Session->CheckPermission('Plugins.DiscussionPolls.Manage')) {
             $Tools .= Wrap(Anchor(T('Delete Poll'), '/discussion/poll/delete/' . $Poll->PollID), 'li', array('id' => 'DP_Remove'));
         }
         if (!$Results && C('Plugins.DiscussionPolls.EnableShowResults', TRUE)) {
             $Tools .= Wrap(Anchor(T('Show Results'), '/discussion/poll/results/' . $Poll->PollID), 'li', array('id' => 'DP_Results'));
         }
         echo WrapIf($Tools, 'ul', array('id' => 'DP_Tools'));
     } else {
         // Poll does not exist
         if ($Discussion->InsertUserID == $Session->UserID || $Session->CheckPermission('Plugins.DiscussionPolls.Manage')) {
             echo Wrap(Wrap(Anchor(T('Attach Poll'), '/vanilla/post/editdiscussion/' . $Discussion->DiscussionID), 'li'), 'ul', array('id' => 'DP_Tools'));
         }
     }
 }
Exemplo n.º 4
0
function WriteActivity($Activity, &$Sender, &$Session)
{
    $Activity = (object) $Activity;
    // If this was a status update or a wall comment, don't bother with activity strings
    $ActivityType = explode(' ', $Activity->ActivityType);
    // Make sure you strip out any extra css classes munged in here
    $ActivityType = $ActivityType[0];
    $Author = UserBuilder($Activity, 'Activity');
    $PhotoAnchor = '';
    if ($Activity->Photo) {
        $PhotoAnchor = Anchor(Img($Activity->Photo, array('class' => 'ProfilePhoto ProfilePhotoMedium')), $Activity->PhotoUrl, 'PhotoWrap');
    }
    $CssClass = 'Item Activity Activity-' . $ActivityType;
    if ($PhotoAnchor != '') {
        $CssClass .= ' HasPhoto';
    }
    $Format = GetValue('Format', $Activity);
    $Title = '';
    $Excerpt = $Activity->Story;
    if ($Format) {
        $Excerpt = Gdn_Format::To($Excerpt, $Format);
    }
    if (!in_array($ActivityType, array('WallComment', 'WallPost', 'AboutUpdate'))) {
        $Title = '<div class="Title">' . GetValue('Headline', $Activity) . '</div>';
    } else {
        if ($ActivityType == 'WallPost') {
            $RegardingUser = UserBuilder($Activity, 'Regarding');
            $PhotoAnchor = UserPhoto($RegardingUser);
            $Title = '<div class="Title">' . UserAnchor($RegardingUser, 'Name') . ' <span>&rarr;</span> ' . UserAnchor($Author, 'Name') . '</div>';
            if (!$Format) {
                $Excerpt = Gdn_Format::Display($Excerpt);
            }
        } else {
            $Title = UserAnchor($Author, 'Name');
            if (!$Format) {
                $Excerpt = Gdn_Format::Display($Excerpt);
            }
        }
    }
    $Sender->EventArguments['Activity'] =& $Activity;
    $Sender->EventArguments['CssClass'] =& $CssClass;
    $Sender->FireEvent('BeforeActivity');
    ?>
<li id="Activity_<?php 
    echo $Activity->ActivityID;
    ?>
" class="<?php 
    echo $CssClass;
    ?>
">
   <?php 
    if ($Session->IsValid() && ($Session->UserID == $Activity->InsertUserID || $Session->CheckPermission('Garden.Activity.Delete'))) {
        echo '<div class="Options">' . Anchor('×', 'dashboard/activity/delete/' . $Activity->ActivityID . '/' . $Session->TransientKey() . '?Target=' . urlencode($Sender->SelfUrl), 'Delete') . '</div>';
    }
    if ($PhotoAnchor != '') {
        ?>
   <div class="Author Photo"><?php 
        echo $PhotoAnchor;
        ?>
</div>
   <?php 
    }
    ?>
   <div class="ItemContent Activity">
      <?php 
    echo $Title;
    ?>
      <?php 
    echo WrapIf($Excerpt, 'div', array('class' => 'Excerpt'));
    ?>
      <?php 
    $Sender->EventArguments['Activity'] = $Activity;
    $Sender->FireAs('ActivityController')->FireEvent('AfterActivityBody');
    ?>
      <div class="Meta">
         <span class="MItem DateCreated"><?php 
    echo Gdn_Format::Date($Activity->DateUpdated);
    ?>
</span>
         <?php 
    $SharedString = FALSE;
    $ID = GetValue('SharedNotifyUserID', $Activity->Data);
    if (!$ID) {
        $ID = GetValue('CommentNotifyUserID', $Activity->Data);
    }
    if ($ID) {
        $SharedString = FormatString(T('Comments are between {UserID,you}.'), array('UserID' => array($Activity->NotifyUserID, $ID)));
    }
    $AllowComments = $Activity->NotifyUserID < 0 || $SharedString;
    if ($AllowComments && $Session->CheckPermission('Garden.Profiles.Edit')) {
        echo '<span class="MItem AddComment">' . Anchor(T('Activity.Comment', 'Comment'), '#CommentForm_' . $Activity->ActivityID, 'CommentOption');
    }
    if ($SharedString) {
        echo ' <span class="MItem"><i>' . $SharedString . '</i></span>';
    }
    echo '</span>';
    $Sender->FireEvent('AfterMeta');
    ?>
      </div>
   </div>
   <?php 
    $Comments = GetValue('Comments', $Activity, array());
    if (count($Comments) > 0) {
        echo '<ul class="DataList ActivityComments">';
        foreach ($Comments as $Comment) {
            WriteActivityComment($Comment, $Sender, $Session);
        }
    } else {
        echo '<ul class="DataList ActivityComments Hidden">';
    }
    if ($Session->CheckPermission('Garden.Profiles.Edit')) {
        ?>
      <li class="CommentForm">
      <?php 
        echo Anchor(T('Write a comment'), '/dashboard/activity/comment/' . $Activity->ActivityID, 'CommentLink');
        $CommentForm = Gdn::Factory('Form');
        $CommentForm->SetModel($Sender->ActivityModel);
        $CommentForm->AddHidden('ActivityID', $Activity->ActivityID);
        $CommentForm->AddHidden('Return', Gdn_Url::Request());
        echo $CommentForm->Open(array('action' => Url('/dashboard/activity/comment'), 'class' => 'Hidden'));
        echo '<div class="TextBoxWrapper">' . $CommentForm->TextBox('Body', array('MultiLine' => TRUE, 'value' => '')) . '</div>';
        echo '<div class="Buttons">';
        echo $CommentForm->Button('Comment', array('class' => 'Button Primary'));
        echo '</div>';
        echo $CommentForm->Close();
        ?>
</li>
   <?php 
    }
    echo '</ul>';
    ?>
</li>
<?php 
}
Exemplo n.º 5
0
    function WriteComment($Comment, $Sender, $Session, $CurrentOffset)
    {
        static $UserPhotoFirst = NULL;
        if ($UserPhotoFirst === NULL) {
            $UserPhotoFirst = C('Vanilla.Comment.UserPhotoFirst', TRUE);
        }
        $Author = Gdn::UserModel()->GetID($Comment->InsertUserID);
        //UserBuilder($Comment, 'Insert');
        $Permalink = GetValue('Url', $Comment, '/discussion/comment/' . $Comment->CommentID . '/#Comment_' . $Comment->CommentID);
        // Set CanEditComments (whether to show checkboxes)
        if (!property_exists($Sender, 'CanEditComments')) {
            $Sender->CanEditComments = $Session->CheckPermission('Vanilla.Comments.Edit', TRUE, 'Category', 'any') && C('Vanilla.AdminCheckboxes.Use');
        }
        // Prep event args
        $CssClass = CssClass($Comment, $CurrentOffset);
        $Sender->EventArguments['Comment'] =& $Comment;
        $Sender->EventArguments['Author'] =& $Author;
        $Sender->EventArguments['CssClass'] =& $CssClass;
        // DEPRECATED ARGUMENTS (as of 2.1)
        $Sender->EventArguments['Object'] =& $Comment;
        $Sender->EventArguments['Type'] = 'Comment';
        // First comment template event
        $Sender->FireEvent('BeforeCommentDisplay');
        ?>
<li class="<?php 
        echo $CssClass;
        ?>
" id="<?php 
        echo 'Comment_' . $Comment->CommentID;
        ?>
">
   <div class="Comment">
      <?php 
        // Write a stub for the latest comment so it's easy to link to it from outside.
        if ($CurrentOffset == Gdn::Controller()->Data('_LatestItem')) {
            echo '<span id="latest"></span>';
        }
        ?>
      <div class="Options">
         <?php 
        WriteCommentOptions($Comment);
        ?>
      </div>
      <?php 
        $Sender->FireEvent('BeforeCommentMeta');
        ?>
      <div class="Item-Header CommentHeader">
         <div class="AuthorWrap">
            <span class="Author">
               <?php 
        if ($UserPhotoFirst) {
            echo UserPhoto($Author);
            echo UserAnchor($Author, 'Username');
        } else {
            echo UserAnchor($Author, 'Username');
            echo UserPhoto($Author);
        }
        echo FormatMeAction($Comment);
        ?>
            </span>
            <span class="AuthorInfo">
               <?php 
        echo ' ' . WrapIf(htmlspecialchars(GetValue('Title', $Author)), 'span', array('class' => 'MItem AuthorTitle'));
        $Sender->FireEvent('AuthorInfo');
        ?>
            </span>   
         </div>
         <div class="Meta CommentMeta CommentInfo">
            <span class="MItem DateCreated">
               <?php 
        echo Anchor(Gdn_Format::Date($Comment->DateInserted, 'html'), $Permalink, 'Permalink', array('name' => 'Item_' . $CurrentOffset, 'rel' => 'nofollow'));
        ?>
            </span>
            <?php 
        // Include source if one was set
        if ($Source = GetValue('Source', $Comment)) {
            echo Wrap(sprintf(T('via %s'), T($Source . ' Source', $Source)), 'span', array('class' => 'MItem Source'));
        }
        $Sender->FireEvent('CommentInfo');
        $Sender->FireEvent('InsideCommentMeta');
        // DEPRECATED
        $Sender->FireEvent('AfterCommentMeta');
        // DEPRECATED
        // Include IP Address if we have permission
        if ($Session->CheckPermission('Garden.Moderation.Manage')) {
            echo Wrap(IPAnchor($Comment->InsertIPAddress), 'span', array('class' => 'MItem IPAddress'));
        }
        ?>
         </div>
      </div>
      <div class="Item-BodyWrap">
         <div class="Item-Body">
            <div class="Message">
               <?php 
        echo FormatBody($Comment);
        ?>
            </div>
            <?php 
        $Sender->FireEvent('AfterCommentBody');
        WriteReactions($Comment);
        ?>
         </div>
      </div>
   </div>
</li>
<?php 
        $Sender->FireEvent('AfterComment');
    }
Exemplo n.º 6
0
function WritePromotedContent($Content, $Sender)
{
    static $UserPhotoFirst = NULL;
    if ($UserPhotoFirst === NULL) {
        $UserPhotoFirst = C('Vanilla.Comment.UserPhotoFirst', TRUE);
    }
    $ContentType = GetValue('ItemType', $Content);
    $ContentID = GetValue("{$ContentType}ID", $Content);
    $Author = GetValue('Author', $Content);
    switch (strtolower($ContentType)) {
        case 'comment':
            $ContentURL = CommentUrl($Content);
            break;
        case 'discussion':
            $ContentURL = DiscussionUrl($Content);
            break;
    }
    ?>
   <div id="<?php 
    echo "Promoted_{$ContentType}_{$ContentID}";
    ?>
" class="<?php 
    echo CssClass($Content);
    ?>
">
      <div class="AuthorWrap">
         <span class="Author">
            <?php 
    if ($UserPhotoFirst) {
        echo UserPhoto($Author);
        echo UserAnchor($Author, 'Username');
    } else {
        echo UserAnchor($Author, 'Username');
        echo UserPhoto($Author);
    }
    $Sender->FireEvent('AuthorPhoto');
    ?>
         </span>
         <span class="AuthorInfo">
            <?php 
    echo ' ' . WrapIf(htmlspecialchars(GetValue('Title', $Author)), 'span', array('class' => 'MItem AuthorTitle'));
    echo ' ' . WrapIf(htmlspecialchars(GetValue('Location', $Author)), 'span', array('class' => 'MItem AuthorLocation'));
    $Sender->FireEvent('AuthorInfo');
    ?>
         </span>   
      </div>
      <div class="Meta CommentMeta CommentInfo">
         <span class="MItem DateCreated">
            <?php 
    echo Anchor(Gdn_Format::Date($Content['DateInserted'], 'html'), $Permalink, 'Permalink', array('rel' => 'nofollow'));
    ?>
         </span>
         <?php 
    // Include source if one was set
    if ($Source = GetValue('Source', $Content)) {
        echo Wrap(sprintf(T('via %s'), T($Source . ' Source', $Source)), 'span', array('class' => 'MItem Source'));
    }
    $Sender->FireEvent('ContentInfo');
    ?>
      </div>
      <div class="Title"><?php 
    echo Anchor(Gdn_Format::Text($Content['Name'], FALSE), $ContentURL, 'DiscussionLink');
    ?>
</div>
      <div class="Body"><?php 
    echo Anchor(strip_tags(Gdn_Format::To($Content['Body'], $Content['Format'])), $ContentURL, 'BodyLink');
    ?>
</div>
   </div>
<?php 
}
Exemplo n.º 7
0
      <div class="Item-Header DiscussionHeader">
         <div class="AuthorWrap">
            <span class="Author">
               <?php 
if ($UserPhotoFirst) {
    echo UserPhoto($Author);
    echo UserAnchor($Author);
} else {
    echo UserAnchor($Author);
    echo UserPhoto($Author);
}
?>
            </span>
            <span class="AuthorInfo">
               <?php 
echo WrapIf(htmlspecialchars(GetValue('Title', $Author)), 'span', array('class' => 'MItem AuthorTitle'));
$this->FireEvent('AuthorInfo');
?>
            </span>
         </div>
         <div class="Meta DiscussionMeta">
            <span class="MItem DateCreated">
               <?php 
echo Anchor(Gdn_Format::Date($Discussion->DateInserted, 'html'), $Discussion->Url, 'Permalink', array('rel' => 'nofollow'));
?>
            </span>
            <?php 
// Category
if (C('Vanilla.Categories.Use')) {
    echo ' <span class="MItem Category">';
    echo ' ' . T('in') . ' ';
Exemplo n.º 8
0
<?php

if (!defined('APPLICATION')) {
    exit;
}
/* Copyright 2014 Zachary Doll */
$TransportType = $this->Data('TransportType');
$Filename = $this->Data('TransportPath');
$ActionCount = $this->Data('ActionCount', NULL);
$BadgeCount = $this->Data('BadgeCount', NULL);
$RankCount = $this->Data('RankCount', NULL);
$ImageCount = $this->Data('ImageCount', NULL);
echo Wrap($this->Title(), 'h1');
echo Wrap(Wrap(sprintf(T("Yaga.{$TransportType}.Success"), $Filename), 'div'), 'div', array('class' => 'Wrap'));
$String = '';
if ($ActionCount) {
    $String .= Wrap(T('Yaga.Reactions') . ': ' . $ActionCount, 'li');
}
if ($BadgeCount) {
    $String .= Wrap(T('Yaga.Badges') . ': ' . $BadgeCount, 'li');
}
if ($RankCount) {
    $String .= Wrap(T('Yaga.Ranks') . ': ' . $RankCount, 'li');
}
if ($ImageCount) {
    $String .= Wrap(T('Image Files') . ': ' . $ImageCount, 'li');
}
echo WrapIf($String, 'ul', array('class' => 'Wrap'));
echo Wrap(Anchor(T('Yaga.Transport.Return'), 'yaga/settings'), 'div', array('class' => 'Wrap'));
Exemplo n.º 9
0
if (!defined('APPLICATION')) {
    exit;
}
/* Copyright 2013 Zachary Doll */
echo Wrap($this->Title(), 'h1');
echo '<ul class="DataList Badges">';
foreach ($this->Data('Badges') as $Badge) {
    // Don't show disabled badges
    //if(!$Badge->Enabled) {
    //  continue;
    //}
    $Row = '';
    $AwardDescription = '';
    $ReadClass = ' Read';
    if ($Badge->UserID) {
        $ReadClass = '';
        $AwardDescription = sprintf(T('Yaga.Badge.Earned.Format'), Gdn_Format::Date($Badge->DateInserted, 'html'), $Badge->InsertUserName);
        if ($Badge->Reason) {
            $AwardDescription .= ': "' . $Badge->Reason . '"';
        }
    }
    if ($Badge->Photo) {
        $Row .= Img($Badge->Photo, array('class' => 'BadgePhoto'));
    } else {
        $Row .= Img('applications/yaga/design/images/default_badge.png', array('class' => 'BadgePhoto'));
    }
    $Row .= Wrap(Wrap(Anchor($Badge->Name, 'badges/detail/' . $Badge->BadgeID . '/' . Gdn_Format::Url($Badge->Name), array('class' => 'Title')), 'div', array('class' => 'Title')) . Wrap(Wrap($Badge->Description, 'span', array('class' => 'MItem BadgeDescription')) . Wrap($Badge->AwardValue . ' points.', 'span', array('class' => 'MItem BadgePoints')) . WrapIf($AwardDescription, 'p'), 'div', array('class' => 'Meta')), 'div', array('class' => 'ItemContent Badge'));
    echo Wrap($Row, 'li', array('class' => 'Item ItemBadge' . $ReadClass));
}
echo '</ul>';
Exemplo n.º 10
0
 /**
  * Renders an action row used to construct the action admin screen
  * 
  * @param stdClass $Action
  * @return string
  */
 function ActionRow($Action)
 {
     return Wrap(Wrap(Anchor(T('Edit'), 'action/edit/' . $Action->ActionID, array('class' => 'Popup SmallButton')) . Anchor(T('Delete'), 'action/delete/' . $Action->ActionID, array('class' => 'Popup SmallButton')), 'div', array('class' => 'Tools')) . Wrap(Wrap($Action->Name, 'h4') . Wrap(Wrap($Action->Description, 'span') . ' ' . Wrap(Plural($Action->AwardValue, '%s Point', '%s Points'), 'span'), 'div', array('class' => 'Meta')) . Wrap(Wrap('&nbsp;', 'span', array('class' => 'ReactSprite React-' . $Action->ActionID . ' ' . $Action->CssClass)) . WrapIf(rand(0, 18), 'span', array('class' => 'Count')) . Wrap($Action->Name, 'span', array('class' => 'ReactLabel')), 'div', array('class' => 'Preview Reactions')), 'div', array('class' => 'Action')), 'li', array('id' => 'ActionID_' . $Action->ActionID));
 }