Tags:
compatibility1Add my vote for this tag development1Add my vote for this tag plugin1Add my vote for this tag create new tag
view all tags

Plugins Conformance Report

The Plugins Conformance Report is automatically generated by a script to show the degree Plugins adhere to the official Plugins API (TWiki::Func and callbacks). The report is run against the sources in the Subversion repository.

ALERT! Note: A number of plugins have conditional code that allows them to run on more than one TWiki version. The report does not account for that; that is, some plugins may conform even though they fail one or more tests.

This report was script-generated on Mon May 8 00:56:56 EDT 2006

The goal of the analysis is to determine conformance to standards.

Handlers defined by modules

Handlers in red are deprecated
HandlerModules
afterCommonTagsHandlerVarCachePlugin
afterEditHandlerActionTrackerPlugin, HiddenTextPlugin, TranslateTagPlugin, XmlQueryPlugin
afterSaveHandlerCacheContentPlugin, DBCachePlugin, DBCachePlugin, FlowchartPlugin, ImmediateNotifyPlugin, IrcPlugin, PublishWebPlugin, XpTrackerPlugin
beforeAttachmentSaveHandlerBatchUploadPlugin, MaxImageSizePlugin, MsOfficeAttachmentsAsHTMLPlugin, RevCommentPlugin
beforeCommonTagsHandlerBibtexPlugin, PreferencesPlugin, TopicTranslationsPlugin, VarCachePlugin, WysiwygPlugin
beforeEditHandlerActionTrackerPlugin, ApprovalPlugin, DateFieldPlugin, EmbedTopicPlugin, HiddenTextPlugin, HideInEditModePlugin, PowerEditPlugin, TranslateTagPlugin, WorkflowPlugin, WysiwygPlugin
beforeSaveHandlerActionTrackerPlugin, AddMetaPlugin, AntiWikiSpamPlugin, ApprovalPlugin, BlackListPlugin, CommentPlugin, EmbedTopicPlugin, HideInEditModePlugin, MrdIdPlugin, NavbarPlugin, NewTopicEventPlugin, NewsPlugin, NotificationPlugin, NotifyOnChildModificationTopic, RevCommentPlugin, SlideNavPlugin, TopicCreatePlugin, URLCachePlugin, WebDAVPlugin, WysiwygPlugin, XmlQueryPlugin
commonTagsHandlerActionTrackerPlugin, AdvertsPlugin, AgentPlugin, AlbumOfSnapsPlugin, AliasPlugin, ApprovalPlugin, BarcodePlugin, BeautifierPlugin, BibtexPlugin, BlackListPlugin, BlogPlugin, BugzillaLinkPlugin, BugzillaQueryPlugin, CalendarPlugin, CategoryPlugin, ChartPlugin, ChecklistPlugin, ChildTopicTemplatePlugin, CommentPlugin, CompareRevisionsAddOn, ConditionalPlugin, ContributorsPlugin, ControlsPlugin, CounterPlugin, DatabasePlugin, DateTimePlugin, DefaultPlugin, DirectedGraphPlugin, DirectedGraphWebMapPlugin, DiskUsagePlugin, DoxygenPlugin, EFetchPlugin, EasyTimelinePlugin, EditInTablePlugin, EditTablePlugin, EditTablerowPlugin, EmbedBibPlugin, EmbedFlashPlugin, EmbedPDFPlugin, EmbedPlugin, EmbedQTPlugin, EmbedTopicPlugin, ExifMetaDataPlugin, ExternalLinkPlugin, FakeBasicAuthRegPlugin, FileListPlugin, FilterPlugin, FlowchartPlugin, FundraisingPlugin, GaugePlugin, GenPDFLatexAddOn, GlobalReplacePlugin, GluePlugin, GoogleSearchPlugin, GpgkeyPlugin, GuidPlugin, HeadlinesPlugin, HiddenTextPlugin, HideInEditModePlugin, HistoryPlugin, HolidaylistPlugin, IfDefinedPlugin, ImageGalleryPlugin, IncludeIndexPlugin, IncludeRevisionPlugin, LDAPPasswordChangerPlugin, LatexModePlugin, LdapPlugin, LinkOptionsPlugin, LocalCityTimePlugin, LocalTimePlugin, MacrosPlugin, MailReminderPlugin, MailToTWikiAddOn, MaketextCompatibilityPlugin, MessageBoardPlugin, MovableTypePlugin, MrdIdPlugin, MultiLangPlugin, NatSkinPlugin, NavPlugin, NetgrepPlugin, NotificationPlugin, PatentLinkPlugin, PeerPlugin, PerlDocPlugin, PerlSamplePlugin, PhantomPlugin, PhotoarchivePlugin, PollPlugin, ProjectPlannerPlugin, PseudoXmlPlugin, PublishWebPlugin, QuickCalendarPlugin, QuickSearchPlugin, RandomQuotePlugin, RandomTopicPlugin, RedDotPlugin, RedirectPlugin, RevCommentPlugin, RevRecoverPlugin, RevisionLinkPlugin, RollupPlugin, SablotronPlugin, SearchToTablePlugin, SecurityPlugin, SingletonWikiWordPlugin, SlideNavPlugin, SlideShowPlugin, SlidyPlugin, SmiliesPlugin, SnmpCommandPlugin, SourceHighlightPlugin, SpreadSheetPlugin, SuggestLinksPlugin, SvgPlugin, TWikiDrawPlugin, TWikiDrawSvgPlugin, TWikiReleaseTrackerPlugin, TestFixturePlugin, TextSectionPlugin, TigerSkinPlugin, TodaysVisitorsPlugin, TopicReadersPlugin, TopicReferencePlugin, TopicTranslationsPlugin, TopicVarsPlugin, TouchGraphPlugin, TreePlugin, UpdateInfoPlugin, UserInfoPlugin, VersionLinkPlugin, VotePlugin, WeatherPlugin, XmlQueryPlugin, XpTrackerPlugin
earlyInitPluginLoginNameAliasesPlugin
endRenderingHandlerAliasPlugin, BibtexPlugin, BlackListPlugin, ChecklistPlugin, ChildTopicTemplatePlugin, LaTeXToMathMLPlugin, LatexModePlugin, MathModePlugin, MultiEditPlugin, NatSkinPlugin, NavbarPlugin, ProtocolTlaPlugin, RecursiveRenderPlugin, RedDotPlugin, SlashFilenamePlugin, TypographyPlugin, WysiwygPlugin, XmlXslPlugin
initPluginActionTrackerPlugin, AddDBMGroupPlugin, AddMetaPlugin, AdvertsPlugin, AgentPlugin, AlbumOfSnapsPlugin, AliasPlugin, AntiWikiSpamPlugin, ApprovalPlugin, BarcodePlugin, BatchUploadPlugin, BeautifierPlugin, BibliographyPlugin, BibtexPlugin, BlackListPlugin, BlogPlugin, BugzillaLinkPlugin, BugzillaQueryPlugin, CacheContentPlugin, CalendarPlugin, CategoryPlugin, ChartPlugin, ChecklistPlugin, ChildTopicTemplatePlugin, CommentPlugin, CompareRevisionsAddOn, ConditionalPlugin, ContributorsPlugin, ControlsPlugin, CounterPlugin, DBCachePlugin, DatabasePlugin, DateFieldPlugin, DateTimePlugin, DefaultPlugin, DirectedGraphPlugin, DirectedGraphWebMapPlugin, DiskUsagePlugin, DoxygenPlugin, EFetchPlugin, EasyTimelinePlugin, EditInTablePlugin, EditTablePlugin, EditTablerowPlugin, EmbedBibPlugin, EmbedFlashPlugin, EmbedPDFPlugin, EmbedPlugin, EmbedQTPlugin, EmbedTopicPlugin, EmptyPlugin, EncryptedPagesPlugin, ExifMetaDataPlugin, ExplicitNumberingPlugin, ExtTopicListPlugin, ExtendedSelectPlugin, ExternalLinkPlugin, FakeBasicAuthRegPlugin, FamilyTreePlugin, FileListPlugin, FilterPlugin, FindElsewherePlugin, FlowchartPlugin, FormFieldListPlugin, FormFieldsPlugin, FormPivotPlugin, FormQueryPlugin, FundraisingPlugin, GaugePlugin, GenPDFLatexAddOn, GenerateSearchPlugin, GlobalReplacePlugin, GluePlugin, GnuPlotPlugin, GoogleSearchPlugin, GpgkeyPlugin, GuidPlugin, HeadlinesPlugin, HiddenTextPlugin, HideInEditModePlugin, HistoryPlugin, HolidaylistPlugin, IfDefinedPlugin, ImageGalleryPlugin, ImgPlugin, ImmediateNotifyPlugin, IncludeIndexPlugin, IncludeRevisionPlugin, InterwikiPlugin, IrcLogPlugin, IrcPlugin, LDAPPasswordChangerPlugin, LaTeXToMathMLPlugin, LatexModePlugin, LdapPlugin, LinkOptionsPlugin, LocalCityTimePlugin, LocalTimePlugin, LoginNameAliasesPlugin, MacrosPlugin, MailReminderPlugin, MailToTWikiAddOn, MaketextCompatibilityPlugin, MathModePlugin, MaxImageSizePlugin, MessageBoardPlugin, MoreVarsPlugin, MovableTypePlugin, MrdIdPlugin, MsOfficeAttachmentsAsHTMLPlugin, MultiEditPlugin, MultiLangPlugin, NatSkinPlugin, NavPlugin, NavbarPlugin, NetgrepPlugin, NewTopicEventPlugin, NewsPlugin, NotificationPlugin, NotifyOnChildModificationTopic, PageStatsPlugin, PatentLinkPlugin, PeerPlugin, PerlDocPlugin, PerlSamplePlugin, PhantomPlugin, PhotoarchivePlugin, PloticusPlugin, PollPlugin, PowerEditPlugin, PreferencesPlugin, ProjectPlannerPlugin, ProtocolTlaPlugin, PseudoXmlPlugin, PublishWebPlugin, QuickCalendarPlugin, QuickSearchPlugin, RandomQuotePlugin, RandomTopicPlugin, RecursiveRenderPlugin, RedDotPlugin, RedirectPlugin, RenderListPlugin, RevCommentPlugin, RevRecoverPlugin, RevisionLinkPlugin, RollupPlugin, SablotronPlugin, SearchToTablePlugin, SectionalEditPlugin, SecurityPlugin, SingletonWikiWordPlugin, SlashFilenamePlugin, SlideNavPlugin, SlideShowPlugin, SlidyPlugin, SmiliesPlugin, SnmpCommandPlugin, SoapClientPlugin, SourceHighlightPlugin, SpacedWikiWordPlugin, SpreadSheetPlugin, StylePlugin, SuggestLinksPlugin, SvgPlugin, SyntaxHighlightingPlugin, TWikiDrawPlugin, TWikiDrawSvgPlugin, TWikiReleaseTrackerPlugin, TablePlugin, TagCloudPlugin, TestFixturePlugin, TextSectionPlugin, ThreadedDiscussionPlugin, TigerSkinPlugin, TimeSincePlugin, TocPlugin, TodaysVisitorsPlugin, ToolTipPlugin, TopicCreatePlugin, TopicReadersPlugin, TopicReferencePlugin, TopicTranslationsPlugin, TopicVarsPlugin, TouchGraphPlugin, TranslateTagPlugin, TreeBrowserPlugin, TreePlugin, TwistyPlugin, TypographyPlugin, URLCachePlugin, UpdateInfoPlugin, UserInfoPlugin, VarCachePlugin, VersionLinkPlugin, VotePlugin, WeatherPlugin, WebDAVPlugin, WebPermissionsPlugin, WorkflowPlugin, WysiwygPlugin, XmlQueryPlugin, XmlXslPlugin, XpTrackerPlugin
initializeUserHandlerLoginNameAliasesPlugin
insidePREHandlerPerlSamplePlugin, TestFixturePlugin
modifyHeaderHandlerWysiwygPlugin
outsidePREHandlerAliasPlugin, EncryptedPagesPlugin, ExplicitNumberingPlugin, FileListPlugin, FormPivotPlugin, LaTeXToMathMLPlugin, MathModePlugin, MovableTypePlugin, PerlSamplePlugin, RandomQuotePlugin, StylePlugin, TestFixturePlugin, TodaysVisitorsPlugin
postRenderingHandlerAliasPlugin, BibtexPlugin, BlackListPlugin, BlogPlugin, ChecklistPlugin, EditTablePlugin, LatexModePlugin, NatSkinPlugin, PreferencesPlugin, RedDotPlugin, TestFixturePlugin, ToolTipPlugin, WysiwygPlugin
preRenderingHandlerAliasPlugin, BibliographyPlugin, InterwikiPlugin, SmiliesPlugin, TablePlugin, TestFixturePlugin
redirectCgiQueryHandlerRedDotPlugin
registrationHandlerAddDBMGroupPlugin, FakeBasicAuthRegPlugin
renderFormFieldForEditHandlerDateFieldPlugin, ExtendedSelectPlugin, FormFieldsPlugin
renderWikiWordHandlerSpacedWikiWordPlugin
startRenderingHandlerEditInTablePlugin, ExplicitNumberingPlugin, FileListPlugin, FindElsewherePlugin, LaTeXToMathMLPlugin, MovableTypePlugin, MultiEditPlugin, MultiLangPlugin, RandomQuotePlugin, RecursiveRenderPlugin, RenderListPlugin, SectionalEditPlugin, SoapClientPlugin, StylePlugin, SyntaxHighlightingPlugin, ThreadedDiscussionPlugin, TigerSkinPlugin, TocPlugin, TodaysVisitorsPlugin, TreeBrowserPlugin, TypographyPlugin
writeHeaderHandlerWysiwygPlugin

Calls to TWiki symbols not published through TWiki::Func

SymbolCallsCallers
TWiki::securityFilter9IncludeIndexPlugin LoginNameAliasesPlugin QuickSearchPlugin TWikiReleaseTrackerPlugin TopicVarsPlugin VotePlugin
TWiki::wikiName7NotificationPlugin
TWiki::webName7AlbumOfSnapsPlugin IrcLogPlugin PageStatsPlugin QuickSearchPlugin SearchToTablePlugin WysiwygPlugin
TWiki::sharedSandbox6BibtexPlugin DirectedGraphPlugin EasyTimelinePlugin GnuPlotPlugin NatSkinPlugin PloticusPlugin
TWiki::pubUrlPath6NavbarPlugin
TWiki::handleIncludeFile5EFetchPlugin PeerPlugin TodaysVisitorsPlugin
TWiki::Form5ControlsPlugin EditContrib GenerateSearchPlugin PreferencesPlugin
TWiki::userToWikiName5NotificationPlugin PeerPlugin SearchToTablePlugin
TWiki::normalizeFileName5ImageGalleryPlugin VotePlugin
TWiki::RELEASE5IfDefinedPlugin ImageGalleryPlugin NatSkinPlugin RedDotPlugin UserInfoPlugin
TWiki::Prefs::formatAsFlag4LoginNameAliasesPlugin ThreadedDiscussionPlugin
TWiki::addScript4FormFieldsPlugin
TWiki::cmdQuote4QuickSearchPlugin SearchToTablePlugin
TWiki::OopsException4AntiWikiSpamPlugin CommentPlugin EditContrib EditTablePlugin
TWiki::Store::saveTopic3BatchUploadPlugin EditInTablePlugin NotificationPlugin
TWiki::topicName3AlbumOfSnapsPlugin IrcLogPlugin PageStatsPlugin
TWiki::urlDecode3DBCachePlugin ExtendedSelectPlugin
TWiki::handleNativeUrlEncode3FileListPlugin
TWiki::User3FuncUsersContrib
TWiki::UI::run3SchedulerContrib TWikiPluginInstallerContrib
TWiki::fgrepCmd3GenPDFAddOn LatexModePlugin QuickSearchPlugin
TWiki::Store::getRevisionInfo3NatSkinPlugin RevisionLinkPlugin
TWiki::Prefs::getPreferencesValue3EditContrib MaxImageSizePlugin
TWiki::initialize3EditContrib GenPDFAddOn GenPDFLatexAddOn
TWiki::AccessControlException3ChecklistPlugin MailInContrib
TWiki::mainWebname3ApprovalPlugin PeerPlugin
TWiki::wikiToUserList2PeerPlugin
TWiki::formatTime2FileListPlugin PeerPlugin
TWiki::wikiversion2IfDefinedPlugin NatSkinPlugin
TWiki::entityDecode2EditContrib
TWiki::urlEncode2DefaultPlugin
TWiki::entityEncode2EditContrib
TWiki::useLocale2EncryptedPagesPlugin FindElsewherePlugin
TWiki::logDir2TopicReadersPlugin
TWiki::Cache::invalidateEntry2VotePlugin
TWiki::wikiToUserName2PeerPlugin
TWiki::UI::oops2BatchUploadPlugin EditContrib
TWiki::UI::webExists2GenPDFLatexAddOn
TWiki::Store::getRevisionNumber2NatSkinPlugin PeerPlugin
TWiki::Store::writeLog2BlackListPlugin EditContrib
TWiki::Render::encodeSpecialChars2EditContrib
TWiki::handleIncludeUrl2MovableTypePlugin
TWiki::numberOfRevisions2NatSkinPlugin
TWiki::getTWikiLibDir2ChartPlugin VotePlugin
TWiki::Access::checkAccessPermission2PeerPlugin SearchToTablePlugin
TWiki::egrepCmd2QuickSearchPlugin SearchToTablePlugin
TWiki::Store::readTemplate2GenPDFLatexAddOn
TWiki::pubDir2DiskUsagePlugin
TWiki::Store::getRevisionInfoFromMeta2NatSkinPlugin SearchToTablePlugin
TWiki::UI::Preview::preview2EditContrib
TWiki::logFilename2TodaysVisitorsPlugin UserInfoPlugin
TWiki::Render::decodeSpecialChars2EditContrib
TWiki::Form::getFormDef2EditContrib EditTablerowPlugin
TWiki::getEmailOfUser2ImmediateNotifyPlugin NotificationPlugin
TWiki::mixedAlphaNum1BatchUploadPlugin
TWiki::defaultUrlHost1ImageGalleryPlugin
TWiki::handleUrlParam1EditContrib
TWiki::User::CheckUserPasswd1NatSkinPlugin
TWiki::Search::searchWeb1FormPivotPlugin
TWiki::Store::readTemplateTopic1BatchUploadPlugin
TWiki::handleSearchWeb1ControlsPlugin
TWiki::UI::Upload::updateAttachment1BatchUploadPlugin
TWiki::Store::getAllWebs1WebDAVPlugin
TWiki::htmldocCmd1GenPDFAddOn
TWiki::templateDir1TWikiDrawSvgPlugin
TWiki::Form::_getPossibleFieldValues1ControlsPlugin
TWiki::Prefs::Parser1LoginNameAliasesPlugin
TWiki::UI::Statistics::statistics1SchedulerContrib
TWiki::wikiUsersTopicname1UserInfoPlugin
TWiki::getOopsUrl1EditContrib
TWiki::writeWarning1MailInContrib
TWiki::isoMonth1TodaysVisitorsPlugin
TWiki::Client::expireDeadSessions1SchedulerContrib
TWiki::Access::htpasswdExistUser1NatSkinPlugin
TWiki::superAdminGroup1GlobalReplacePlugin
TWiki::Form::chooseFormButton1EditContrib
TWiki::wikiPrefsTopicname1WebDAVPlugin
TWiki::User::UserPasswordExists1NatSkinPlugin
TWiki::Store::readTopMeta1UpdateInfoPlugin
TWiki::Store::getRevisionNumberX1RevisionLinkPlugin
TWiki::Form::getFormDefinition1FormPivotPlugin
TWiki::warningFilename1DiskUsagePlugin
TWiki::userToWikiList1LoginNameAliasesPlugin
TWiki::getEmailNotifyList1NotifyOnChildModificationTopic
TWiki::isWikiName1ProjectPlannerPlugin
TWiki::Access::htpasswdCheckPasswd1NatSkinPlugin
TWiki::Store::getWebTopic1SablotronPlugin
TWiki::webPrefsTopicname1WebDAVPlugin
TWiki::urlHost1PeerPlugin
TWiki::writeDebug1TWikiShellContrib
TWiki::useLoginNameAliasesPlugin1LoginNameAliasesPlugin
TWiki::Store1MultiLangPlugin
TWiki::wikiUserName1SearchToTablePlugin
TWiki::Form::fieldVars2Meta1EditContrib
TWiki::getPubDir1EmbedBibPlugin
TWiki::Rhinos1BuildContrib
TWiki::uploadFilter1BatchUploadPlugin
TWiki::Client::clearSessionValue1RedDotPlugin
TWiki::Prefs1PublishContrib
TWiki::doSecureInclude1IncludeIndexPlugin
TWiki::mimeTypesFilename1ImageGalleryPlugin
TWiki::User::AddUserPassword1FakeBasicAuthRegPlugin
TWiki::Prefs::getPrefsFromTopic1NatSkinPlugin
TWiki::Attach::filenameToIcon1FileListPlugin
TWiki::noSpamPadding1NatSkinPlugin
TWiki::debugFilename1DiskUsagePlugin
TWiki::isValidWikiWord1XpTrackerPlugin
TWiki::Access::htpasswdReadPasswd1NatSkinPlugin
TWiki::Store::saveFile1NavbarPlugin
TWiki::scriptUrlPath1DatabasePlugin
TWiki::doLogTopicEdit1EditContrib

Analysis of possibly illegal references

ModuleSymbolFile (calls)
AlbumOfSnapsPluginTWiki::webNamelib/TWiki/Plugins/AlbumOfSnapsPlugin.pm (1)
TWiki::topicNamelib/TWiki/Plugins/AlbumOfSnapsPlugin.pm (1)
AntiWikiSpamPluginTWiki::OopsExceptionlib/TWiki/Plugins/AntiWikiSpamPlugin.pm (1)
ApprovalPluginTWiki::mainWebnamelib/TWiki/Plugins/ApprovalPlugin.pm (1)
BatchUploadPluginTWiki::Store::saveTopiclib/TWiki/Plugins/BatchUploadPlugin.pm (1)
TWiki::UI::oopslib/TWiki/Plugins/BatchUploadPlugin.pm (1)
TWiki::uploadFilterlib/TWiki/Plugins/BatchUploadPlugin.pm (1)
TWiki::UI::Upload::updateAttachmentlib/TWiki/Plugins/BatchUploadPlugin.pm (1)
TWiki::mixedAlphaNumlib/TWiki/Plugins/BatchUploadPlugin.pm (1)
TWiki::Store::readTemplateTopiclib/TWiki/Plugins/BatchUploadPlugin.pm (1)
BibtexPluginTWiki::sharedSandboxlib/TWiki/Plugins/BibtexPlugin.pm (1)
BlackListPluginTWiki::Store::writeLoglib/TWiki/Plugins/BlackListPlugin.pm (1)
BuildContribTWiki::Rhinoslib/TWiki/Contrib/Build.pm (1)
ChartPluginTWiki::getTWikiLibDirlib/TWiki/Plugins/ChartPlugin.pm (1)
ChecklistPluginTWiki::AccessControlExceptionlib/TWiki/Plugins/ChecklistPlugin.pm (2)
CommentPluginTWiki::OopsExceptionlib/TWiki/Plugins/CommentPlugin/Comment.pm (1)
ControlsPluginTWiki::Formlib/TWiki/Plugins/ControlsPlugin.pm (1)
TWiki::handleSearchWeblib/TWiki/Plugins/ControlsPlugin.pm (1)
TWiki::Form::_getPossibleFieldValueslib/TWiki/Plugins/ControlsPlugin.pm (1)
DBCachePluginTWiki::urlDecodelib/TWiki/Plugins/DBCachePlugin/WebDB.pm (2)
DatabasePluginTWiki::scriptUrlPathlib/TWiki/Plugins/DatabasePlugin.pm (1)
DefaultPluginTWiki::urlEncodelib/TWiki/Plugins/DefaultPlugin.pm (2)
DirectedGraphPluginTWiki::sharedSandboxlib/TWiki/Plugins/DirectedGraphPlugin.pm (1)
DiskUsagePluginTWiki::pubDirlib/TWiki/Plugins/DiskUsagePlugin.pm (2)
TWiki::warningFilenamelib/TWiki/Plugins/DiskUsagePlugin.pm (1)
TWiki::debugFilenamelib/TWiki/Plugins/DiskUsagePlugin.pm (1)
EFetchPluginTWiki::handleIncludeFilelib/TWiki/Plugins/EFetchPlugin.pm (2)
EasyTimelinePluginTWiki::sharedSandboxlib/TWiki/Plugins/EasyTimelinePlugin.pm (1)
EditContribTWiki::Formlib/TWiki/Contrib/EditContrib.pm (1)
TWiki::OopsExceptionlib/TWiki/Contrib/EditContrib.pm (1)
TWiki::initializelib/TWiki/Contrib/EditContrib.pm (1)
TWiki::Prefs::getPreferencesValuelib/TWiki/Contrib/EditContrib.pm (2)
TWiki::UI::oopslib/TWiki/Contrib/EditContrib.pm (1)
TWiki::Store::writeLoglib/TWiki/Contrib/EditContrib.pm (1)
TWiki::Render::encodeSpecialCharslib/TWiki/Contrib/EditContrib.pm (2)
TWiki::entityDecodelib/TWiki/Contrib/EditContrib.pm (2)
TWiki::UI::Preview::previewlib/TWiki/Contrib/EditContrib.pm (2)
TWiki::entityEncodelib/TWiki/Contrib/EditContrib.pm (2)
TWiki::Render::decodeSpecialCharslib/TWiki/Contrib/EditContrib.pm (2)
TWiki::Form::getFormDeflib/TWiki/Contrib/EditContrib.pm (1)
TWiki::Form::fieldVars2Metalib/TWiki/Contrib/EditContrib.pm (1)
TWiki::handleUrlParamlib/TWiki/Contrib/EditContrib.pm (1)
TWiki::getOopsUrllib/TWiki/Contrib/EditContrib.pm (1)
TWiki::Form::chooseFormButtonlib/TWiki/Contrib/EditContrib.pm (1)
TWiki::doLogTopicEditlib/TWiki/Contrib/EditContrib.pm (1)
EditInTablePluginTWiki::Store::saveTopiclib/TWiki/Plugins/EditInTablePlugin.pm (1)
EditTablePluginTWiki::OopsExceptionlib/TWiki/Plugins/EditTablePlugin/Core.pm (1)
EditTablerowPluginTWiki::Form::getFormDeflib/TWiki/Plugins/EditTablerowPlugin.pm (1)
EmbedBibPluginTWiki::getPubDirlib/TWiki/Plugins/EmbedBibPlugin.pm (1)
EncryptedPagesPluginTWiki::useLocalelib/TWiki/Plugins/EncryptedPagesPlugin.pm (1)
ExtendedSelectPluginTWiki::urlDecodelib/TWiki/Plugins/ExtendedSelectPlugin.pm (1)
FakeBasicAuthRegPluginTWiki::User::AddUserPasswordlib/TWiki/Plugins/FakeBasicAuthRegPlugin.pm (1)
FileListPluginTWiki::handleNativeUrlEncodelib/TWiki/Plugins/FileListPlugin.pm (3)
TWiki::formatTimelib/TWiki/Plugins/FileListPlugin.pm (1)
TWiki::Attach::filenameToIconlib/TWiki/Plugins/FileListPlugin.pm (1)
FindElsewherePluginTWiki::useLocalelib/TWiki/Plugins/FindElsewherePlugin.pm (1)
FormFieldsPluginTWiki::addScriptlib/TWiki/Plugins/FormFieldsPlugin.pm (4)
FormPivotPluginTWiki::Form::getFormDefinitionlib/TWiki/Plugins/FormPivotPlugin.pm (1)
TWiki::Search::searchWeblib/TWiki/Plugins/FormPivotPlugin.pm (1)
FuncUsersContribTWiki::Userlib/TWiki/Contrib/FuncUsersContrib.pm (3)
GenPDFAddOnTWiki::initializelib/TWiki/Contrib/GenPDF.pm (1)
TWiki::fgrepCmdlib/TWiki/Contrib/GenPDF.pm (1)
TWiki::htmldocCmdlib/TWiki/Contrib/GenPDF.pm (1)
GenPDFLatexAddOnTWiki::initializelib/TWiki/Contrib/GenPDFLatex.pm (1)
TWiki::UI::webExistslib/TWiki/Contrib/GenPDFLatex.pm (2)
TWiki::Store::readTemplatelib/TWiki/Contrib/GenPDFLatex.pm (2)
GenerateSearchPluginTWiki::Formlib/TWiki/Plugins/GenerateSearchPlugin.pm (2)
GlobalReplacePluginTWiki::superAdminGrouplib/TWiki/Plugins/GlobalReplacePlugin.pm (1)
GnuPlotPluginTWiki::sharedSandboxlib/TWiki/Plugins/GnuPlotPlugin/Plot.pm (1)
IfDefinedPluginTWiki::RELEASElib/TWiki/Plugins/IfDefinedPlugin.pm (1)
TWiki::wikiversionlib/TWiki/Plugins/IfDefinedPlugin.pm (1)
ImageGalleryPluginTWiki::normalizeFileNamelib/TWiki/Plugins/ImageGalleryPlugin/Core.pm (2)
TWiki::RELEASElib/TWiki/Plugins/ImageGalleryPlugin/Core.pm (1)
TWiki::defaultUrlHostlib/TWiki/Plugins/ImageGalleryPlugin/Core.pm (1)
TWiki::mimeTypesFilenamelib/TWiki/Plugins/ImageGalleryPlugin/Core.pm (1)
ImmediateNotifyPluginTWiki::getEmailOfUserlib/TWiki/Plugins/ImmediateNotifyPlugin/SMTP.pm (1)
IncludeIndexPluginTWiki::securityFilterlib/TWiki/Plugins/IncludeIndexPlugin.pm (2)
TWiki::doSecureIncludelib/TWiki/Plugins/IncludeIndexPlugin.pm (1)
IrcLogPluginTWiki::webNamelib/TWiki/Plugins/IrcLogPlugin.pm (1)
TWiki::topicNamelib/TWiki/Plugins/IrcLogPlugin.pm (1)
LatexModePluginTWiki::fgrepCmdlib/TWiki/Plugins/LatexModePlugin.pm (1)
LoginNameAliasesPluginTWiki::securityFilterlib/TWiki/Plugins/LoginNameAliasesPlugin.pm (1)
TWiki::Prefs::formatAsFlaglib/TWiki/Plugins/LoginNameAliasesPlugin.pm (1)
TWiki::userToWikiListlib/TWiki/Plugins/LoginNameAliasesPlugin.pm (1)
TWiki::Prefs::Parserlib/TWiki/Plugins/LoginNameAliasesPlugin.pm (1)
TWiki::useLoginNameAliasesPluginlib/TWiki/Plugins/LoginNameAliasesPlugin.pm (1)
MailInContribTWiki::AccessControlExceptionlib/TWiki/Contrib/MailInContrib.pm (1)
TWiki::writeWarninglib/TWiki/Contrib/MailInContrib.pm (1)
MaxImageSizePluginTWiki::Prefs::getPreferencesValuelib/TWiki/Plugins/MaxImageSizePlugin.pm (1)
MovableTypePluginTWiki::handleIncludeUrllib/TWiki/Plugins/MovableTypePlugin.pm (2)
MultiLangPluginTWiki::Storelib/TWiki/Plugins/MultiLangPlugin.pm (1)
NatSkinPluginTWiki::sharedSandboxlib/TWiki/Plugins/NatSkinPlugin/Search.pm (1)
TWiki::RELEASElib/TWiki/Plugins/NatSkinPlugin.pm (1)
TWiki::Store::getRevisionInfolib/TWiki/Plugins/NatSkinPlugin.pm (2)
TWiki::Store::getRevisionInfoFromMetalib/TWiki/Plugins/NatSkinPlugin/Search.pm (1)
TWiki::Store::getRevisionNumberlib/TWiki/Plugins/NatSkinPlugin.pm (1)
TWiki::wikiversionlib/TWiki/Plugins/NatSkinPlugin.pm (1)
TWiki::numberOfRevisionslib/TWiki/Plugins/NatSkinPlugin.pm (2)
TWiki::Prefs::getPrefsFromTopiclib/TWiki/Plugins/NatSkinPlugin/Auth.pm (1)
TWiki::Access::htpasswdCheckPasswdlib/TWiki/Plugins/NatSkinPlugin/Auth.pm (1)
TWiki::User::UserPasswordExistslib/TWiki/Plugins/NatSkinPlugin/Auth.pm (1)
TWiki::noSpamPaddinglib/TWiki/Plugins/NatSkinPlugin/Search.pm (1)
TWiki::User::CheckUserPasswdlib/TWiki/Plugins/NatSkinPlugin/Auth.pm (1)
TWiki::Access::htpasswdReadPasswdlib/TWiki/Plugins/NatSkinPlugin/Auth.pm (1)
TWiki::Access::htpasswdExistUserlib/TWiki/Plugins/NatSkinPlugin/Auth.pm (1)
NavbarPluginTWiki::pubUrlPathlib/TWiki/Plugins/NavbarPlugin.pm (6)
TWiki::Store::saveFilelib/TWiki/Plugins/NavbarPlugin.pm (1)
NotificationPluginTWiki::wikiNamelib/TWiki/Plugins/NotificationPlugin.pm (7)
TWiki::userToWikiNamelib/TWiki/Plugins/NotificationPlugin.pm (1)
TWiki::Store::saveTopiclib/TWiki/Plugins/NotificationPlugin.pm (1)
TWiki::getEmailOfUserlib/TWiki/Plugins/NotificationPlugin.pm (1)
NotifyOnChildModificationTopicTWiki::getEmailNotifyListlib/TWiki/Plugins/NotifyOnChildModificationPlugin.pm (1)
PageStatsPluginTWiki::webNamelib/TWiki/Plugins/PageStatsPlugin.pm (1)
TWiki::topicNamelib/TWiki/Plugins/PageStatsPlugin.pm (1)
PeerPluginTWiki::handleIncludeFilelib/TWiki/Plugins/PeerPlugin.pm (1)
TWiki::userToWikiNamelib/TWiki/Plugins/PeerPlugin.pm (3)
TWiki::mainWebnamelib/TWiki/Plugins/PeerPlugin.pm (2)
TWiki::Access::checkAccessPermissionlib/TWiki/Plugins/PeerPlugin.pm (1)
TWiki::wikiToUserNamelib/TWiki/Plugins/PeerPlugin.pm (2)
TWiki::wikiToUserListlib/TWiki/Plugins/PeerPlugin.pm (2)
TWiki::formatTimelib/TWiki/Plugins/PeerPlugin.pm (1)
TWiki::Store::getRevisionNumberlib/TWiki/Plugins/PeerPlugin.pm (1)
TWiki::urlHostlib/TWiki/Plugins/PeerPlugin.pm (1)
PloticusPluginTWiki::sharedSandboxlib/TWiki/Plugins/PloticusPlugin/Plot.pm (1)
PreferencesPluginTWiki::Formlib/TWiki/Plugins/PreferencesPlugin.pm (1)
ProjectPlannerPluginTWiki::isWikiNamelib/TWiki/Plugins/ProjectPlannerPlugin.pm (1)
PublishContribTWiki::Prefslib/TWiki/Contrib/Publish.pm (1)
QuickSearchPluginTWiki::securityFilterlib/TWiki/Plugins/QuickSearchPlugin.pm (1)
TWiki::webNamelib/TWiki/Plugins/QuickSearchPlugin.pm (2)
TWiki::cmdQuotelib/TWiki/Plugins/QuickSearchPlugin.pm (2)
TWiki::fgrepCmdlib/TWiki/Plugins/QuickSearchPlugin.pm (1)
TWiki::egrepCmdlib/TWiki/Plugins/QuickSearchPlugin.pm (1)
RedDotPluginTWiki::RELEASElib/TWiki/Plugins/RedDotPlugin.pm (1)
TWiki::Client::clearSessionValuelib/TWiki/Plugins/RedDotPlugin.pm (1)
RevisionLinkPluginTWiki::Store::getRevisionInfolib/TWiki/Plugins/RevisionLinkPlugin.pm (1)
TWiki::Store::getRevisionNumberXlib/TWiki/Plugins/RevisionLinkPlugin.pm (1)
SablotronPluginTWiki::Store::getWebTopiclib/TWiki/Plugins/SablotronPlugin.pm (1)
SchedulerContribTWiki::UI::runlib/TWiki/Contrib/SchedulerContrib/Scheduler.pm (2)
TWiki::UI::Statistics::statisticslib/TWiki/Contrib/SchedulerContrib/Scheduler.pm (1)
TWiki::Client::expireDeadSessionslib/TWiki/Contrib/SchedulerContrib/Scheduler.pm (1)
SearchToTablePluginTWiki::webNamelib/TWiki/Plugins/SearchToTablePlugin.pm (1)
TWiki::userToWikiNamelib/TWiki/Plugins/SearchToTablePlugin.pm (1)
TWiki::cmdQuotelib/TWiki/Plugins/SearchToTablePlugin.pm (2)
TWiki::Access::checkAccessPermissionlib/TWiki/Plugins/SearchToTablePlugin.pm (1)
TWiki::Store::getRevisionInfoFromMetalib/TWiki/Plugins/SearchToTablePlugin.pm (1)
TWiki::egrepCmdlib/TWiki/Plugins/SearchToTablePlugin.pm (1)
TWiki::wikiUserNamelib/TWiki/Plugins/SearchToTablePlugin.pm (1)
TWikiDrawSvgPluginTWiki::templateDirlib/TWiki/Plugins/TWikiDrawSvgPlugin.pm (1)
TWikiPluginInstallerContribTWiki::UI::runlib/TWiki/UI/Install.pm (1)
TWikiReleaseTrackerPluginTWiki::securityFilterlib/TWiki/Plugins/TWikiReleaseTrackerPlugin.pm (1)
TWikiShellContribTWiki::writeDebuglib/TWiki/Contrib/TWikiShellContrib/Common.pm (1)
ThreadedDiscussionPluginTWiki::Prefs::formatAsFlaglib/TWiki/Plugins/ThreadedDiscussionPlugin.pm (3)
TodaysVisitorsPluginTWiki::handleIncludeFilelib/TWiki/Plugins/TodaysVisitorsPlugin.pm (2)
TWiki::logFilenamelib/TWiki/Plugins/TodaysVisitorsPlugin.pm (1)
TWiki::isoMonthlib/TWiki/Plugins/TodaysVisitorsPlugin.pm (1)
TopicReadersPluginTWiki::logDirlib/TWiki/Plugins/TopicReadersPlugin.pm (2)
TopicVarsPluginTWiki::securityFilterlib/TWiki/Plugins/TopicVarsPlugin.pm (2)
UpdateInfoPluginTWiki::Store::readTopMetalib/TWiki/Plugins/UpdateInfoPlugin.pm (1)
UserInfoPluginTWiki::RELEASElib/TWiki/Plugins/UserInfoPlugin/Core.pm (1)
TWiki::logFilenamelib/TWiki/Plugins/UserInfoPlugin/Core.pm (1)
TWiki::wikiUsersTopicnamelib/TWiki/Plugins/UserInfoPlugin/Core.pm (1)
VotePluginTWiki::securityFilterlib/TWiki/Plugins/VotePlugin/Core.pm (2)
TWiki::normalizeFileNamelib/TWiki/Plugins/VotePlugin/Core.pm (3)
TWiki::getTWikiLibDirlib/TWiki/Plugins/VotePlugin/Core.pm (1)
TWiki::Cache::invalidateEntrylib/TWiki/Plugins/VotePlugin/Core.pm (2)
WebDAVPluginTWiki::webPrefsTopicnamelib/TWiki/Plugins/WebDAVPlugin/Permissions.pm (1)
TWiki::Store::getAllWebslib/TWiki/Plugins/WebDAVPlugin/Permissions.pm (1)
TWiki::wikiPrefsTopicnamelib/TWiki/Plugins/WebDAVPlugin/Permissions.pm (1)
WysiwygPluginTWiki::webNamelib/TWiki/Plugins/WysiwygPlugin.pm (1)
XpTrackerPluginTWiki::isValidWikiWordlib/TWiki/Plugins/XpTrackerPlugin.pm (1)

Other questionable code in modules

Questionable code is code that may read or write topics or webs directly, or may pose a security threat.

ModuleFileCode Fragment
ActionTrackerPluginlib/TWiki/Plugins/ActionTrackerPlugin/Action.pm
$lastUID = <FH>;
    open( FH, ">$lockFile" ) or die "Locking $lockFile: $!";
        open( FH, "<$uidRegister" ) or die "Reading $uidRegister: $!";     open( FH, ">$uidRegister" ) or die "Writing $uidRegister: $!";
AlbumOfSnapsPluginlib/TWiki/Plugins/AlbumOfSnapsPlugin.pm
open (OUTFILE, ">archive_files");
	foreach $dirname (`find -type d -maxdepth 1`)	# get names of all the directories.
	foreach $archive_file (`find -name \"*.tgz\" -maxdepth 1`)	# get all .tgz files.
		@dir = `find -type d`;
			$name = `ls -td */ | head -n 1`;
	foreach $archive_file (`find -name \"*.tar\" -maxdepth 1`)	# get all .tar file.
		@dir = `find -type d`;
			$name = `ls -td */ | head -n 1`;
	foreach $archive_file (`find -name \"*.zip\" -maxdepth 1`)	# get all .zip file.
		@dir = `find -type d`;
			$name = `ls -td */ | head -n 1`;
	`chmod u+x archive_files`;
	`./archive_files`;
	`chmod 777 * `; 
	`rm archive_files`;
BarcodePluginlib/TWiki/Plugins/BarcodePlugin.pm
open(PNG, "> $dir/$filename") or return _make_error "Can't write temporary file $dir/$filename";
BeautifierPluginlib/HFile/HFile_bash.pm
$self->{delimiters}     	= ["~", "!", "@", "\$", "%", "^", "*", "(", ")", "+", "=", "/", "\\", "[", "]", "{", "}", ":", ";", "\"", "<", ">", "'", "´", "`", " ", ",", "	", ".", "?"];
			"`" => "4", 
lib/HFile/HFile_verilog.pm
"`accelerate" => "3", 
			"`autoexepand_vectornets" => "3", 
			"`celldefine" => "3", 
			"`default_nettype" => "3", 
			"`define" => "3", 
			"`else" => "3", 
			"`endcelldefine" => "3", 
			"`endif" => "3", 
			"`endprotect" => "3", 
			"`endprotected" => "3", 
			"`expand_vectornets" => "3", 
			"`ifdef" => "3", 
			"`include" => "3", 
			"`noaccelerate" => "3", 
			"`noexpand_vectornets" => "3", 
			"`noremove_gatenames" => "3", 
			"`noremove_netnames" => "3", 
			"`nounconnected_drive" => "3", 
			"`protect" => "3", 
			"`protected" => "3", 
			"`remove_gatenames" => "3", 
			"`remove_netnames" => "3", 
			"`resetall" => "3", 
			"`timescale" => "3", 
			"`unconnected_drive" => "3", 
lib/Beautifier/Magic.pm
open(FILEIN, $filename)	or return;
BibtexPluginlib/TWiki/Plugins/BibtexPlugin.pm
open(T,">$tmpbib");
        open(T,">$auxfile");
            open(F,"$auxfile");
        open(F,">$citefile");
      open (BIBFILE, ">$tempBibfile");
BuildContriblib/TWiki/Contrib/BuildContrib/BaseBuild.pm
while ($line = <PF>) {
    unless($file && open(PF, '<'.$file)) { 
lib/TWiki/Contrib/Build.pm
while (my $line = <PF>) {
            $this->{$stage} = ;
    while ( ( $reply =  ) !~ /^[yn]/i ) {
        $reply = ;
    my $text = ;
    my $text = ;
                $knownUser = ; chomp($knownUser);
                $knownPass = ; chomp($knownPass);
                $knownUser = ;
                $knownPass = ;
            while( my $line = ) {
    while( my $line =  ) {
    $post .= ;
        open(PF, '<'.$deps) ||         if ($file && open(PF, '<'.$file)) {     open(IF, '<'.$from) || die 'No source topic '.$from.' for filter';         open(OF, '>'.$to) || die 'No dest topic '.$to.' for filter';
    open(IF, '<'.$from) || die 'No source topic '.$from.' for filter';         open(OF, '>'.$to) || die 'Bad dest topic '.$to.' for filter:'.$!;
            if( open(F, '<'.$ENV{HOME}.'/.buildcontriblogin')) {                 if( open(F, '>'.$ENV{HOME}.'/.buildcontriblogin')) {
            open(PMFILE,"<$pmfile") || die $!;         open(F, '<'.$manifest) || die 'Could not open existing '.$manifest;     open(IN, "<$f") or die "Could not open $f: $!";     open(OUT, ">$f") || die "Could not open $f for write: $!";
    $buildpldir = `dirname $0`; chop($buildpldir);
        my $log = `svn info $files`;
        $this->makepath(`dirname $to`);
    $this->makepath(`dirname $to`);
            print `export TWIKI_HOME=$this->{tmpDir}; export TWIKI_LIBS=$libs; cd $basedir/$module; perl build.pl handsoff_install`;
        my $dir = `dirname $d`;
    my $log = join("\n", grep { !/^\?/ } split(/\n/, `$cmd`));
    $log = `$cmd`;
    $log = `$cmd`;
ChartPluginlib/TWiki/Plugins/ChartPlugin/Chart.pm
open(IMAGE, ">$dir/$filename") or return "Can't create file '$dir/$filename: $!";
CounterPluginlib/TWiki/Plugins/CounterPlugin.pm
$Count = <FILE>;
	open(FILE, '>', $CounterFile) || die "Can't open $DataFile file";
DakarContriblib/TWiki/Contrib/DakarContrib.pm
$this->{REAL_SAFE_PIPE_OPEN} = 1;     # supports open(FH, '-|")
            open (STDERR, '>'.File::Spec->devnull()) || die "Oh dear";
            open(STDOUT, ">&=".fileno( $writeHandle )) or die;
            open (STDERR, '>'.File::Spec->devnull());
        open( OLDERR, '>&STDERR' ) || die "Can't steal STDERR: $!";
        open( STDERR, '>'.File::Spec->devnull());
        open( STDERR, '>&OLDERR' ) || die "Can't restore STDERR: $!";
  $TWiki::cfg{NameFilter} = qr/[\s\*?~^\$@%`"'&;|<>\x00-\x1f]/;
        $data = `$cmd`;
DirectedGraphPluginlib/TWiki/Plugins/DirectedGraphPlugin.pm
open OUTFILE, ">$tmpFile" or return "<noc>DirectedGraph Error: could not create file";
    if (open TMP, "$image") {
        if (open TMP, "$cmapx") {
DiskUsagePluginlib/TWiki/Plugins/DiskUsagePlugin.pm
my @lines = `$cmd`;
    @lines = `$cmd`;
    my @lines = `$cmd`;
EasyTimelinePluginlib/TWiki/Plugins/EasyTimelinePlugin.pm
opendir( DIR, $dir );
            my @errLines = <ERRFILE>;
    if ( open TMP, "$image" ) {
        open OUTFILE, ">$tmpFile.txt"
            open( ERRFILE, "$tmpFile.err" );
        open( MAP, "${dir}/graph${hash_code}.map" )
EmbedBibPluginlib/TWiki/Plugins/EmbedBibPlugin.pm
open(TMPFILE, ">$tmpBibFile") or return "EMBEDBIB Error: fatal error";
    	return `$bibtoolcommand`;
	my $tmpOut = `$bibtoolcommand`;
    	return `$bibtex2htmlPath $tmpBibFile $bibtex2htmlArgs `;
ExifMetaDataPluginlib/TWiki/Plugins/ExifMetaDataPlugin.pm
open(IN, $afile);
GaugePluginlib/TWiki/Plugins/GaugePlugin.pm
open(IMAGE, ">$dir/$filename") || return _make_error "Can't create '$dir/$filename': $!";
    open(IMAGE, ">$dir/$filename") || return _make_error "Can't create '$dir/$filename': $!";
GenPDFAddOnlib/TWiki/Contrib/GenPDF.pm
opendir(DIR, ".") or die "$!";
GenPDFLatexAddOnlib/TWiki/Contrib/GenPDFLatex.pm
opendir(D,$WDIR) || print STDERR "genpdflatex: Can't open $WDIR: $!\n";
            open(F,$tmpzip);
        open(F,">$latexfile");
            open(F,"$pdffile");
            open(F,"$p/ls-R") or next;
        open(F,">$htmlstore/LMP.html");
        `chmod a+rwx $WDIR` if ($debug);
            $ret = `$pdflatex -interaction=nonstopmode $texrel`;
    my @paths = split(/:/,`$base/kpsepath tex`);
GnuPlotPluginlib/TWiki/Plugins/GnuPlotPlugin/Plot.pm
my @errLines = <ERRFILE>;
            open (ERRFILE, $errFile);
    open (INFILE, $gnuFile) or return newFile();
    open (OUTFILE, ">", $gnuTmpFile) or die;
lib/TWiki/Plugins/GnuPlotPlugin/PlotSettings.pm
open (INFILE, $gnuFile) or return newFile();
    open (OUTFILE, ">", $gnuFile) or die "Cannot create new Gnuplot file!";
HiddenTextPluginlib/TWiki/Plugins/HiddenTextPlugin.pm
my $storage = <TMPFILE>;
			open TMPFILE, ">$filename";
		open TMPFILE, "$filename";
IrcLogPluginlib/TWiki/Plugins/IrcLogPlugin.pm
$text = `wget -O - "$href"`;
LatexModePluginlib/TWiki/Plugins/LatexModePlugin.pm
opendir(D,$path);
        opendir(D,$LATEXWDIR);
         return; } unless open( MATHOUT, ">$LATEXFILENAME" );
        my $resp = `$GREP -A 3 -i "!" $LATEXLOG`;
LdapPluginlib/TWiki/Plugins/LdapPlugin.pm
open (FILE, ">$dir/$jpegPhotoFile");
LocalCityTimePluginlib/TWiki/Plugins/LocalCityTimePlugin.pm
$text = `$dateCmd $dateParam`;
LoginNameAliasesPluginlib/TWiki/Plugins/LoginNameAliasesPlugin.pm
unless (open(ALIASPLUGINLOG, ">>$logfile")) {
MailInContriblib/TWiki/Contrib/MailInContrib.pm
open( TF, ">$tmpfile" ) || return 'Could not write '.$tmpfile;
MailReminderPluginlib/TWiki/Plugins/MailReminderPlugin.pm
open (CONFIG, "$file_path/calender_config_file");	# open configuration file.
MathModePluginlib/TWiki/Plugins/MathModePlugin.pm
open( MATHOUT, ">$LATEXFILENAME" );
MrdIdPluginlib/TWiki/Plugins/MrdIdPlugin.pm
$ids = <FH>;
   open(FH, ">$lockFile") or die "Locking $lockFile: $!";
      open(FH, "<$uidRegister") or die "Reading $uidRegister: $!";    open(FH, ">$uidRegister") or die "Writing $uidRegister: $!";
MsOfficeAttachmentsAsHTMLPluginlib/TWiki/Plugins/MsOfficeAttachmentsAsHTMLPlugin.pm
my $x = `$cmd 2>&1`;
    my $x = `$cmd 2>`;
    $x = `$cmd2 2>`;
NatSkinPluginlib/TWiki/Plugins/NatSkinPlugin.pm
if (opendir(DIR, $cssDir))  {
lib/TWiki/Plugins/NatSkinPlugin/Search.pm
opendir(DIR, $webDir) || die "can't opendir $webDir: $!";
    opendir(DIR, $webDir) || die "can't opendir $webDir: $!";
$specialCharPattern = qr/([^\\])([\$\@\%\&\#\'\`\/])/o;
NotificationPluginlib/TWiki/Plugins/NotificationPlugin.pm
if ( opendir( DIR, &TWiki::Func::getDataDir()."/".&TWiki::Func::getMainWebname() ) ) {
PageStatsPluginlib/TWiki/Plugins/PageStatsPlugin.pm
my @pagestats = `grep $web\\.$topic $dd/log*.txt | grep -E \\(view\\|save\\)`;
PerlDocPluginlib/TWiki/Plugins/PerlDocPlugin.pm
1 while( s/\t+/' ' x (length($&) * 8 - length($`) % 8)/e );
PerlSamplePluginlib/TWiki/Plugins/PerlSamplePlugin.pm
open SAVEOUT, ">&STDOUT";
	open STDOUT, ">perl_stdout.tmp";
	open STDOUT, ">&SAVEOUT";
	open SAVEOUT, "perl_stdout.tmp";
PhantomPluginlib/TWiki/Plugins/PhantomPlugin.pm
my $pre = $`;
PhotoarchivePluginlib/TWiki/Plugins/PhotoarchivePlugin.pm
$pref_width = <FH>;	# read first line which is the saved image width
		$pref_height = ;	# read 2nd line which is the saved image height
		$pref_width = ;		# read first line which is the saved image width
		$pref_height = ;	# read 2nd line which is the saved image height
		$pref_width = ;	# read first line which is the saved image width
		$pref_height = ;	# read 2nd line which is the saved image height
		$pref_width = ;		# read first line which is the saved image width
		$pref_height = ;	# read 2nd line which is the saved image height
	if ( open(FH, "$attachment_dir"."_"."$pluginName"."_"."descriptedprefs") )
		if ( open(FH, "> $attachment_dir"."_"."$pluginName"."_"."descriptedprefs") )
	if ( open(FH, "$attachment_dir"."_"."$pluginName"."_"."detailedprefs") )
		if ( open(FH, "> $attachment_dir"."_"."$pluginName"."_"."detailedprefs") )
	if ( open(FH, "$attachment_dir"."_"."$pluginName"."_"."thumbsprefs") )
		if ( open(FH, "> $attachment_dir"."_"."$pluginName"."_"."thumbsprefs") )
	if ( open(FH, "$rnd_dir"."_"."$pluginName"."_"."rndprefs") )
		if ( open(FH, "> $rnd_dir"."_"."$pluginName"."_"."rndprefs") )
PloticusPluginlib/TWiki/Plugins/PloticusPlugin/PlotSettings.pm
open (INFILE, $ploticusFile) or return newFile();
    open (OUTFILE, ">", $ploticusFile) or die "Cannot create new Ploticusplot file!";
lib/TWiki/Plugins/PloticusPlugin/Plot.pm
my @errLines = <ERRFILE>;
            open (ERRFILE, $errFile);
    open (INFILE, $ploticusFile) or return newFile();
    open (OUTFILE, ">", $ploticusTmpFile) or die;
PluginsInstallerlib/TWiki/Contrib/PluginInstaller/Installer.pm
opendir DIR,$dir;
lib/TWiki/Contrib/PluginInstaller/PrepareInstall.pm
chomp ($configPath = <STDIN>) ;
    chomp ($params = ) ;
lib/TWiki/Contrib/PluginInstaller/HandleData.pm
open FILE,"< $filename";
    my $rcsOutput=`$cmd`;
ProjectPlannerPluginlib/TWiki/Plugins/ProjectPlannerPlugin.pm
opendir(WEB,TWiki::Func::getDataDir()."/".$web);
PublishContriblib/TWiki/Contrib/Publish.pm
while (my $line = <F>) {
	  open(F, "$TWikiPubDir/$rsrcName") ||
lib/TWiki/Contrib/PublishContrib/file.pm
open(F, ">$this->{path}/$f") || die "Cannot write $f: $!";
lib/TWiki/Contrib/PublishContrib/tgz.pm
open(R, "<$from") || die "Failed to open $from: $!";
QuickSearchPluginlib/TWiki/Plugins/QuickSearchPlugin.pm
opendir DIR, TWiki::Func::getDataDir();
            $tempVal = `$cmd`;
SchedulerContriblib/TWiki/Contrib/SchedulerContrib/Scheduler.pm
open (LOG, ">>".$ENV{'HOME'}."/SchedulerContrib.log") || die "$!";
	    die "No bin dir in `pwd`\n";
    chdir "bin" || die "Could not cd to bin from `pwd`";
    my $pwd = `pwd`;
SearchToTablePluginlib/TWiki/Plugins/SearchToTablePlugin.pm
$tempVal = `$cmd`;
SlashFilenamePluginlib/TWiki/Plugins/SlashFilenamePlugin.pm
$FileChars .= '`$,[]+';
SnmpCommandPluginlib/TWiki/Plugins/SnmpCommandPlugin.pm
@snmp_output = <SNMPOUTPUT>;
    @snmp_output = ;
    @snmp_output = ;
    @snmp_output = ;
    open (SNMPOUTPUT, "$commandline  2>&1 |");
    open (SNMPOUTPUT, "$commandline  2>&1 |");
    open (SNMPOUTPUT, "$commandline  2>&1 |");
    open (SNMPOUTPUT, "$commandline  2>&1 |");
SourceHighlightPluginlib/TWiki/Plugins/SourceHighlightPlugin.pm
my @lines = <CMD>;
    eval { open( TMP, "> $tmp_file" ) || die $! };
    eval { open( CMD, "$this_cmd < $tmp_file |" ) || die $! }; 
TWikiDrawPluginlib/TWiki/Plugins/TWikiDrawPlugin.pm
$editmess =~ s/['"]/`/g;
TWikiInstallerContriblib/TWiki/Contrib/TWikiInstallerContrib.pm
my $bin = <BIN>;
	    open( BIN, '<', $destFile ) or warn "unable to change perl path for $destFile: $!", next; 	    open( BIN, '>', $destFile ) or warn "unable to change perl path for $destFile: $!", next;
    chomp( my @a = grep { !/^\.$/ } `cd $self->{extractedDir}; find .` );
TWikiPluginInstallerContriblib/TWiki/UI/Install.pm
open( MODULE, '>', $moduleFilename ) or die $!;
TWikiReleaseTrackerPluginlib/TWiki/Plugins/TWikiReleaseTrackerPlugin.pm
$res = `$cmd 2>&1`;
lib/TWiki/Plugins/TWikiReleaseTrackerPlugin/Commands.pm
my $ans = `$cmd`;
  my $ans = `$command`;
TWikiShellContriblib/TWiki/Contrib/TWikiShellContrib/Common.pm
chomp ($value = <STDIN>);
lib/TWiki/Contrib/CommandSet/Package.pm
if( opendir( DIR, "$srcDir/$dir" ) ) {
   my @lines=<INBASE>;
   open INBASE,"<$file"; 
lib/TWiki/Contrib/TWikiShellContrib/Config.pm
open CONFIG,">".$self->{configFileName};
lib/TWiki/Contrib/CommandSet/Apache/Httpd.pm
my @lines=<INBASE>;
    open OUTBASE,">$apacheCfgFile";
    open OUTBASE,">$apacheCfgFile";
   open INBASE,"<$file"; 
lib/TWiki/Contrib/TWikiShellContrib/DirHandling.pm
opendir DIR,$dir;
lib/TWiki/Contrib/CommandSet/Plugin/Develop.pm
open MANIFEST,">$config->{TWIKI}{root}/$plugin.MF";
lib/TWiki/Contrib/TWikiShellContrib/Standard.pm
open FILE,">$file";
      `ln -s cli twikishell`;
lib/TWiki/Contrib/TWikiShellContrib/TWikiShell.pm
if( opendir( DIR, "$libDir/$prefixPath" ) ) {
lib/TWiki/Contrib/CommandSet/Plugin/Create.pm
my @content=<IN>;
   open IN,"<$inFile";    open OUT,">$outFile";
TagCloudPluginlib/TWiki/Plugins/TagCloudPlugin/Core.pm
$theTerms =~ s/[\*\.=\[\]\(\);&#\\\/\~\-\+_'`!}{"\$]/ /go;
TopicCreatePluginlib/TWiki/Plugins/TopicCreatePlugin/Func.pm
`$mkdirCmd $pubDir/$topicWeb/$topicName`;
        `$cpCmd $pubDir/$templateWeb/$template/*  $pubDir/$topicWeb/$topicName/`;
        `$mkdirCmd $pubDir/$toWeb/$toTopic`;
    `$cpCmd $pubDir/$fromWeb/$fromTopic/$fromFile   $pubDir/$toWeb/$toTopic/$toFile`;
    `$cpCmd $pubDir/$fromWeb/$fromTopic/$fromFile,v $pubDir/$toWeb/$toTopic/$toFile,v`;
TopicReadersPluginlib/TWiki/Plugins/TopicReadersPlugin.pm
opendir( DIR, "$TWiki::logDir" );
       open (FILE, "<$filename");
VotePluginlib/TWiki/Plugins/VotePlugin/Core.pm
while (my $line = <VOTES>) {
  if (open(VOTES, "<$votesFile")) {   open(VOTES, ">>$votesFile") || die "cannot append $votesFile";
XmlQueryPluginlib/TWiki/Plugins/XmlQueryPlugin.pm
open (FH, ">$xmlfile")
XmlXslPluginlib/TWiki/Plugins/XmlXslPlugin.pm
open (STUFF, $_[0]) or die "Cannot open $stuff for read :$!";
XpTrackerPluginlib/TWiki/Plugins/XpTrackerPlugin.pm
opendir(WEB,TWiki::Func::getDataDir()."/".$web);

Estimated module conformance

Conformance is degree to which module conforms with published interfaces. Low number good, high number bad
ModuleConformance rating
DojoToolkitContrib0
VersionLinkPlugin0
InterwikiPlugin0
DallasSkin0
VoodooPadXmlRpcAddOn0
LinkOptionsPlugin0
WebPermissionsPlugin0
WorkflowPlugin0
PatternSkin0
DolphinToTWikiAddOn0
SoapClientPlugin0
SpellCheckerPlugin0
TypographyPlugin0
PatentLinkPlugin0
CompareRevisionsAddOn0
DateFieldPlugin0
HolidaylistPlugin0
URLCachePlugin0
BugzillaLinkPlugin0
HistoryPlugin0
ProtocolTlaPlugin0
GenericWikiToTWikiAddOn0
GoogleSearchPlugin0
FormFieldListPlugin0
OoPlugin0
PseudoXmlPlugin0
EmptyPlugin0
PrototypeContrib0
JSCalendarContrib0
TopicTranslationsPlugin0
MoreFuncContrib0
FilterPlugin0
GuidPlugin0
MessageBoardPlugin0
AgentPlugin0
DandruffSkin0
ExternalLinkPlugin0
SlideShowPlugin0
TouchGraphPlugin0
MailPageAddOn0
CacheChooserAddOn0
TopicClassificationAddOn0
JSPwikiToTWikiAddOn0
UseModWikiToTWikiAddOn0
CacheAddOn0
DateTimePlugin0
SearchEnginePluceneAddOn0
PluginBenchmarkAddOn0
CopyCatSkin0
UserHomePageAddOn0
DoxygenPlugin0
SyncContrib0
ChildTopicTemplatePlugin0
SingletonWikiWordPlugin0
PowerEditAddon0
ToolTipPlugin0
GluePlugin0
MoreVarsPlugin0
StylePlugin0
RedirectPlugin0
TWikiCacheAddOn0
SmiliesPlugin0
SecurityPlugin0
RecursiveRenderPlugin0
MakeCtrlTopicsListAddOn0
SyntaxHighlightingPlugin0
VarCachePlugin0
PhpWikiToTWikiAddOn0
RandomTopicPlugin0
NatSkin0
MultiEditPlugin0
TimeSincePlugin0
SuggestLinksPlugin0
RedirectBySubdomainAddOn0
FormQueryPlugin0
TigerSkinPlugin0
WeatherPlugin0
EmbedPDFPlugin0
RollupPlugin0
KwikiToTWikiAddOn0
EmbedQTPlugin0
TWikiInstallerWindowsContrib0
CpanContrib0
MailToTWikiAddOn0
NewTopicEventPlugin0
ContributorsPlugin0
FamilyTreePlugin0
PublishWebPlugin0
NetgrepPlugin0
JavaPasteAddOn0
BibliographyPlugin0
SpacedWikiWordPlugin0
TestFixturePlugin0
TWikiDeploymentSpiderAddOn0
GpgkeyPlugin0
SectionalEditPlugin0
TagMePlugin0
NavBarAddOn0
DirectedGraphWebMapPlugin0
TwistyContrib0
QuickCalendarPlugin0
PollPlugin0
SpreadSheetPlugin0
MailerContrib0
MaketextCompatibilityPlugin0
EmbedPlugin0
IrcPlugin0
NamespaceManagerAddOn0
EmptyHeaderArtContrib0
BlogPlugin0
LaTeXToMathMLPlugin0
FirefoxExtensionAddOn0
AddDBMGroupPlugin0
ExplicitNumberingPlugin0
CacheContentPlugin0
TreePlugin0
BugzillaQueryPlugin0
TwistyPlugin0
EmbedTopicPlugin0
TableToolAddOn0
MacrosPlugin0
TablePlugin0
FlowchartPlugin0
PowerEditPlugin0
TreeBrowserPlugin0
SlideNavPlugin0
CalendarPlugin0
FundraisingPlugin0
LocalTimePlugin0
DBCacheContrib0
DistributionContrib0
SeeSkin0
ClassicSkin0
LDAPPasswordChangerPlugin0
HeadlinesPlugin0
TopicReferencePlugin0
AddMetaPlugin0
EmptyContrib0
SpellCheckAddOn0
GetAWebAddOn0
SimpleBlueSkin0
RevCommentPlugin0
SlidyPlugin0
NavPlugin0
TocPlugin0
SetVariableAddOn0
ExtTopicListPlugin0
IncludeRevisionPlugin0
ConditionalPlugin0
TextSectionPlugin0
ExampleHeaderArtContrib0
FormsAddOn0
RevRecoverPlugin0
TranslateTagPlugin0
FuncContrib0
SvgPlugin0
BugsContrib0
AdvertsPlugin0
RenderListPlugin0
HideInEditModePlugin0
NewsPlugin0
ImgPlugin0
CategoryPlugin0
TipsContrib0
AliasPlugin0
EmbedFlashPlugin0
RandomQuotePlugin0
SablotronPlugin1
EditInTablePlugin1
EditTablerowPlugin1
CommentPlugin1
FindElsewherePlugin1
MultiLangPlugin1
TWikiDrawSvgPlugin1
AntiWikiSpamPlugin1
ImmediateNotifyPlugin1
DatabasePlugin1
NotifyOnChildModificationTopic1
UpdateInfoPlugin1
ExtendedSelectPlugin1
WysiwygPlugin1
BlackListPlugin1
GlobalReplacePlugin1
EditTablePlugin1
ApprovalPlugin1
FakeBasicAuthRegPlugin1
MaxImageSizePlugin1
EncryptedPagesPlugin1
PreferencesPlugin1
TopicVarsPlugin2
ChecklistPlugin2
RevisionLinkPlugin2
FormPivotPlugin2
MovableTypePlugin2
DBCachePlugin2
RedDotPlugin2
IfDefinedPlugin2
GenerateSearchPlugin2
DefaultPlugin2
EFetchPlugin2
SlashFilenamePlugin3
IncludeIndexPlugin3
PerlDocPlugin3
ControlsPlugin3
FuncUsersContrib3
BarcodePlugin3
WebDAVPlugin3
ExifMetaDataPlugin3
PhantomPlugin3
MailReminderPlugin3
ThreadedDiscussionPlugin3
UserInfoPlugin3
LdapPlugin3
MathModePlugin3
TagCloudPlugin3
TWikiDrawPlugin3
LocalCityTimePlugin3
XmlQueryPlugin3
XmlXslPlugin3
FormFieldsPlugin4
TWikiPluginInstallerContrib4
XpTrackerPlugin4
TodaysVisitorsPlugin4
ChartPlugin4
ProjectPlannerPlugin4
IrcLogPlugin5
FileListPlugin5
PageStatsPlugin5
ImageGalleryPlugin5
MailInContrib5
BatchUploadPlugin6
CounterPlugin6
GenPDFAddOn6
GaugePlugin6
NavbarPlugin7
TopicReadersPlugin8
LoginNameAliasesPlugin8
HiddenTextPlugin9
MsOfficeAttachmentsAsHTMLPlugin9
SourceHighlightPlugin9
DirectedGraphPlugin10
TWikiReleaseTrackerPlugin10
SearchToTablePlugin11
MrdIdPlugin12
ActionTrackerPlugin12
TWikiInstallerContrib12
PerlSamplePlugin12
QuickSearchPlugin13
DiskUsagePlugin13
EmbedBibPlugin13
PublishContrib13
NotificationPlugin13
LatexModePlugin13
PeerPlugin14
PluginsInstaller15
TopicCreatePlugin15
BibtexPlugin16
SchedulerContrib16
VotePlugin17
GnuPlotPlugin19
EasyTimelinePlugin19
PloticusPlugin19
EditContrib23
SnmpCommandPlugin24
DakarContrib27
NatSkinPlugin28
GenPDFLatexAddOn32
AlbumOfSnapsPlugin47
PhotoarchivePlugin48
TWikiShellContrib52
BeautifierPlugin84
BuildContrib109

Directives apparently expanded by modules

DirectiveModule(s)
ACTIONSActionTrackerPlugin
ACTIONS_AS_HTMLActionTrackerPlugin
ACTIONS_AS_STRINGActionTrackerPlugin
ADVERTAdvertsPlugin
ADVERTRIJSAdvertsPlugin
AGENTAgentPlugin
ALBUMOFSNAPS_PLUGINAlbumOfSnapsPlugin
ATTACHURLRenderListPlugin, SlideShowPlugin, ThreadedDiscussionPlugin, TreeBrowserPlugin
AUTHORMailerContrib, NatSkinPlugin
BIBABSTRACTBibtexPlugin
BIBERRORSBibtexPlugin
BIBFORMBibtexPlugin
BIBKEYWORDSBibtexPlugin
BIBTEXBibtexPlugin
BIBTEXRESULTBibtexPlugin
BIBTOPICBibtexPlugin
BIBTOTALBibtexPlugin
BRSlideShowPlugin
CALENDARCalendarPlugin
CANCELSCRIPTActionTrackerPlugin
CATEGORY_SEARCHCategoryPlugin
CATEGORY_TEMPLATECategoryPlugin
CHANGESActionTrackerPlugin
CHANGES_AS_HTMLActionTrackerPlugin
CHANGES_AS_STRINGActionTrackerPlugin
CHECKLISTChecklistPlugin
CHECKLISTSTARTChecklistPlugin
CLIChecklistPlugin
CMDEditContrib
COMMENTPluginsInstaller
CONTRIBUTORSContributorsPlugin
CONTROLSPowerEditPlugin
COUNTER_PLUGINCounterPlugin
CURRENTLANGUAGETopicTranslationsPlugin
CURREVNatSkinPlugin
CURRREVCompareRevisionsAddOn, PublishContrib
DATEActionTrackerPlugin, TodaysVisitorsPlugin, TopicCreatePlugin, UserInfoPlugin
DEFAULTITEMSTigerSkinPlugin
DEFAULTLANGUAGETopicTranslationsPlugin
DISABLEDCommentPlugin
DISCUSSIONDELETEThreadedDiscussionPlugin
DISKUSAGEDiskUsagePlugin
DRAWINGTWikiDrawPlugin
DRAWINGSVGTWikiDrawSvgPlugin
EBHActionTrackerPlugin
EBWActionTrackerPlugin
EDITFIELDSActionTrackerPlugin
EDITTEXTTWikiDrawPlugin
EMAILFROMActionTrackerPlugin, ImmediateNotifyPlugin
EMAILTOActionTrackerPlugin, ImmediateNotifyPlugin, MailerContrib
EXIFMETADATAExifMetaDataPlugin
FTWikiDrawPlugin
FILELISTFileListPlugin
FILENAMEPluginsInstaller
FLOWCHARTFlowchartPlugin
FLOWCHART_BRFlowchartPlugin
FLOWCHART_STARTFlowchartPlugin
FLOWCHART_STOPFlowchartPlugin
FORMBUTTONNatSkinPlugin
FORMFIELDSEditContrib
FORMTEMPLATEEditContrib
FUNDRAISINGMESSAGEFundraisingPlugin
GETSKINSTYLENatSkinPlugin
GLOBAL_CATEGORIES_WEBCategoryPlugin
GOOGLE_SEARCH_PLUGINGoogleSearchPlugin
GPGLISTVIEWGpgkeyPlugin
GREPQuickSearchPlugin
GUID_IDGuidPlugin
HIDDENFIELDSActionTrackerPlugin
HISTORYHistoryPlugin
HISTORY_MAXREVHistoryPlugin
HISTORY_NREVHistoryPlugin
HISTORY_REV1HistoryPlugin
HISTORY_REV2HistoryPlugin
HOLIDAYLISTHolidaylistPlugin
HOVERTWikiDrawPlugin
HTML_TEXTMailerContrib
IMAGEGALLERYImageGalleryPlugin
INCLUDINGTOPICDBCachePlugin
INCLUDINGWEBDBCachePlugin
KNOWNSTYLESNatSkinPlugin
KNOWNVARIATIONSNatSkinPlugin
LASTDATEMailerContrib
LDAPPASSWORDCHANGERLDAPPasswordChangerPlugin
LEFTFormFieldsPlugin
LEFTMENUTigerSkinPlugin
LISTICONHEIGHTPeerPlugin
LISTICONPREFIXPeerPlugin
LISTICONWIDTHPeerPlugin
LOCALCITYTIMELocalCityTimePlugin
LOGOTigerSkinPlugin
LOGSIZESDiskUsagePlugin
MAILREMINDER_PLUGINMailReminderPlugin
MAINWEBApprovalPlugin, DirectedGraphWebMapPlugin, RenderListPlugin, ThreadedDiscussionPlugin, TreeBrowserPlugin, WorkflowPlugin
MAPNAMETWikiDrawPlugin
MAXREVCompareRevisionsAddOn, PublishContrib
MESSAGECommentPlugin
MLP_DATADIRFORMMultiLangPlugin
MLP_SCRIPTPATHFORMMultiLangPlugin
MLP_SCRIPTURLFORMMultiLangPlugin
MLP_VIEWURLFORMMultiLangPlugin
NAMEFormFieldsPlugin
NATLOGONNatSkinPlugin
NATLOGOUTNatSkinPlugin
NATMAXREVNatSkinPlugin
NATREVISIONSNatSkinPlugin
NEXTTOPICNavPlugin
NOPTopicCreatePlugin
NTOPICSNatSkinPlugin, QuickSearchPlugin
OPTIONSFormFieldsPlugin
PARAM1GenerateSearchPlugin, TWikiDrawSvgPlugin
PARAM2GenerateSearchPlugin, TWikiDrawSvgPlugin
PARAM3GenerateSearchPlugin, TWikiDrawSvgPlugin
PARAM4TWikiDrawSvgPlugin
PHOTOARCHIVEPLUGINPhotoarchivePlugin
PHOTOARCHIVEPLUGINRANDOMPhotoarchivePlugin
PLAIN_TEXTMailerContrib
PLUGINTWikiShellContrib
POLLRESULTSPollPlugin
POSTEXTEditContrib
POSTEXTFIELDEditContrib
PPALLPLANSProjectPlannerPlugin
PPALLPROJECTSProjectPlannerPlugin
PRCOMMENTPeerPlugin
PRDATETIMEPeerPlugin
PRDOFORMPeerPlugin
PRETEXTEditContrib
PRETEXTFIELDEditContrib
PREVREVNatSkinPlugin
PREVTOPICNavPlugin
PREXTURLPeerPlugin
PRFORMURLPeerPlugin
PROBJECTPeerPlugin
PRQUALITYPeerPlugin
PRRELEVANCEPeerPlugin
PRREVIEWERPeerPlugin
PRREVINFOPeerPlugin
PRTEXTCOLORPeerPlugin
PRTITLECOLORPeerPlugin
PRTOPICPeerPlugin
PRTOPICREVPeerPlugin
PRURLPeerPlugin
PRUSERVIEWPeerPlugin
PRWEBPeerPlugin
PUBURLRenderListPlugin, ThreadedDiscussionPlugin, TreeBrowserPlugin
QUOTADiskUsagePlugin
RANDOMAdvertsPlugin
RANDOMTOPICRandomTopicPlugin
READERCOUNTTopicReadersPlugin
READERDATETopicReadersPlugin
READERNAMETopicReadersPlugin
READERSTopicReadersPlugin
READERSSINCETopicReadersPlugin
REDDOTRedDotPlugin
REVCOMMENTRevCommentPlugin
REVINFO1CompareRevisionsAddOn
REVINFO2CompareRevisionsAddOn
REVISIONMailerContrib, NatSkinPlugin
REVISIONSCompareRevisionsAddOn
REVTITLEPublishContrib
REVTITLE1CompareRevisionsAddOn
REVTITLE2CompareRevisionsAddOn
RIGHTFormFieldsPlugin
ROLLUPRollupPlugin
SEARCHSTRINGNatSkinPlugin
SECTIONEDITBOXHEIGHTEditContrib
SECTIONEDITBOXSTYLEEditContrib
SECTIONEDITBOXWIDTHEditContrib
SECURITYSecurityPlugin
SELECTEDFormFieldsPlugin
SERVERURLBASEAdvertsPlugin
SHOWALLTigerSkinPlugin
SHOWVIEWTigerSkinPlugin
SINCEActionTrackerPlugin
SIZEFormFieldsPlugin
SLIDECOMMENTSlideShowPlugin
SLIDEMAXSlideShowPlugin
SLIDENAVSlideShowPlugin
SLIDENAVALLSlideShowPlugin
SLIDENAVBARSlideNavPlugin
SLIDENAVFIRSTSlideShowPlugin
SLIDENAVINDEXSlideNavPlugin
SLIDENAVLASTSlideShowPlugin
SLIDENAVNEXTSlideShowPlugin
SLIDENAVPREVSlideShowPlugin
SLIDENUMSlideShowPlugin
SLIDETEXTSlideShowPlugin
SLIDETITLESlideShowPlugin
SMILIESSmiliesPlugin
SNMPCOMMANDSnmpCommandPlugin
SOURCEXmlXslPlugin
STARTALIASAREAAliasPlugin, BlogPlugin, NatSkinPlugin
STARTBIBTEXBibtexPlugin
STARTHIDDENHiddenTextPlugin, HideInEditModePlugin
STOPALIASAREAAliasPlugin, BlogPlugin, NatSkinPlugin
STOPINCLUDEBibtexPlugin, CalendarPlugin, DBCachePlugin, EditTablePlugin, HolidaylistPlugin, IncludeIndexPlugin, MailReminderPlugin, RandomQuotePlugin, SlideShowPlugin, ToolTipPlugin
STOPPUBLISHPublishWebPlugin
STRIPMacrosPlugin
SUBJECTActionTrackerPlugin, MailInContrib
SUBMITCMDNAMEActionTrackerPlugin
SUBMITCMDOPTActionTrackerPlugin
SUBMITCOMMANDActionTrackerPlugin
SUBMITSCRIPTActionTrackerPlugin
SWITCHESQuickSearchPlugin
TEXTActionTrackerPlugin, EditContrib, GenPDFLatexAddOn, MailInContrib, PowerEditPlugin, PublishContrib, PublishWebPlugin
TEXTDETAILEditContrib
TEXTHEADMailerContrib, NatSkinPlugin
TGPOPUPTouchGraphPlugin
TIGERLOGONTigerSkinPlugin
TIGERREVSTigerSkinPlugin
TIMEMailerContrib, NatSkinPlugin
TOCTOPICNavPlugin
TODAYSVISITORSTodaysVisitorsPlugin
TOOLTIPToolTipPlugin
TOPICNatSkinPlugin, SlideShowPlugin, TopicCreatePlugin, XpTrackerPlugin
TOPICMAPDirectedGraphWebMapPlugin
TOPICNAMEImmediateNotifyPlugin, MailerContrib, NatSkinPlugin, QuickSearchPlugin
TOPICPARENTEditContrib, NotifyOnChildModificationTopic
TRANSLATIONCHECKMultiLangPlugin
TRANSLATIONSMultiLangPlugin
TREEVIEWTreePlugin
TWIKIDRAWTWikiDrawPlugin
TWIKIWEBApprovalPlugin, DirectedGraphWebMapPlugin, RenderListPlugin, ThreadedDiscussionPlugin, TreeBrowserPlugin, WorkflowPlugin
UIDActionTrackerPlugin
URLMailerContrib
USERImmediateNotifyPlugin
USERACTIONSNatSkinPlugin
USERNAMEPluginsInstaller
VALUEFormFieldsPlugin
VERSIONLINKVersionLinkPlugin
WEBImmediateNotifyPlugin, NatSkinPlugin, QuickSearchPlugin, RenderListPlugin, SlideShowPlugin, ThreadedDiscussionPlugin, TopicCreatePlugin, TreeBrowserPlugin
WEBBGCOLORQuickSearchPlugin
WEBCONTENTTYPEPhantomPlugin
WEBLINKNatSkinPlugin
WEBMAPDirectedGraphWebMapPlugin
WHATAdvertsPlugin
WIKIRELEASENAMENatSkinPlugin
WIKISPAMWORDBlackListPlugin
WIKITOOLNAMENatSkinPlugin
WIKIUSERNAMEActionTrackerPlugin, TopicCreatePlugin
XPSHOWALLITERATIONSXpTrackerPlugin
XPSHOWALLPROJECTSXpTrackerPlugin
XPSHOWALLTEAMSXpTrackerPlugin
XPSHOWCOLOURSXpTrackerPlugin
dotEditTablePlugin
textsectionendTextSectionPlugin

The script that generates the PluginsConformanceReport is in the Subversion repository, in tools/conformance_analyser.pl. You can easily run it on all plugins or just a selected subset.

-- Contributors: CrawfordCurrie, MattWilkie, MartinCleaver

Discussion

I think it would be to decide which directory TWiki or Plugins is to be used for bundling and to blacklist everything that does not conform. Where you install them is another matter, but for consistency (i.e. & sanity's sake) we should have 1 place in the distributions.

KoalaSkin, SeeSkin, TWikiDrawPlugin and PollPlugin currently do not conform with the majority.

-- MartinCleaver - 12 Apr 2004, 9 May 2004

Crawford. What do you think of generating a topic per plugin, so that plugin authors and users can be directly test the goodness of a plugin? I guess you'd need a new web but I am sure that if Peter gets around to reading this topic he would agree that this would be a good thing.

-- MartinCleaver - 16 May 2004

Somehow I missed this topic before. All I can say is Wow!! This is great data for understanding how to expand TWiki::Func etc. Great work!!!

-- JohnCavanaugh - 14 Oct 2004

There seems to be a problem with this list: It generates much more hits for non-conformity function calls than are actually in the plugins. Probably the script just greps the source code of a plugin for a string like TWiki::xxx where xxx is anything other than Func. However, if you use the EmptyPlugin.pm as a starting point, you have lots of comments like # This handler is called by TWiki::Store::saveTopic in the source code, which now counts as a call to TWiki::Store::saveTopic (E.g. my HistoryPlugins got a badness score of 10, although it uses only the TWiki::Func API).

-- JChristophFuchs - 19 Apr 2005

Good point; I'll have a look. I think it is smarter than that, but you are probably right.

-- CrawfordCurrie - 19 Apr 2005

Crawford, can we point to a work around to eliminate deprecated handlers. I believe we can easily get rid of those in the plugins, but it would be good to give plugin authors a pointer to where we discussed alternative realizations of those calls...

-- ThomasWeigert - 12 Aug 2005

Good point. DeprecatedHandlers.

-- CrawfordCurrie - 15 Aug 2005

The following plugins are among those that have their data files in the Plugins rather than TWiki web: TreePlugin, TranslateTagPlugin, SyntaxHighlightPlugin, SuggestLinksPlugin, Nas?Plugin (I can't read my writing)

-- MartinCleaver - 05 Nov 2005

This report is great. Another area that could be tested is urlparams: plugins might use the same urlparam names and thus clash when used together.

-- MichaelDaum - 27 Jan 2006

Note that while this script is great, it doesn't handle inline version conditionals. Personally, I don't find it a problem, because I think inline version conditionals are a bad idea and won't use plugins that do it, but it does mean that those trying to decide whether to use a plugin has to read the code of any plugin that shows violations to determine whether the plugin actually complies with PluginsApiPolicies.

-- MeredithLesly - 18 May 2006

Another flaw of this survey is that if a plugin tries to support previous platforms it will score badly albeit its conformance is virtually better.

-- MichaelDaum - 18 May 2006

That's what Meredith just said. Unfortunately there are so many different ways to write version conditionals, it is really hard to separate that out. the obvious solution is to use some sort of marks e.g.

# BEGIN COMPATIBILITY
# END COMPATIBILITY

but that requires cooperation from plugins authors, and so far getting cooperation from many plugin authors has proven difficult. Note that the analyser already ignores any lines with COMPATIBILITY anywhere in them.

-- CrawfordCurrie - 18 May 2006

This shows one reason why having different modules for different versions is a good idea, rather than intermingling the code. The Dakar module, if totally conformant, would pass perfectly.

-- MeredithLesly - 18 May 2006

I wouldn't stand the redundancy just to pass this conformance test.

-- MichaelDaum - 18 May 2006

I added a note on top to read the report with a grain of salt.

-- PeterThoeny - 18 May 2006

Making the script aware of the # BEGIN COMPATIBILITY / # END COMPATIBILITY would be a good addition.

-- PeterThoeny - 18 May 2006

Micha, I haven't looked at your code, but putting conditional code into a subroutine and having different versions of the subroutine for each version that you support can make the main body more readable and allow an extension to pass a conformance test.

-- MeredithLesly - 18 May 2006

Topic attachments
I Attachment History Action Size Date Who Comment
HTMLhtml stats.html r12 r11 r10 r9 r8 manage 101.7 K 2006-05-08 - 05:04 UnknownUser  
Edit | Attach | Watch | Print version | History: r44 < r43 < r42 < r41 < r40 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r44 - 2006-05-18 - MeredithLesly
 
  • Learn about TWiki  
  • Download TWiki
This site is powered by the TWiki collaboration platform Powered by Perl Hosted by OICcam.com Ideas, requests, problems regarding TWiki? Send feedback. Ask community in the support forum.
Copyright © 1999-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.