SVGFETurbulenceElement::SVGFETurbulenceElement() : SVGElement(new PSVGFETurbulenceElement(this)) { AddXMLAttribute(NewXMLAttr(&m_baseFrequency, NULL, WSTR("baseFrequency"))); AddXMLAttribute(NewXMLAttr(&m_numOctaves, NULL, WSTR("numOctaves"))); // AddXMLAttribute(NewXMLAttr(&m_in1, L"", L"in1")); SetAllValues(this); // ??? }
SVGFEPointLightElement::SVGFEPointLightElement(NamedNodeMap* attributes) : SVGElement(new PSVGFEPointLightElement(this), attributes) { m_x = NULL; m_y = NULL; m_z = NULL; AddXMLAttribute(NewXMLAttr(&m_x, NULL, WSTR("x"))); AddXMLAttribute(NewXMLAttr(&m_y, NULL, WSTR("y"))); AddXMLAttribute(NewXMLAttr(&m_z, NULL, WSTR("z"))); SetAllValues(this); // ??? }
SVGTextPathElement::SVGTextPathElement(NamedNodeMap* attributes) : SVGTextContentElementImpl/*<SVGTextPathElement>*/(new PSVGTextPathElement(this), attributes) { m_startOffset = NULL; AddXMLAttribute(NewXMLAttr(&m_startOffset, NULL, WSTR("startOffset"))); SetAllValues(this); // ??? }
SVGFESpotLightElement::SVGFESpotLightElement(NamedNodeMap* attributes) : SVGElement(NULL, attributes) { ASSERT(0); m_x = NULL; m_y = NULL; m_z = NULL; m_pointsAtX = NULL; m_pointsAtY = NULL; m_pointsAtZ = NULL; m_specularExponent = NULL; m_limitingConeAngle = NULL; AddXMLAttribute(NewXMLAttr(&m_x, NULL, WSTR("x"))); AddXMLAttribute(NewXMLAttr(&m_y, NULL, WSTR("y"))); AddXMLAttribute(NewXMLAttr(&m_z, NULL, WSTR("z"))); AddXMLAttribute(NewXMLAttr(&m_pointsAtX, NULL, WSTR("pointsAtX"))); AddXMLAttribute(NewXMLAttr(&m_pointsAtY, NULL, WSTR("pointsAtY"))); AddXMLAttribute(NewXMLAttr(&m_pointsAtZ, NULL, WSTR("pointsAtZ"))); AddXMLAttribute(NewXMLAttr(&m_specularExponent, NULL, WSTR("specularExponent"))); AddXMLAttribute(NewXMLAttr(&m_limitingConeAngle, NULL, WSTR("limitingConeAngle"))); SetAllValues(this); // ??? }
bool CPoll::MakePoll(const PollLink & pollLink) { CTDVString sXML; InitialiseXMLBuilder(&sXML, NULL); // Open POLL tag if(!OpenXMLTag("POLL", true)) { TDVASSERT(false, "CPoll::MakePoll() OpenXMLTag failed"); return false; } // Add poll id if(!AddXMLIntAttribute("pollid", pollLink.GetPollID(), false)) { TDVASSERT(false, "CPoll::MakePoll() AddXMLIntAttribute failed"); return false; } // Add poll type if(!AddXMLIntAttribute("polltype", pollLink.GetPollType(), false)) { TDVASSERT(false, "CPoll::MakePoll() AddXMLIntAttribute failed"); return false; } //Poll limits if ( m_nResponseMin >= 0 && !AddXMLIntAttribute("minresponse",m_nResponseMin,false) ) { TDVASSERT(false, "CPoll::MakePoll() AddXMLIntAttribute failed"); return false; } if ( m_nResponseMax >= 0 && !AddXMLIntAttribute("maxresponse",m_nResponseMax,false) ) { TDVASSERT(false, "CPoll::MakePoll() AddXMLIntAttribute failed"); return false; } if ( m_bAllowAnonymousRating == true && !AddXMLIntAttribute("anonymousrating", 1,false) ) { TDVASSERT(false, "CPoll::MakePoll() AddXMLIntAttribute failed"); return false; } // Add hidden attribute if(!AddXMLIntAttribute("hidden", pollLink.m_Hidden, true)) { TDVASSERT(false, "CPoll::MakePoll() AddXMLIntAttribute failed"); return false; } // Add poll results if we have any if(!pollLink.GetPollResults().empty()) { // Open OPTION-LIST tag if(!OpenXMLTag("OPTION-LIST", false)) { TDVASSERT(false, "CPoll::MakePoll() OpenXMLTag failed"); return false; } // Add vote results // resultsMap::const_iterator itUserStatus = pollLink.GetPollResults().begin(); //resultsMap::iterator itUserStatus = pollLink.m_PollProperties.m_Results.begin(); while(itUserStatus != pollLink.GetPollResults().end()) { // Open USERSTATUS tag if(!OpenXMLTag("USERSTATUS", true)) { TDVASSERT(false, "CPoll::MakePoll() OpenXMLTag failed"); return false; } // Add User Type attribute if(!AddXMLIntAttribute("type", itUserStatus->first, true)) { TDVASSERT(false, "CPoll::MakePoll() AddXMLIntAttribute failed"); return false; } // Add OPTION tags optionsMap::const_iterator itOptions = itUserStatus->second.begin(); while(itOptions != itUserStatus->second.end()) { // Open OPTION tag if(!OpenXMLTag("OPTION", true)) { TDVASSERT(false, "CPoll::MakePoll() OpenXMLTag failed"); return false; // cannot continue } // Add index attribute if(!AddXMLIntAttribute("index", itOptions->first, false)) { TDVASSERT(false, "CPoll::MakePoll() AddXMLIntAttribute failed"); return false; } const COptionAttributes& attr = itOptions->second; COptionAttributes::const_iterator attrNextIt = attr.begin(); for (COptionAttributes::const_iterator attrIt = attr.begin(); attrIt != attr.end(); attrIt++) { attrNextIt++; // Add attributes if(!AddXMLAttribute(attrIt->first.c_str(), attrIt->second.c_str(), attrNextIt == attr.end())) { TDVASSERT(false, "CPoll::MakePoll() AddXMLIntAttribute"); return false; } } // Close OPTION tag if(!CloseXMLTag("OPTION")) { TDVASSERT(false, "CPoll::MakePoll() CloseXMLTag failed"); return false; } itOptions++; } // Close USERSTATUS tag if(!CloseXMLTag("USERSTATUS")) { TDVASSERT(false, "CPoll::MakePoll() CloseXMLTag failed"); return false; } itUserStatus++; } // Close OPTION-LIST tag if(!CloseXMLTag("OPTION-LIST")) { TDVASSERT(false, "CPoll::MakePoll() CloseXMLTag failed"); return false; } } // Add USER-VOTE tag which holds the currently logged on user's vote. If it is -1, it means // user has not voted. In that case, do not put tag. Skin will check for existence of tag to // determine whether user has voted or not /* int nUserVote = -1; if(!LoadCurrentUserVote(nUserVote)) { TDVASSERT(false, "CPoll::MakePoll() LoadCurrentUserVote failed"); // Pretend that user has not voted } else */ // User Vote now comes as part of pollLink so theres no need to load it from // the database int nUserVote = pollLink.GetCurrentUserVote(); if(nUserVote != -1) { // Open USER-VOTE tag if(!OpenXMLTag("USER-VOTE", true)) { TDVASSERT(false, "CPoll::MakePoll() OpenXMLTag failed"); return false; } // Add choice attribute if(!AddXMLIntAttribute("choice", nUserVote, true)) { TDVASSERT(false, "CPoll::MakePoll() AddXMLIntAttribute failed"); return false; } // Close USER-VOTE tag if(!CloseXMLTag("USER-VOTE")) { TDVASSERT(false, "CPoll::MakePoll() CloseXMLTag failed"); return false; } } // Add statistics if we have any if(!m_Stats.empty()) { // Open STATISTICS tag if(!OpenXMLTag("STATISTICS", true)) { TDVASSERT(false, "CPoll::MakePoll() OpenXMLTag failed"); return false; } // Add stats as attributes statisticsMap::const_iterator it = m_Stats.begin(); while(it != m_Stats.end()) { // Add attribute std::string sName = it->first; std::string sValue = it->second; if(!AddXMLAttribute(sName.c_str(), sValue.c_str(), ++it == m_Stats.end())) { TDVASSERT(false, "CPoll::MakePoll() AddXMLIntAttribute failed"); return false; } } // Close STATISTICS tag if(!CloseXMLTag("STATISTICS")) { TDVASSERT(false, "CPoll::MakePoll() CloseXMLTag failed"); return false; } } // Close POLL tag if(!CloseXMLTag("POLL")) { TDVASSERT(false, "CPoll::MakePoll() CloseXMLTag failed"); return false; } // Create/Check XML if(!CreateFromXMLText(sXML, 0, true)) { TDVASSERT(false, "CPoll::MakePoll() CreateFromXMLText failed"); return false; } // Put error element if an error was passed on url if(m_InputContext.ParamExists("PollErrorCode")) { if(!AddErrorElement("POLL", (CPoll::ErrorCode)m_InputContext.GetParamInt("PollErrorCode"))) { TDVASSERT(false, "CPoll::MakePoll() AddErrorElement failed"); return false; } } return true; }
/********************************************************************************* bool CTopic::Initialise Author: Martin R Created: 17/01/2005 Inputs: - CDBXMLBuilder& XML Outputs: - Returns: - Purpose: - Create Editors Pick XML - Fetches Items tagged to user ( clippings ) - Fetches items already tagged/ clipped to TextBox. *********************************************************************************/ bool CEditorsPick::Initialise(int iTextBoxID) { CTDVString sXML; CStoredProcedure SP; InitialiseXMLBuilder(&sXML,&SP); //CMultiStep Multi(m_InputContext,"TEXTANDIMAGE"); //Multi.AddRequiredParam("title",""); //Multi.AddRequiredParam("text",""); // Process the inputs to make sure we've got all the info we require //Multi.ProcessInput(); //CTDVString sMultiXML; //Multi.GetAsXML(sMultiXML); //sXML << sMultiXML; OpenXMLTag("LINKS"); //keep a record of existing links. std::set< std::pair<int,CTDVString> > existinglinks; //Get existing Links for element if ( iTextBoxID ) { m_InputContext.InitialiseStoredProcedureObject(&SP); SP.GetFrontPageElementLinks(iTextBoxID,true); //Create XML. CTDVString sXML; while( !SP.IsEOF() ) { OpenXMLTag("LINK",true); CTDVString sType; SP.GetField("DestinationType",sType); AddXMLAttribute("Type",sType); AddXMLIntAttribute("SELECTED",1,true); AddDBXMLIntTag("LINKID","LinkID"); AddDBXMLTag("Title","Title"); AddDBXMLDateTag("DATELINKED","DateLinked",false); int iDestinationID = SP.GetIntField("DestinationID"); AddXMLIntTag("DestinationID",iDestinationID); CloseXMLTag("LINK"); existinglinks.insert( std::make_pair(iDestinationID,sType) ); SP.MoveNext(); } } //Get Clippings. if ( m_InputContext.GetCurrentUser() ) { SP.GetUserLinks(m_InputContext.GetCurrentUser()->GetUserID(), "", true); while ( !SP.IsEOF() ) { //Add Link if not already tagged to text box. int iDestinationID = SP.GetIntField("DESTINATIONID"); CTDVString sType; SP.GetField("DestinationType", sType); std::set< std::pair<int,CTDVString> >::iterator iter_found = existinglinks.find(std::make_pair(iDestinationID,sType) ); if ( iter_found == existinglinks.end() ) { OpenXMLTag("LINK",true); AddXMLAttribute("Type",sType,true); AddDBXMLIntTag("LINKID","LinkID"); AddXMLIntTag("DESTINATIONID",iDestinationID); AddDBXMLTag("Title","Title"); AddDBXMLDateTag("DATELINKED","DateLinked"); CloseXMLTag("LINK"); } SP.MoveNext(); } } CloseXMLTag("LINKS"); return CreateFromXMLText(sXML); }
/********************************************************************************* bool CModeratePosts::GetPosts() Author: Martin Robb Created: 15/11/2005 Inputs: - Outputs: - Returns: true for success Purpose: Retrieves ( and locks to the viewing user ) posts for moderation. Only posts for sites where the viewer is a superuser/moderator/referee/Host are fetched. XML is also filtered depending on users permissions eg usernames are not visible to moderators. *********************************************************************************/ bool CModeratePosts::GetPosts( int iUserID, bool bAlerts, bool bReferrals, bool bLockedItems, bool bHeldItems, int iModClassId, int iPostId, int iShow, bool bFastMod ) { bool bSuperUser = m_InputContext.GetCurrentUser() && m_InputContext.GetCurrentUser()->GetIsSuperuser(); //Allow duplicate complaints only where a postId filter has been given. bool bDuplicateComplaints = bAlerts && iPostId > 0; //Get Posts for Moderation. CStoredProcedure SP; m_InputContext.InitialiseStoredProcedureObject(&SP); SP.GetModerationPosts( iUserID, bSuperUser, bAlerts, bReferrals, bHeldItems, bLockedItems, iModClassId, iPostId, bDuplicateComplaints, iShow, bFastMod ); CTDVString sXML; InitialiseXMLBuilder(&sXML,&SP); OpenXMLTag("POSTMODERATION", true ); if ( bAlerts ) AddXMLIntAttribute("ALERTS",1, false); if ( bReferrals ) AddXMLIntAttribute("REFERRALS",1, false); if ( bLockedItems ) AddXMLIntAttribute("LOCKEDITEMS",1, false); if ( bFastMod ) AddXMLIntAttribute("FASTMOD", 1, false); AddXMLIntAttribute("COUNT", SP.IsEOF() ? 0 : SP.GetIntField("count"), true ); while (!SP.IsEOF()) { OpenXMLTag("POST",true); AddDBXMLIntAttribute("EntryID","POSTID"); AddDBXMLIntAttribute("ModID","MODERATIONID"); AddDBXMLIntAttribute("ThreadId"); AddDBXMLIntAttribute("ForumId","FORUMID"); AddDBXMLIntAttribute("ISPREMODPOSTING","ISPREMODPOSTING",false); if (!(SP.IsNULL("CommentForumUrl"))) { //GenerateCommentForumPostUrl CTDVString sCommentForumUrl; SP.GetField("CommentForumUrl",sCommentForumUrl); int iEntryID = SP.GetIntField("Entryid"); int iCommentForumPostIndex = SP.GetIntField("PostIndex"); if (iCommentForumPostIndex >= 0) { int iCommentForumDefaultShow = m_InputContext.GetDefaultShow(SP.GetIntField("siteid")); int iDnaFrom = (iCommentForumPostIndex / iCommentForumDefaultShow) * iCommentForumDefaultShow; int iDnaTo = iDnaFrom + iCommentForumDefaultShow - 1; sCommentForumUrl << "?dnafrom=" << iDnaFrom << "&dnato=" << iDnaTo << "#P" << iEntryID; } AddXMLAttribute("COMMENTFORUMURL", sCommentForumUrl, false); } AddDBXMLIntAttribute("Parent","INREPLYTO",false,true); AddDBXMLIntTag("modclassId"); AddDBXMLIntTag("ThreadModerationStatus","MODERATION-STATUS"); int iSiteId = SP.GetIntField("siteid"); AddXMLIntTag("siteid",iSiteId); if ( !SP.IsNULL("TopicTitle") ) AddDBXMLTag("TopicTitle"); AddDBXMLTag("SUBJECT"); if (SP.GetIntField("PostStyle") != 1) { CTDVString sText; SP.GetField("TEXT", sText); CTDVString sRawText(sText); CXMLObject::DoPlainTextTranslations(&sText); AddXMLTag("TEXT", sText); CXMLObject::EscapeEverything(&sRawText); AddXMLTag("RAWTEXT", sRawText); } else { AddDBXMLTag("TEXT",NULL, true, false); } //Details of locking moderator. OpenXMLTag("LOCKED"); AddDBXMLDateTag("DATELOCKED"); OpenXMLTag("USER"); AddDBXMLIntTag("LOCKEDBY","USERID"); AddDBXMLTag("LOCKEDNAME","USERNAME",false); AddDBXMLTag("LOCKEDFIRSTNAMES", "FIRSTNAMES",false); AddDBXMLTag("LOCKEDLASTNAME","LASTNAME",false); CloseXMLTag("USER"); CloseXMLTag("LOCKED"); // Add Notes CTDVString sNotes; SP.GetField("Notes",sNotes); EscapeAllXML(&sNotes); AddXMLTag("NOTES",sNotes); int iComplainantID = 0; CTDVString sComplainantName; CTDVString sComplainantFirstNames; CTDVString sComplainantLastName; CTDVString sComplaintText; int iComplainantIDViaEmail = 0; CTDVDateTime dDateSubmitted; int iComplainantUserStatus= 0; CTDVDateTime dComplainantUserStatusDate; int iComplainantUserStatusDuration = 0; int iComplaintCount = 0; if ( bAlerts ) { iComplainantID = SP.GetIntField("ComplainantId"); SP.GetField("ComplainantName",sComplainantName); SP.GetField("ComplainantFirstNames",sComplainantFirstNames); SP.GetField("ComplainantLastName", sComplainantLastName); iComplainantIDViaEmail = SP.GetIntField("ComplainantIDViaEmail"); dDateSubmitted = SP.GetDateField("DateQueued"); SP.GetField("ComplaintText",sComplaintText); iComplainantUserStatus = SP.GetIntField("ComplainantPrefStatus"); if ( !SP.IsNULL("ComplainantPrefStatusChangedDate") ) { dComplainantUserStatusDate = SP.GetDateField("ComplainantPrefStatusChangedDate"); } iComplainantUserStatusDuration = SP.GetIntField("ComplainantPrefStatusDuration"); iComplaintCount = SP.GetIntField("complaintcount"); } int iReferrerID; CTDVString sReferrerName; CTDVString sReferrerFirstNames; CTDVString sReferrerLastName; int iReferrerStatus; CTDVDateTime dDateReferred; if ( bReferrals ) { iReferrerID = SP.GetIntField("ReferrerId"); SP.GetField("ReferrerName",sReferrerName); SP.GetField("ReferrerFirstNames",sReferrerFirstNames); SP.GetField("ReferrerLastName", sReferrerLastName); iReferrerStatus = SP.GetIntField("ReferrerStatus"); dDateReferred = SP.GetDateField("DateReferred"); } //Usernames are only visible by Editors / Superusers and Hosts. bool bIsSiteEditor = SP.GetIntField("IsEditor") == 1; bool bIsReferee = SP.GetIntField("IsReferee") == 1; bool bIsHost = SP.GetIntField("IsHost") == 1; bool bIncludeAuthorXML = bIsSiteEditor || bIsReferee || bIsHost || bSuperUser; if ( bIncludeAuthorXML ) { //User details of post editor. OpenXMLTag("USER"); int iAuthorID = SP.GetIntField("userid"); AddXMLIntTag("USERID",iAuthorID); AddDBXMLTag("username","USERNAME",false); AddDBXMLTag("firstnames","FIRSTNAMES",false); AddDBXMLTag("lastname","LASTNAME",false); //User Moderation Status if ( !SP.IsNULL("PrefStatus") ) { OpenXMLTag("STATUS", true); AddDBXMLIntAttribute("PrefStatus", "StatusID", false, false); AddDBXMLIntAttribute("PrefStatusDuration", "Duration", false, true); AddDBXMLDateTag("PrefStatusChangedDate","StatusChangedDate", false); CloseXMLTag("STATUS"); } //Add Author User Groups CTDVString sUserGroupsXML; m_InputContext.GetUserGroups(sUserGroupsXML,iAuthorID, iSiteId ); sXML += sUserGroupsXML; } //Get Member Tags. std::set<CTDVString> usermembertags; std::set<CTDVString> complainantmembertags; int iModID = SP.GetIntField("ModID"); while ( !SP.IsEOF() && (SP.GetIntField("ModID") == iModID) ) { if ( !SP.IsNULL("UserMemberTag") ) { CTDVString sUserMemberTag; SP.GetField("UserMemberTag",sUserMemberTag); if ( usermembertags.find(sUserMemberTag) == usermembertags.end() ) usermembertags.insert(sUserMemberTag); } if ( !SP.IsNULL("ComplainantMemberTag") ) { CTDVString sComplainantMemberTag; SP.GetField("ComplainantMemberTag",sComplainantMemberTag); if ( complainantmembertags.find(sComplainantMemberTag) == complainantmembertags.end() ) complainantmembertags.insert(sComplainantMemberTag); } SP.MoveNext(); } if ( !usermembertags.empty() ) { OpenXMLTag("USERMEMBERTAGS"); for ( std::set<CTDVString>::iterator iter = usermembertags.begin(); iter != usermembertags.end(); ++iter ) AddXMLTag("USERMEMBERTAG",*iter); CloseXMLTag("USERMEMBERTAGS"); } if ( bIncludeAuthorXML ) CloseXMLTag("USER"); //Create the XML from the gathered data. if ( bAlerts ) { OpenXMLTag("ALERT"); //Username only shown for editors/superusers/hosts OpenXMLTag("USER"); AddXMLIntTag("USERID",iComplainantID); AddXMLTag("USERNAME",sComplainantName); AddXMLTag("FIRSTNAMES", sComplainantFirstNames); AddXMLTag("LASTNAME", sComplainantLastName); AddXMLIntTag("COMPLAINANTIDVIAEMAIL", iComplainantIDViaEmail); //User Moderation Status if ( !SP.IsNULL("PrefStatus") ) { OpenXMLTag("STATUS", true); AddXMLIntAttribute("STATUSID", iComplainantUserStatus, false); AddXMLIntAttribute("DURATION", iComplainantUserStatusDuration, true); AddXMLDateTag("STATUSCHANGEDDATE", dComplainantUserStatusDate, false); CloseXMLTag("STATUS"); } //Add the member tags. if ( !complainantmembertags.empty() ) { OpenXMLTag("USERMEMBERTAGS"); for ( std::set<CTDVString>::iterator iter = complainantmembertags.begin(); iter != complainantmembertags.end(); ++iter ) AddXMLTag("USERMEMBERTAG",*iter); CloseXMLTag("USERMEMBERTAGS"); } //Add Complainant User Groups CTDVString sUserGroupsXML; m_InputContext.GetUserGroups(sUserGroupsXML,iComplainantID, iSiteId ); sXML += sUserGroupsXML; CloseXMLTag("USER"); CXMLObject::DoPlainTextTranslations(&sComplaintText); AddXMLTag("TEXT",sComplaintText); AddXMLDateTag("DATEQUEUED",dDateSubmitted); AddXMLIntTag("ALERTCOUNT", iComplaintCount); CloseXMLTag("ALERT"); } if ( bReferrals ) { OpenXMLTag("REFERRED"); //Only referrees / editors / superusers can see referred items - stored procedure checks permissions. OpenXMLTag("USER"); AddXMLIntTag("USERID",iReferrerID); AddXMLTag("USERNAME",sReferrerName); AddXMLTag("FIRSTNAMES", sReferrerFirstNames); AddXMLTag("LASTNAME", sReferrerLastName); AddXMLIntTag("STATUS",iReferrerStatus); CloseXMLTag("USER"); AddXMLDateTag("DATEREFERRED",dDateReferred); CloseXMLTag("REFERRED"); } CloseXMLTag("POST"); } CloseXMLTag("POSTMODERATION"); return CreateFromXMLText(sXML); }