JOOMLA中国
  • Joomla中国首页
  • 社区
  • 教程
  • 应用市场
  • B计划
Joomla! Framework TM
  • Namespace
  • Class
  • Tree
  • Deprecated

Namespaces

  • Composer
    • Autoload
  • Joomla
    • Application
      • Cli
        • Output
          • Processor
      • Web
    • Data
    • DI
      • Exception
    • Event
    • Filter
    • Input
    • Ldap
    • Registry
      • Format
    • Session
      • Storage
    • String
    • Uri
    • Utilities
  • None
  • PasswordCompat
    • binary
  • PHP
  • Psr
    • Log
  • Symfony
    • Component
      • Yaml
        • Exception
    • Polyfill
      • Util

Classes

  • CallbackFilterIterator
  • ComposerAutoloaderInit205c915b9c7d3e718e7c95793ee67ffe
  • easyparse
  • EasyPeasyICS
  • FOFAutoloaderComponent
  • FOFAutoloaderFof
  • FOFConfigDomainDispatcher
  • FOFConfigDomainTables
  • FOFConfigDomainViews
  • FOFConfigProvider
  • FOFController
  • FOFDatabase
  • FOFDatabaseDriver
  • FOFDatabaseDriverJoomla
  • FOFDatabaseDriverMysql
  • FOFDatabaseDriverMysqli
  • FOFDatabaseDriverOracle
  • FOFDatabaseDriverPdo
  • FOFDatabaseDriverPdomysql
  • FOFDatabaseDriverPostgresql
  • FOFDatabaseDriverSqlazure
  • FOFDatabaseDriverSqlite
  • FOFDatabaseDriverSqlsrv
  • FOFDatabaseFactory
  • FOFDatabaseInstaller
  • FOFDatabaseIterator
  • FOFDatabaseIteratorAzure
  • FOFDatabaseIteratorMysql
  • FOFDatabaseIteratorMysqli
  • FOFDatabaseIteratorOracle
  • FOFDatabaseIteratorPdo
  • FOFDatabaseIteratorPdomysql
  • FOFDatabaseIteratorPostgresql
  • FOFDatabaseIteratorSqlite
  • FOFDatabaseIteratorSqlsrv
  • FOFDatabaseQuery
  • FOFDatabaseQueryElement
  • FOFDatabaseQueryMysql
  • FOFDatabaseQueryMysqli
  • FOFDatabaseQueryOracle
  • FOFDatabaseQueryPdo
  • FOFDatabaseQueryPdomysql
  • FOFDatabaseQueryPostgresql
  • FOFDatabaseQuerySqlazure
  • FOFDatabaseQuerySqlite
  • FOFDatabaseQuerySqlsrv
  • FOFDispatcher
  • FOFDownload
  • FOFDownloadAdapterAbstract
  • FOFDownloadAdapterCurl
  • FOFDownloadAdapterFopen
  • FOFEncryptAes
  • FOFEncryptAesAbstract
  • FOFEncryptAesMcrypt
  • FOFEncryptAesOpenssl
  • FOFEncryptBase32
  • FOFEncryptRandval
  • FOFEncryptTotp
  • FOFForm
  • FOFFormFieldAccesslevel
  • FOFFormFieldActions
  • FOFFormFieldButton
  • FOFFormFieldCachehandler
  • FOFFormFieldCalendar
  • FOFFormFieldCaptcha
  • FOFFormFieldCheckbox
  • FOFFormFieldCheckboxes
  • FOFFormFieldComponents
  • FOFFormFieldEditor
  • FOFFormFieldEmail
  • FOFFormFieldGroupedbutton
  • FOFFormFieldGroupedlist
  • FOFFormFieldHidden
  • FOFFormFieldImage
  • FOFFormFieldImagelist
  • FOFFormFieldInteger
  • FOFFormFieldLanguage
  • FOFFormFieldList
  • FOFFormFieldMedia
  • FOFFormFieldModel
  • FOFFormFieldOrdering
  • FOFFormFieldPassword
  • FOFFormFieldPlugins
  • FOFFormFieldPublished
  • FOFFormFieldRadio
  • FOFFormFieldRelation
  • FOFFormFieldRules
  • FOFFormFieldSelectrow
  • FOFFormFieldSessionhandler
  • FOFFormFieldSpacer
  • FOFFormFieldSql
  • FOFFormFieldTag
  • FOFFormFieldTel
  • FOFFormFieldText
  • FOFFormFieldTextarea
  • FOFFormFieldTimezone
  • FOFFormFieldTitle
  • FOFFormFieldUrl
  • FOFFormFieldUser
  • FOFFormFieldUsergroup
  • FOFFormHeader
  • FOFFormHeaderAccesslevel
  • FOFFormHeaderField
  • FOFFormHeaderFielddate
  • FOFFormHeaderFieldfilterable
  • FOFFormHeaderFieldsearchable
  • FOFFormHeaderFieldselectable
  • FOFFormHeaderFieldsql
  • FOFFormHeaderFilterdate
  • FOFFormHeaderFilterfilterable
  • FOFFormHeaderFiltersearchable
  • FOFFormHeaderFilterselectable
  • FOFFormHeaderFiltersql
  • FOFFormHeaderLanguage
  • FOFFormHeaderModel
  • FOFFormHeaderOrdering
  • FOFFormHeaderPublished
  • FOFFormHeaderRowselect
  • FOFFormHelper
  • FOFHalDocument
  • FOFHalLink
  • FOFHalLinks
  • FOFHalRenderJson
  • FOFInflector
  • FOFInput
  • FOFIntegrationJoomlaFilesystem
  • FOFIntegrationJoomlaPlatform
  • FOFLayoutFile
  • FOFLayoutHelper
  • FOFLess
  • FOFLessFormatterClassic
  • FOFLessFormatterCompressed
  • FOFLessFormatterJoomla
  • FOFLessFormatterLessjs
  • FOFLessParser
  • FOFModel
  • FOFModelBehavior
  • FOFModelBehaviorAccess
  • FOFModelBehaviorEmptynonzero
  • FOFModelBehaviorEnabled
  • FOFModelBehaviorFilters
  • FOFModelBehaviorLanguage
  • FOFModelBehaviorPrivate
  • FOFModelDispatcherBehavior
  • FOFModelField
  • FOFModelFieldBoolean
  • FOFModelFieldDate
  • FOFModelFieldNumber
  • FOFModelFieldText
  • FOFPlatform
  • FOFPlatformFilesystem
  • FOFQueryAbstract
  • FOFRenderAbstract
  • FOFRenderJoomla
  • FOFRenderJoomla3
  • FOFRenderStrapper
  • FOFStringUtils
  • FOFTable
  • FOFTableBehavior
  • FOFTableBehaviorAssets
  • FOFTableBehaviorContenthistory
  • FOFTableBehaviorTags
  • FOFTableDispatcherBehavior
  • FOFTableNested
  • FOFTableRelations
  • FOFTemplateUtils
  • FOFToolbar
  • FOFUtilsArray
  • FOFUtilsCacheCleaner
  • FOFUtilsConfigHelper
  • FOFUtilsFilescheck
  • FOFUtilsIniParser
  • FOFUtilsInstallscript
  • FOFUtilsIp
  • FOFUtilsObject
  • FOFUtilsObservableDispatcher
  • FOFUtilsObservableEvent
  • FOFUtilsPhpfunc
  • FOFUtilsTimer
  • FOFUtilsUpdate
  • FOFUtilsUpdateCollection
  • FOFUtilsUpdateExtension
  • FOFUtilsUpdateJoomla
  • FOFView
  • FOFViewCsv
  • FOFViewForm
  • FOFViewHtml
  • FOFViewJson
  • FOFViewRaw
  • idna_convert
  • JAccess
  • JAccessRule
  • JAccessRules
  • JAccessWrapperAccess
  • JAdapter
  • JAdapterInstance
  • JApplication
  • JApplicationAdministrator
  • JApplicationBase
  • JApplicationCli
  • JApplicationCms
  • JApplicationDaemon
  • JApplicationHelper
  • JApplicationSite
  • JApplicationWeb
  • JApplicationWebRouter
  • JApplicationWebRouterBase
  • JApplicationWebRouterRest
  • JArchive
  • JArchiveBzip2
  • JArchiveGzip
  • JArchiveTar
  • JArchiveWrapperArchive
  • JArchiveZip
  • JArrayHelper
  • JAssociationExtensionHelper
  • JAuthentication
  • JAuthenticationHelper
  • JAuthenticationResponse
  • JBrowser
  • JBuffer
  • JButton
  • JCache
  • JCacheController
  • JCacheControllerCallback
  • JCacheControllerOutput
  • JCacheControllerPage
  • JCacheControllerView
  • JCacheStorage
  • JCacheStorageApc
  • JCacheStorageApcu
  • JCacheStorageCachelite
  • JCacheStorageFile
  • JCacheStorageHelper
  • JCacheStorageMemcache
  • JCacheStorageMemcached
  • JCacheStorageRedis
  • JCacheStorageWincache
  • JCacheStorageXcache
  • JCaptcha
  • JCategories
  • JCategoryNode
  • JClassLoader
  • JCli
  • JClientFtp
  • JClientHelper
  • JClientLdap
  • JClientWrapperHelper
  • JComponentHelper
  • JComponentRecord
  • JComponentRouterBase
  • JComponentRouterLegacy
  • JComponentRouterRulesMenu
  • JComponentRouterRulesNomenu
  • JComponentRouterRulesStandard
  • JComponentRouterView
  • JComponentRouterViewconfiguration
  • JControllerAdmin
  • JControllerBase
  • JControllerForm
  • JControllerLegacy
  • JCrypt
  • JCryptCipher3Des
  • JCryptCipherBlowfish
  • JCryptCipherCrypto
  • JCryptCipherMcrypt
  • JCryptCipherRijndael256
  • JCryptCipherSimple
  • JCryptKey
  • JCryptPasswordSimple
  • JDaemon
  • JDatabase
  • JDatabaseDriver
  • JDatabaseDriverMysql
  • JDatabaseDriverMysqli
  • JDatabaseDriverOracle
  • JDatabaseDriverPdo
  • JDatabaseDriverPdomysql
  • JDatabaseDriverPostgresql
  • JDatabaseDriverSqlazure
  • JDatabaseDriverSqlite
  • JDatabaseDriverSqlsrv
  • JDatabaseExporter
  • JDatabaseExporterMysql
  • JDatabaseExporterMysqli
  • JDatabaseExporterPdomysql
  • JDatabaseExporterPostgresql
  • JDatabaseFactory
  • JDatabaseImporter
  • JDatabaseImporterMysql
  • JDatabaseImporterMysqli
  • JDatabaseImporterPdomysql
  • JDatabaseImporterPostgresql
  • JDatabaseInterface
  • JDatabaseIterator
  • JDatabaseIteratorMysql
  • JDatabaseIteratorMysqli
  • JDatabaseIteratorOracle
  • JDatabaseIteratorPdo
  • JDatabaseIteratorPdomysql
  • JDatabaseIteratorPostgresql
  • JDatabaseIteratorSqlazure
  • JDatabaseIteratorSqlite
  • JDatabaseIteratorSqlsrv
  • JDatabaseMysql
  • JDatabaseMysqli
  • JDatabaseQuery
  • JDatabaseQueryElement
  • JDatabaseQueryLimitable
  • JDatabaseQueryMysql
  • JDatabaseQueryMysqli
  • JDatabaseQueryOracle
  • JDatabaseQueryPdo
  • JDatabaseQueryPdomysql
  • JDatabaseQueryPostgresql
  • JDatabaseQueryPreparable
  • JDatabaseQuerySqlazure
  • JDatabaseQuerySqlite
  • JDatabaseQuerySqlsrv
  • JDatabaseSqlazure
  • JDatabaseSqlsrv
  • JDate
  • JDispatcher
  • JDocument
  • JDocumentError
  • JDocumentFeed
  • JDocumentHtml
  • JDocumentImage
  • JDocumentJson
  • JDocumentOpensearch
  • JDocumentRaw
  • JDocumentRenderer
  • JDocumentRendererAtom
  • JDocumentRendererComponent
  • JDocumentRendererFeedAtom
  • JDocumentRendererFeedRss
  • JDocumentRendererHead
  • JDocumentRendererHtmlComponent
  • JDocumentRendererHtmlHead
  • JDocumentRendererHtmlMessage
  • JDocumentRendererHtmlModule
  • JDocumentRendererHtmlModules
  • JDocumentRendererMessage
  • JDocumentRendererModule
  • JDocumentRendererModules
  • JDocumentRendererRSS
  • JDocumentXml
  • JEditor
  • JError
  • JErrorPage
  • JEvent
  • JEventDispatcher
  • JExtension
  • JFacebook
  • JFacebookAlbum
  • JFacebookCheckin
  • JFacebookComment
  • JFacebookEvent
  • JFacebookGroup
  • JFacebookLink
  • JFacebookNote
  • JFacebookOAuth
  • JFacebookObject
  • JFacebookPhoto
  • JFacebookPost
  • JFacebookStatus
  • JFacebookUser
  • JFacebookVideo
  • JFactory
  • JFeed
  • JFeedEnclosure
  • JFeedEntry
  • JFeedFactory
  • JFeedImage
  • JFeedItem
  • JFeedLink
  • JFeedParser
  • JFeedParserAtom
  • JFeedParserRss
  • JFeedParserRssItunes
  • JFeedParserRssMedia
  • JFeedPerson
  • JFile
  • JFilesystemHelper
  • JFilesystemPatcher
  • JFilesystemWrapperFile
  • JFilesystemWrapperFolder
  • JFilesystemWrapperPath
  • JFilterInput
  • JFilterOutput
  • JFilterWrapperOutput
  • JFolder
  • JForm
  • JFormField
  • JFormFieldAccessLevel
  • JFormFieldAliastag
  • JFormFieldAuthor
  • JFormFieldCacheHandler
  • JFormFieldCalendar
  • JFormFieldCaptcha
  • JFormFieldCategory
  • JFormFieldCheckbox
  • JFormFieldCheckboxes
  • JFormFieldChromeStyle
  • JFormFieldColor
  • JFormFieldCombo
  • JFormFieldComponentlayout
  • JFormFieldComponents
  • JFormFieldContenthistory
  • JFormFieldContentlanguage
  • JFormFieldContenttype
  • JFormFieldDatabaseConnection
  • JFormFieldEditor
  • JFormFieldEMail
  • JFormFieldFile
  • JFormFieldFileList
  • JFormFieldFolderList
  • JFormFieldFrontend_Language
  • JFormFieldGroupedList
  • JFormFieldHeadertag
  • JFormFieldHelpsite
  • JFormFieldHidden
  • JFormFieldImageList
  • JFormFieldInteger
  • JFormFieldLanguage
  • JFormFieldLastvisitDateRange
  • JFormFieldLimitbox
  • JFormFieldList
  • JFormFieldMedia
  • JFormFieldMenu
  • JFormFieldMenuitem
  • JFormFieldMeter
  • JFormFieldModulelayout
  • JFormFieldModuleOrder
  • JFormFieldModulePosition
  • JFormFieldModuletag
  • JFormFieldNote
  • JFormFieldNumber
  • JFormFieldOrdering
  • JFormFieldPassword
  • JFormFieldPlugin_Status
  • JFormFieldPlugins
  • JFormFieldPredefinedList
  • JFormFieldRadio
  • JFormFieldRange
  • JFormFieldRegistrationDateRange
  • JFormFieldRepeatable
  • JFormFieldRules
  • JFormFieldSessionHandler
  • JFormFieldSpacer
  • JFormFieldSQL
  • JFormFieldStatus
  • JFormFieldSubform
  • JFormFieldTag
  • JFormFieldTel
  • JFormFieldTemplatestyle
  • JFormFieldText
  • JFormFieldTextarea
  • JFormFieldTimezone
  • JFormFieldUrl
  • JFormFieldUser
  • JFormFieldUserActive
  • JFormFieldUsergroup
  • JFormFieldUserGroupList
  • JFormFieldUserState
  • JFormHelper
  • JFormRule
  • JFormRuleBoolean
  • JFormRuleCalendar
  • JFormRuleCaptcha
  • JFormRuleColor
  • JFormRuleEmail
  • JFormRuleEquals
  • JFormRuleNotequals
  • JFormRuleNumber
  • JFormRuleOptions
  • JFormRulePassword
  • JFormRuleRules
  • JFormRuleTel
  • JFormRuleUrl
  • JFormRuleUsername
  • JFormWrapperHelper
  • JFTP
  • JGithub
  • JGithubAccount
  • JGithubCommits
  • JGithubForks
  • JGithubHooks
  • JGithubHttp
  • JGithubMeta
  • JGithubMilestones
  • JGithubObject
  • JGithubPackage
  • JGithubPackageActivity
  • JGithubPackageActivityEvents
  • JGithubPackageActivityNotifications
  • JGithubPackageActivityStarring
  • JGithubPackageActivityWatching
  • JGithubPackageAuthorization
  • JGithubPackageData
  • JGithubPackageDataBlobs
  • JGithubPackageDataCommits
  • JGithubPackageDataRefs
  • JGithubPackageDataTags
  • JGithubPackageDataTrees
  • JGithubPackageGists
  • JGithubPackageGistsComments
  • JGithubPackageGitignore
  • JGithubPackageIssues
  • JGithubPackageIssuesAssignees
  • JGithubPackageIssuesComments
  • JGithubPackageIssuesEvents
  • JGithubPackageIssuesLabels
  • JGithubPackageIssuesMilestones
  • JGithubPackageMarkdown
  • JGithubPackageOrgs
  • JGithubPackageOrgsMembers
  • JGithubPackageOrgsTeams
  • JGithubPackagePulls
  • JGithubPackagePullsComments
  • JGithubPackageRepositories
  • JGithubPackageRepositoriesCollaborators
  • JGithubPackageRepositoriesComments
  • JGithubPackageRepositoriesCommits
  • JGithubPackageRepositoriesContents
  • JGithubPackageRepositoriesDownloads
  • JGithubPackageRepositoriesForks
  • JGithubPackageRepositoriesHooks
  • JGithubPackageRepositoriesKeys
  • JGithubPackageRepositoriesMerging
  • JGithubPackageRepositoriesStatistics
  • JGithubPackageRepositoriesStatuses
  • JGithubPackageSearch
  • JGithubPackageUsers
  • JGithubPackageUsersEmails
  • JGithubPackageUsersFollowers
  • JGithubPackageUsersKeys
  • JGithubRefs
  • JGithubStatuses
  • JGoogle
  • JGoogleAuth
  • JGoogleAuthOauth2
  • JGoogleData
  • JGoogleDataAdsense
  • JGoogleDataCalendar
  • JGoogleDataPicasa
  • JGoogleDataPicasaAlbum
  • JGoogleDataPicasaPhoto
  • JGoogleDataPlus
  • JGoogleDataPlusActivities
  • JGoogleDataPlusComments
  • JGoogleDataPlusPeople
  • JGoogleEmbed
  • JGoogleEmbedAnalytics
  • JGoogleEmbedMaps
  • JGrid
  • JHelp
  • JHelper
  • JHelperContent
  • JHelperContenthistory
  • JHelperMedia
  • JHelperRoute
  • JHelperTags
  • JHelperUsergroups
  • JHtml
  • JHtmlAccess
  • JHtmlActionsDropdown
  • JHtmlBatch
  • JHtmlBehavior
  • JHtmlBootstrap
  • JHtmlCategory
  • JHtmlContent
  • JHtmlContentLanguage
  • JHtmlDate
  • JHtmlDebug
  • JHtmlDropdown
  • JHtmlEmail
  • JHtmlForm
  • JHtmlFormbehavior
  • JHtmlGrid
  • JHtmlIcons
  • JHtmlJGrid
  • JHtmlJquery
  • JHtmlLinks
  • JHtmlList
  • JHtmlMenu
  • JHtmlNumber
  • JHtmlRules
  • JHtmlSearchtools
  • JHtmlSelect
  • JHtmlSidebar
  • JHtmlSliders
  • JHtmlSortablelist
  • JHtmlString
  • JHtmlTabs
  • JHtmlTag
  • JHtmlTel
  • JHtmlUser
  • JHttp
  • JHttpFactory
  • JHttpResponse
  • JHttpTransportCurl
  • JHttpTransportSocket
  • JHttpTransportStream
  • JHttpWrapperFactory
  • JImage
  • JImageFilter
  • JImageFilterBackgroundfill
  • JImageFilterBrightness
  • JImageFilterContrast
  • JImageFilterEdgedetect
  • JImageFilterEmboss
  • JImageFilterGrayscale
  • JImageFilterNegate
  • JImageFilterSketchy
  • JImageFilterSmooth
  • JInput
  • JInputCli
  • JInputCookie
  • JInputFiles
  • JInputJSON
  • JInstaller
  • JInstallerAdapter
  • JInstallerAdapterComponent
  • JInstallerAdapterFile
  • JInstallerAdapterLanguage
  • JInstallerAdapterLibrary
  • JInstallerAdapterModule
  • JInstallerAdapterPackage
  • JInstallerAdapterPlugin
  • JInstallerAdapterTemplate
  • JInstallerComponent
  • JInstallerExtension
  • JInstallerFile
  • JInstallerHelper
  • JInstallerLanguage
  • JInstallerLibrary
  • JInstallerManifest
  • JInstallerManifestLibrary
  • JInstallerManifestPackage
  • JInstallerModule
  • JInstallerPackage
  • JInstallerPlugin
  • JInstallerScript
  • JInstallerTemplate
  • JKeychain
  • JLanguage
  • JLanguageAssociations
  • JLanguageHelper
  • JLanguageMultilang
  • JLanguageStemmer
  • JLanguageStemmerPorteren
  • JLanguageTransliterate
  • JLanguageWrapperHelper
  • JLanguageWrapperText
  • JLanguageWrapperTransliterate
  • JLayoutBase
  • JLayoutFile
  • JLayoutHelper
  • JLDAP
  • JLess
  • JLessFormatterJoomla
  • JLibraryHelper
  • JLinkedin
  • JLinkedinCommunications
  • JLinkedinCompanies
  • JLinkedinGroups
  • JLinkedinJobs
  • JLinkedinOauth
  • JLinkedinObject
  • JLinkedinPeople
  • JLinkedinStream
  • JLoader
  • JLog
  • JLogEntry
  • JLogger
  • JLogLogger
  • JLogLoggerCallback
  • JLogLoggerDatabase
  • JLogLoggerEcho
  • JLogLoggerFormattedtext
  • JLogLoggerMessagequeue
  • JLogLoggerSyslog
  • JLogLoggerW3c
  • JMail
  • JMailHelper
  • JMailWrapperHelper
  • JMediawiki
  • JMediawikiCategories
  • JMediawikiHttp
  • JMediawikiImages
  • JMediawikiLinks
  • JMediawikiObject
  • JMediawikiPages
  • JMediawikiSearch
  • JMediawikiSites
  • JMediawikiUsers
  • JMenu
  • JMenuAdministrator
  • JMenuItem
  • JMenuSite
  • JMicrodata
  • JModelAdmin
  • JModelBase
  • JModelDatabase
  • JModelForm
  • JModelItem
  • JModelLegacy
  • JModelList
  • JModuleHelper
  • JNode
  • JOAuth1Client
  • JOAuth2Client
  • JObject
  • JObservable
  • JObserver
  • JObserverMapper
  • JObserverUpdater
  • JObserverWrapperMapper
  • JOpenSearchImage
  • JOpenSearchUrl
  • JOpenstreetmap
  • JOpenstreetmapChangesets
  • JOpenstreetmapElements
  • JOpenstreetmapGps
  • JOpenstreetmapInfo
  • JOpenstreetmapOauth
  • JOpenstreetmapObject
  • JOpenstreetmapUser
  • JPagination
  • JPaginationObject
  • JPath
  • JPathway
  • JPathwaySite
  • JPlatform
  • JPlugin
  • JPluginHelper
  • JProfiler
  • JRequest
  • JResponse
  • JResponseJson
  • JRoute
  • JRouter
  • JRouterAdministrator
  • JRouterSite
  • JRouteWrapperRoute
  • JRule
  • JRules
  • JSchemaChangeitem
  • JSchemaChangeitemMysql
  • JSchemaChangeitemPostgresql
  • JSchemaChangeitemSqlsrv
  • JSchemaChangeset
  • JSearchHelper
  • JSession
  • JSessionHandlerJoomla
  • JSessionHandlerNative
  • JSessionStorage
  • JSessionStorageApc
  • JSessionStorageDatabase
  • JSessionStorageMemcache
  • JSessionStorageMemcached
  • JSessionStorageNone
  • JSessionStorageWincache
  • JSessionStorageXcache
  • JSimplecrypt
  • JSimplepieFactory
  • JStream
  • JStreamString
  • JString
  • JStringController
  • JStringPunycode
  • JStringWrapperNormalise
  • JStringWrapperPunycode
  • JTable
  • JTableAsset
  • JTableCategory
  • JTableContent
  • JTableContenthistory
  • JTableContenttype
  • JTableCorecontent
  • JTableExtension
  • JTableInterface
  • JTableLanguage
  • JTableMenu
  • JTableMenuType
  • JTableModule
  • JTableNested
  • JTableObserver
  • JTableObserverContenthistory
  • JTableObserverTags
  • JTableSession
  • JTableUcm
  • JTableUpdate
  • JTableUpdatesite
  • JTableUser
  • JTableUsergroup
  • JTableViewlevel
  • JText
  • JToolbar
  • JToolbarButton
  • JToolbarButtonConfirm
  • JToolbarButtonCustom
  • JToolbarButtonHelp
  • JToolbarButtonLink
  • JToolbarButtonPopup
  • JToolbarButtonSeparator
  • JToolbarButtonSlider
  • JToolbarButtonStandard
  • JTree
  • JTwitter
  • JTwitterBlock
  • JTwitterDirectmessages
  • JTwitterFavorites
  • JTwitterFriends
  • JTwitterHelp
  • JTwitterLists
  • JTwitterOAuth
  • JTwitterObject
  • JTwitterPlaces
  • JTwitterProfile
  • JTwittersearch
  • JTwitterStatuses
  • JTwitterTrends
  • JTwitterUsers
  • JUcmBase
  • JUcmContent
  • JUcmType
  • JUpdate
  • JUpdateAdapter
  • JUpdater
  • JUpdaterCollection
  • JUpdaterExtension
  • JUri
  • JUser
  • JUserHelper
  • JUserWrapperHelper
  • JUtility
  • JVersion
  • JViewBase
  • JViewCategories
  • JViewCategory
  • JViewCategoryfeed
  • JViewHtml
  • JViewLegacy
  • JWeb
  • JWebClient
  • JXMLElement
  • lessc
  • lessc_formatter_classic
  • lessc_formatter_compressed
  • lessc_formatter_lessjs
  • lessc_parser
  • lessify
  • Net_IDNA_php4
  • nodecounter
  • ntlm_sasl_client_class
  • PHPMailer
  • PHPMailerOAuth
  • PHPMailerOAuthGoogle
  • POP3
  • SimplePie
  • SimplePie_Author
  • SimplePie_Autoloader
  • SimplePie_Cache
  • SimplePie_Cache_DB
  • SimplePie_Cache_File
  • SimplePie_Cache_Memcache
  • SimplePie_Cache_MySQL
  • SimplePie_Caption
  • SimplePie_Category
  • SimplePie_Content_Type_Sniffer
  • SimplePie_Copyright
  • SimplePie_Core
  • SimplePie_Credit
  • SimplePie_Decode_HTML_Entities
  • SimplePie_Enclosure
  • SimplePie_File
  • SimplePie_gzdecode
  • SimplePie_HTTP_Parser
  • SimplePie_IRI
  • SimplePie_Item
  • SimplePie_Locator
  • SimplePie_Misc
  • SimplePie_Net_IPv6
  • SimplePie_Parse_Date
  • SimplePie_Parser
  • SimplePie_Rating
  • SimplePie_Registry
  • SimplePie_Restriction
  • SimplePie_Sanitize
  • SimplePie_Source
  • SimplePie_XML_Declaration_Parser
  • SMTP
  • tagparse
  • TypeError

Interfaces

  • FOFConfigDomainInterface
  • FOFDatabaseInterface
  • FOFDatabaseQueryLimitable
  • FOFDatabaseQueryPreparable
  • FOFDownloadInterface
  • FOFEncryptAesInterface
  • FOFEncryptRandvalinterface
  • FOFFormField
  • FOFHalRenderInterface
  • FOFPlatformFilesystemInterface
  • FOFPlatformInterface
  • JArchiveExtractable
  • JAssociationExtensionInterface
  • JCacheException
  • JComponentRouterInterface
  • JComponentRouterRulesInterface
  • JController
  • JCryptCipher
  • JCryptPassword
  • JFeedParserNamespace
  • JHttpTransport
  • JLayout
  • JModel
  • JObservableInterface
  • JObserverInterface
  • JObserverUpdaterInterface
  • JSessionHandlerInterface
  • JsonSerializable
  • JUcm
  • JView
  • SimplePie_Cache_Base

Exceptions

  • Error
  • JAccessExceptionNotallowed
  • JCacheExceptionConnecting
  • JCacheExceptionUnsupported
  • JComponentExceptionMissing
  • JDatabaseException
  • JDatabaseExceptionConnecting
  • JDatabaseExceptionExecuting
  • JDatabaseExceptionUnsupported
  • JException
  • JSessionExceptionUnsupported
  • LogException
  • phpmailerException
  • SimplePie_Exception

Constants

  • JERROR_CALLBACK_NOT_CALLABLE
  • JERROR_ILLEGAL_MODE
  • JERROR_ILLEGAL_OPTIONS
  • JREQUEST_ALLOWHTML
  • JREQUEST_ALLOWRAW
  • JREQUEST_NOTRIM
  • JROUTER_MODE_RAW
  • JROUTER_MODE_SEF

Functions

  • __autoload
  • array_column
  • boolval
  • composerRequire205c915b9c7d3e718e7c95793ee67ffe
  • gzopen
  • gzseek
  • gztell
  • hash_equals
  • hash_pbkdf2
  • HTMLFilter
  • jexit
  • jimport
  • json_last_error_msg
  • ldap_escape
  • password_get_info
  • password_hash
  • password_needs_rehash
  • password_verify
  • PHPMailerAutoload
  • random_bytes
  • random_int
  • RandomCompat_intval
  • RandomCompat_strlen
  • RandomCompat_substr
  • tln_body2div
  • tln_casenormalize
  • tln_deent
  • tln_defang
  • tln_findnxreg
  • tln_findnxstr
  • tln_fixatts
  • tln_fixstyle
  • tln_fixurl
  • tln_getnxtag
  • tln_sanitize
  • tln_skipspace
  • tln_tagprint
  • tln_unspace
  • utf8_accents_to_ascii
  • utf8_bad_explain
  • utf8_bad_find
  • utf8_bad_findall
  • utf8_bad_identify
  • utf8_bad_replace
  • utf8_bad_strip
  • utf8_byte_position
  • utf8_compliant
  • utf8_from_unicode
  • utf8_ireplace
  • utf8_is_ascii
  • utf8_is_ascii_ctrl
  • utf8_is_valid
  • utf8_is_word_chars
  • utf8_locate_current_chr
  • utf8_locate_next_chr
  • utf8_ltrim
  • utf8_ord
  • utf8_rtrim
  • utf8_specials_pattern
  • utf8_str_pad
  • utf8_str_split
  • utf8_strcasecmp
  • utf8_strcspn
  • utf8_strip_ascii_ctrl
  • utf8_strip_non_ascii
  • utf8_strip_non_ascii_ctrl
  • utf8_strip_specials
  • utf8_stristr
  • utf8_strlen
  • utf8_strpos
  • utf8_strrev
  • utf8_strrpos
  • utf8_strspn
  • utf8_strtolower
  • utf8_strtoupper
  • utf8_substr
  • utf8_substr_replace
  • utf8_to_unicode
  • utf8_trim
  • utf8_ucfirst
  • utf8_ucwords
  • utf8_ucwords_callback
   1 <?php
   2 /**
   3  * @package     Joomla.Libraries
   4  * @subpackage  HTML
   5  *
   6  * @copyright   Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved.
   7  * @license     GNU General Public License version 2 or later; see LICENSE.txt
   8  */
   9 
  10 defined('JPATH_PLATFORM') or die;
  11 
  12 /**
  13  * Utility class for JavaScript behaviors
  14  *
  15  * @since  1.5
  16  */
  17 abstract class JHtmlBehavior
  18 {
  19     /**
  20      * Array containing information for loaded files
  21      *
  22      * @var    array
  23      * @since  2.5
  24      */
  25     protected static $loaded = array();
  26 
  27     /**
  28      * Method to load the MooTools framework into the document head
  29      *
  30      * If debugging mode is on an uncompressed version of MooTools is included for easier debugging.
  31      *
  32      * @param   boolean  $extras  Flag to determine whether to load MooTools More in addition to Core
  33      * @param   mixed    $debug   Is debugging mode on? [optional]
  34      *
  35      * @return  void
  36      *
  37      * @since   1.6
  38      * @deprecated 4.0 Update scripts to jquery
  39      */
  40     public static function framework($extras = false, $debug = null)
  41     {
  42         $type = $extras ? 'more' : 'core';
  43 
  44         // Only load once
  45         if (!empty(static::$loaded[__METHOD__][$type]))
  46         {
  47             return;
  48         }
  49 
  50         JLog::add('JHtmlBehavior::framework is deprecated. Update to jquery scripts.', JLog::WARNING, 'deprecated');
  51 
  52         // If no debugging value is set, use the configuration setting
  53         if ($debug === null)
  54         {
  55             $debug = JDEBUG;
  56         }
  57 
  58         if ($type !== 'core' && empty(static::$loaded[__METHOD__]['core']))
  59         {
  60             static::framework(false, $debug);
  61         }
  62 
  63         JHtml::_('script', 'system/mootools-' . $type . '.js', array('version' => 'auto', 'relative' => true, 'detectDebug' => $debug));
  64 
  65         // Keep loading core.js for BC reasons
  66         static::core();
  67 
  68         static::$loaded[__METHOD__][$type] = true;
  69 
  70         return;
  71     }
  72 
  73     /**
  74      * Method to load core.js into the document head.
  75      *
  76      * Core.js defines the 'Joomla' namespace and contains functions which are used across extensions
  77      *
  78      * @return  void
  79      *
  80      * @since   3.3
  81      */
  82     public static function core()
  83     {
  84         // Only load once
  85         if (isset(static::$loaded[__METHOD__]))
  86         {
  87             return;
  88         }
  89 
  90         JHtml::_('script', 'system/core.js', array('version' => 'auto', 'relative' => true));
  91 
  92         // Add core and base uri paths so javascript scripts can use them.
  93         JFactory::getDocument()->addScriptOptions('system.paths', array('root' => JUri::root(true), 'base' => JUri::base(true)));
  94 
  95         static::$loaded[__METHOD__] = true;
  96     }
  97 
  98     /**
  99      * Add unobtrusive JavaScript support for image captions.
 100      *
 101      * @param   string  $selector  The selector for which a caption behaviour is to be applied.
 102      *
 103      * @return  void
 104      *
 105      * @since   1.5
 106      */
 107     public static function caption($selector = 'img.caption')
 108     {
 109         // Only load once
 110         if (isset(static::$loaded[__METHOD__][$selector]))
 111         {
 112             return;
 113         }
 114 
 115         // Include jQuery
 116         JHtml::_('jquery.framework');
 117 
 118         JHtml::_('script', 'system/caption.js', array('version' => 'auto', 'relative' => true));
 119 
 120         // Attach caption to document
 121         JFactory::getDocument()->addScriptDeclaration(
 122             "jQuery(window).on('load',  function() {
 123                 new JCaption('" . $selector . "');
 124             });"
 125         );
 126 
 127         // Set static array
 128         static::$loaded[__METHOD__][$selector] = true;
 129     }
 130 
 131     /**
 132      * Add unobtrusive JavaScript support for form validation.
 133      *
 134      * To enable form validation the form tag must have class="form-validate".
 135      * Each field that needs to be validated needs to have class="validate".
 136      * Additional handlers can be added to the handler for username, password,
 137      * numeric and email. To use these add class="validate-email" and so on.
 138      *
 139      * @return  void
 140      *
 141      * @since   1.5
 142      *
 143      * @Deprecated 3.4 Use formvalidator instead
 144      */
 145     public static function formvalidation()
 146     {
 147         JLog::add('The use of formvalidation is deprecated use formvalidator instead.', JLog::WARNING, 'deprecated');
 148 
 149         // Only load once
 150         if (isset(static::$loaded[__METHOD__]))
 151         {
 152             return;
 153         }
 154 
 155         // Include MooTools framework
 156         static::framework();
 157 
 158         // Load the new jQuery code
 159         static::formvalidator();
 160     }
 161 
 162     /**
 163      * Add unobtrusive JavaScript support for form validation.
 164      *
 165      * To enable form validation the form tag must have class="form-validate".
 166      * Each field that needs to be validated needs to have class="validate".
 167      * Additional handlers can be added to the handler for username, password,
 168      * numeric and email. To use these add class="validate-email" and so on.
 169      *
 170      * @return  void
 171      *
 172      * @since   3.4
 173      */
 174     public static function formvalidator()
 175     {
 176         // Only load once
 177         if (isset(static::$loaded[__METHOD__]))
 178         {
 179             return;
 180         }
 181 
 182         // Include core
 183         static::core();
 184 
 185         // Include jQuery
 186         JHtml::_('jquery.framework');
 187 
 188         // Add validate.js language strings
 189         JText::script('JLIB_FORM_FIELD_INVALID');
 190 
 191         JHtml::_('script', 'system/punycode.js', array('version' => 'auto', 'relative' => true));
 192         JHtml::_('script', 'system/validate.js', array('version' => 'auto', 'relative' => true));
 193         static::$loaded[__METHOD__] = true;
 194     }
 195 
 196     /**
 197      * Add unobtrusive JavaScript support for submenu switcher support
 198      *
 199      * @return  void
 200      *
 201      * @since   1.5
 202      */
 203     public static function switcher()
 204     {
 205         // Only load once
 206         if (isset(static::$loaded[__METHOD__]))
 207         {
 208             return;
 209         }
 210 
 211         // Include jQuery
 212         JHtml::_('jquery.framework');
 213 
 214         JHtml::_('script', 'system/switcher.js', array('framework' => true, 'version' => 'auto', 'relative' => true));
 215 
 216         $script = "
 217             document.switcher = null;
 218             jQuery(function($){
 219                 var toggler = document.getElementById('submenu');
 220                 var element = document.getElementById('config-document');
 221                 if (element) {
 222                     document.switcher = new JSwitcher(toggler, element);
 223                 }
 224             });";
 225 
 226         JFactory::getDocument()->addScriptDeclaration($script);
 227         static::$loaded[__METHOD__] = true;
 228     }
 229 
 230     /**
 231      * Add unobtrusive JavaScript support for a combobox effect.
 232      *
 233      * Note that this control is only reliable in absolutely positioned elements.
 234      * Avoid using a combobox in a slider or dynamic pane.
 235      *
 236      * @return  void
 237      *
 238      * @since   1.5
 239      */
 240     public static function combobox()
 241     {
 242         if (isset(static::$loaded[__METHOD__]))
 243         {
 244             return;
 245         }
 246         // Include core
 247         static::core();
 248 
 249         JHtml::_('script', 'system/combobox.js', array('version' => 'auto', 'relative' => true));
 250         static::$loaded[__METHOD__] = true;
 251     }
 252 
 253     /**
 254      * Add unobtrusive JavaScript support for a hover tooltips.
 255      *
 256      * Add a title attribute to any element in the form
 257      * title="title::text"
 258      *
 259      * Uses the core Tips class in MooTools.
 260      *
 261      * @param   string  $selector  The class selector for the tooltip.
 262      * @param   array   $params    An array of options for the tooltip.
 263      *                             Options for the tooltip can be:
 264      *                             - maxTitleChars  integer   The maximum number of characters in the tooltip title (defaults to 50).
 265      *                             - offsets        object    The distance of your tooltip from the mouse (defaults to {'x': 16, 'y': 16}).
 266      *                             - showDelay      integer   The millisecond delay the show event is fired (defaults to 100).
 267      *                             - hideDelay      integer   The millisecond delay the hide hide is fired (defaults to 100).
 268      *                             - className      string    The className your tooltip container will get.
 269      *                             - fixed          boolean   If set to true, the toolTip will not follow the mouse.
 270      *                             - onShow         function  The default function for the show event, passes the tip element
 271      *                               and the currently hovered element.
 272      *                             - onHide         function  The default function for the hide event, passes the currently
 273      *                               hovered element.
 274      *
 275      * @return  void
 276      *
 277      * @since   1.5
 278      */
 279     public static function tooltip($selector = '.hasTip', $params = array())
 280     {
 281         $sig = md5(serialize(array($selector, $params)));
 282 
 283         if (isset(static::$loaded[__METHOD__][$sig]))
 284         {
 285             return;
 286         }
 287 
 288         // Include MooTools framework
 289         static::framework(true);
 290 
 291         // Setup options object
 292         $opt['maxTitleChars'] = isset($params['maxTitleChars']) && $params['maxTitleChars'] ? (int) $params['maxTitleChars'] : 50;
 293 
 294         // Offsets needs an array in the format: array('x'=>20, 'y'=>30)
 295         $opt['offset']    = isset($params['offset']) && is_array($params['offset']) ? $params['offset'] : null;
 296         $opt['showDelay'] = isset($params['showDelay']) ? (int) $params['showDelay'] : null;
 297         $opt['hideDelay'] = isset($params['hideDelay']) ? (int) $params['hideDelay'] : null;
 298         $opt['className'] = isset($params['className']) ? $params['className'] : null;
 299         $opt['fixed']     = isset($params['fixed']) && $params['fixed'];
 300         $opt['onShow']    = isset($params['onShow']) ? '\\' . $params['onShow'] : null;
 301         $opt['onHide']    = isset($params['onHide']) ? '\\' . $params['onHide'] : null;
 302 
 303         $options = JHtml::getJSObject($opt);
 304 
 305         // Include jQuery
 306         JHtml::_('jquery.framework');
 307 
 308         // Attach tooltips to document
 309         JFactory::getDocument()->addScriptDeclaration(
 310             "jQuery(function($) {
 311              $('$selector').each(function() {
 312                 var title = $(this).attr('title');
 313                 if (title) {
 314                     var parts = title.split('::', 2);
 315                     var mtelement = document.id(this);
 316                     mtelement.store('tip:title', parts[0]);
 317                     mtelement.store('tip:text', parts[1]);
 318                 }
 319             });
 320             var JTooltips = new Tips($('$selector').get(), $options);
 321         });"
 322         );
 323 
 324         // Set static array
 325         static::$loaded[__METHOD__][$sig] = true;
 326 
 327         return;
 328     }
 329 
 330     /**
 331      * Add unobtrusive JavaScript support for modal links.
 332      *
 333      * @param   string  $selector  The selector for which a modal behaviour is to be applied.
 334      * @param   array   $params    An array of parameters for the modal behaviour.
 335      *                             Options for the modal behaviour can be:
 336      *                            - ajaxOptions
 337      *                            - size
 338      *                            - shadow
 339      *                            - overlay
 340      *                            - onOpen
 341      *                            - onClose
 342      *                            - onUpdate
 343      *                            - onResize
 344      *                            - onShow
 345      *                            - onHide
 346      *
 347      * @return  void
 348      *
 349      * @since   1.5
 350      * @deprecated 4.0  Use the modal equivalent from bootstrap
 351      */
 352     public static function modal($selector = 'a.modal', $params = array())
 353     {
 354         $document = JFactory::getDocument();
 355 
 356         // Load the necessary files if they haven't yet been loaded
 357         if (!isset(static::$loaded[__METHOD__]))
 358         {
 359             // Include MooTools framework
 360             static::framework(true);
 361 
 362             // Load the JavaScript and css
 363             JHtml::_('script', 'system/modal.js', array('framework' => true, 'version' => 'auto', 'relative' => true));
 364             JHtml::_('stylesheet', 'system/modal.css', array('version' => 'auto', 'relative' => true));
 365         }
 366 
 367         $sig = md5(serialize(array($selector, $params)));
 368 
 369         if (isset(static::$loaded[__METHOD__][$sig]))
 370         {
 371             return;
 372         }
 373 
 374         JLog::add('JHtmlBehavior::modal is deprecated. Use the modal equivalent from bootstrap.', JLog::WARNING, 'deprecated');
 375 
 376         // Setup options object
 377         $opt['ajaxOptions']   = isset($params['ajaxOptions']) && is_array($params['ajaxOptions']) ? $params['ajaxOptions'] : null;
 378         $opt['handler']       = isset($params['handler']) ? $params['handler'] : null;
 379         $opt['parseSecure']   = isset($params['parseSecure']) ? (bool) $params['parseSecure'] : null;
 380         $opt['closable']      = isset($params['closable']) ? (bool) $params['closable'] : null;
 381         $opt['closeBtn']      = isset($params['closeBtn']) ? (bool) $params['closeBtn'] : null;
 382         $opt['iframePreload'] = isset($params['iframePreload']) ? (bool) $params['iframePreload'] : null;
 383         $opt['iframeOptions'] = isset($params['iframeOptions']) && is_array($params['iframeOptions']) ? $params['iframeOptions'] : null;
 384         $opt['size']          = isset($params['size']) && is_array($params['size']) ? $params['size'] : null;
 385         $opt['shadow']        = isset($params['shadow']) ? $params['shadow'] : null;
 386         $opt['overlay']       = isset($params['overlay']) ? $params['overlay'] : null;
 387         $opt['onOpen']        = isset($params['onOpen']) ? $params['onOpen'] : null;
 388         $opt['onClose']       = isset($params['onClose']) ? $params['onClose'] : null;
 389         $opt['onUpdate']      = isset($params['onUpdate']) ? $params['onUpdate'] : null;
 390         $opt['onResize']      = isset($params['onResize']) ? $params['onResize'] : null;
 391         $opt['onMove']        = isset($params['onMove']) ? $params['onMove'] : null;
 392         $opt['onShow']        = isset($params['onShow']) ? $params['onShow'] : null;
 393         $opt['onHide']        = isset($params['onHide']) ? $params['onHide'] : null;
 394 
 395         // Include jQuery
 396         JHtml::_('jquery.framework');
 397 
 398         if (isset($params['fullScreen']) && (bool) $params['fullScreen'])
 399         {
 400             $opt['size']      = array('x' => '\\jQuery(window).width() - 80', 'y' => '\\jQuery(window).height() - 80');
 401         }
 402 
 403         $options = JHtml::getJSObject($opt);
 404 
 405         // Attach modal behavior to document
 406         $document
 407             ->addScriptDeclaration(
 408             "
 409         jQuery(function($) {
 410             SqueezeBox.initialize(" . $options . ");
 411             SqueezeBox.assign($('" . $selector . "').get(), {
 412                 parse: 'rel'
 413             });
 414         });
 415 
 416         window.jModalClose = function () {
 417             SqueezeBox.close();
 418         };
 419         
 420         // Add extra modal close functionality for tinyMCE-based editors
 421         document.onreadystatechange = function () {
 422             if (document.readyState == 'interactive' && typeof tinyMCE != 'undefined' && tinyMCE)
 423             {
 424                 if (typeof window.jModalClose_no_tinyMCE === 'undefined')
 425                 {   
 426                     window.jModalClose_no_tinyMCE = typeof(jModalClose) == 'function'  ?  jModalClose  :  false;
 427                     
 428                     jModalClose = function () {
 429                         if (window.jModalClose_no_tinyMCE) window.jModalClose_no_tinyMCE.apply(this, arguments);
 430                         tinyMCE.activeEditor.windowManager.close();
 431                     };
 432                 }
 433         
 434                 if (typeof window.SqueezeBoxClose_no_tinyMCE === 'undefined')
 435                 {
 436                     if (typeof(SqueezeBox) == 'undefined')  SqueezeBox = {};
 437                     window.SqueezeBoxClose_no_tinyMCE = typeof(SqueezeBox.close) == 'function'  ?  SqueezeBox.close  :  false;
 438         
 439                     SqueezeBox.close = function () {
 440                         if (window.SqueezeBoxClose_no_tinyMCE)  window.SqueezeBoxClose_no_tinyMCE.apply(this, arguments);
 441                         tinyMCE.activeEditor.windowManager.close();
 442                     };
 443                 }
 444             }
 445         };
 446         "
 447         );
 448 
 449         // Set static array
 450         static::$loaded[__METHOD__][$sig] = true;
 451 
 452         return;
 453     }
 454 
 455     /**
 456      * JavaScript behavior to allow shift select in grids
 457      *
 458      * @param   string  $id  The id of the form for which a multiselect behaviour is to be applied.
 459      *
 460      * @return  void
 461      *
 462      * @since   1.7
 463      */
 464     public static function multiselect($id = 'adminForm')
 465     {
 466         // Only load once
 467         if (isset(static::$loaded[__METHOD__][$id]))
 468         {
 469             return;
 470         }
 471 
 472         // Include core
 473         static::core();
 474 
 475         // Include jQuery
 476         JHtml::_('jquery.framework');
 477 
 478         JHtml::_('script', 'system/multiselect.js', array('version' => 'auto', 'relative' => true));
 479 
 480         // Attach multiselect to document
 481         JFactory::getDocument()->addScriptDeclaration(
 482             "jQuery(document).ready(function() {
 483                 Joomla.JMultiSelect('" . $id . "');
 484             });"
 485         );
 486 
 487         // Set static array
 488         static::$loaded[__METHOD__][$id] = true;
 489 
 490         return;
 491     }
 492 
 493     /**
 494      * Add unobtrusive javascript support for a collapsible tree.
 495      *
 496      * @param   string  $id      An index
 497      * @param   array   $params  An array of options.
 498      * @param   array   $root    The root node
 499      *
 500      * @return  void
 501      *
 502      * @since   1.5
 503      */
 504     public static function tree($id, $params = array(), $root = array())
 505     {
 506         // Include MooTools framework
 507         static::framework();
 508 
 509         JHtml::_('script', 'system/mootree.js', array('framework' => true, 'version' => 'auto', 'relative' => true));
 510         JHtml::_('stylesheet', 'system/mootree.css', array('version' => 'auto', 'relative' => true));
 511 
 512         if (isset(static::$loaded[__METHOD__][$id]))
 513         {
 514             return;
 515         }
 516 
 517         // Include jQuery
 518         JHtml::_('jquery.framework');
 519 
 520         // Setup options object
 521         $opt['div']   = array_key_exists('div', $params) ? $params['div'] : $id . '_tree';
 522         $opt['mode']  = array_key_exists('mode', $params) ? $params['mode'] : 'folders';
 523         $opt['grid']  = array_key_exists('grid', $params) ? '\\' . $params['grid'] : true;
 524         $opt['theme'] = array_key_exists('theme', $params) ? $params['theme'] : JHtml::_('image', 'system/mootree.gif', '', array(), true, true);
 525 
 526         // Event handlers
 527         $opt['onExpand'] = array_key_exists('onExpand', $params) ? '\\' . $params['onExpand'] : null;
 528         $opt['onSelect'] = array_key_exists('onSelect', $params) ? '\\' . $params['onSelect'] : null;
 529         $opt['onClick']  = array_key_exists('onClick', $params) ? '\\' . $params['onClick']
 530         : '\\function(node){  window.open(node.data.url, node.data.target != null ? node.data.target : \'_self\'); }';
 531 
 532         $options = JHtml::getJSObject($opt);
 533 
 534         // Setup root node
 535         $rt['text']     = array_key_exists('text', $root) ? $root['text'] : 'Root';
 536         $rt['id']       = array_key_exists('id', $root) ? $root['id'] : null;
 537         $rt['color']    = array_key_exists('color', $root) ? $root['color'] : null;
 538         $rt['open']     = array_key_exists('open', $root) ? '\\' . $root['open'] : true;
 539         $rt['icon']     = array_key_exists('icon', $root) ? $root['icon'] : null;
 540         $rt['openicon'] = array_key_exists('openicon', $root) ? $root['openicon'] : null;
 541         $rt['data']     = array_key_exists('data', $root) ? $root['data'] : null;
 542         $rootNode = JHtml::getJSObject($rt);
 543 
 544         $treeName = array_key_exists('treeName', $params) ? $params['treeName'] : '';
 545 
 546         $js = '     jQuery(function(){
 547             tree' . $treeName . ' = new MooTreeControl(' . $options . ',' . $rootNode . ');
 548             tree' . $treeName . '.adopt(\'' . $id . '\');})';
 549 
 550         // Attach tooltips to document
 551         $document = JFactory::getDocument();
 552         $document->addScriptDeclaration($js);
 553 
 554         // Set static array
 555         static::$loaded[__METHOD__][$id] = true;
 556 
 557         return;
 558     }
 559 
 560     /**
 561      * Add unobtrusive JavaScript support for a calendar control.
 562      *
 563      * @return  void
 564      *
 565      * @since   1.5
 566      *
 567      * @deprecated 4.0
 568      */
 569     public static function calendar()
 570     {
 571         // Only load once
 572         if (isset(static::$loaded[__METHOD__]))
 573         {
 574             return;
 575         }
 576 
 577         JLog::add('JHtmlBehavior::calendar is deprecated as the static assets are being loaded in the relative layout.', JLog::WARNING, 'deprecated');
 578 
 579         $document = JFactory::getDocument();
 580         $tag      = JFactory::getLanguage()->getTag();
 581         $attribs  = array('title' => JText::_('JLIB_HTML_BEHAVIOR_GREEN'), 'media' => 'all');
 582 
 583         JHtml::_('stylesheet', 'system/calendar-jos.css', array('version' => 'auto', 'relative' => true), $attribs);
 584         JHtml::_('script', $tag . '/calendar.js', array('version' => 'auto', 'relative' => true));
 585         JHtml::_('script', $tag . '/calendar-setup.js', array('version' => 'auto', 'relative' => true));
 586 
 587         $translation = static::calendartranslation();
 588 
 589         if ($translation)
 590         {
 591             $document->addScriptDeclaration($translation);
 592         }
 593 
 594         static::$loaded[__METHOD__] = true;
 595     }
 596 
 597     /**
 598      * Add unobtrusive JavaScript support for a color picker.
 599      *
 600      * @return  void
 601      *
 602      * @since   1.7
 603      *
 604      * @deprecated 4.0 Use directly the field or the layout
 605      */
 606     public static function colorpicker()
 607     {
 608         // Only load once
 609         if (isset(static::$loaded[__METHOD__]))
 610         {
 611             return;
 612         }
 613 
 614         // Include jQuery
 615         JHtml::_('jquery.framework');
 616 
 617         JHtml::_('script', 'jui/jquery.minicolors.min.js', array('version' => 'auto', 'relative' => true));
 618         JHtml::_('stylesheet', 'jui/jquery.minicolors.css', array('version' => 'auto', 'relative' => true));
 619         JFactory::getDocument()->addScriptDeclaration("
 620                 jQuery(document).ready(function (){
 621                     jQuery('.minicolors').each(function() {
 622                         jQuery(this).minicolors({
 623                             control: jQuery(this).attr('data-control') || 'hue',
 624                             format: jQuery(this).attr('data-validate') === 'color'
 625                                 ? 'hex'
 626                                 : (jQuery(this).attr('data-format') === 'rgba'
 627                                     ? 'rgb'
 628                                     : jQuery(this).attr('data-format'))
 629                                 || 'hex',
 630                             keywords: jQuery(this).attr('data-keywords') || '',
 631                             opacity: jQuery(this).attr('data-format') === 'rgba' ? true : false || false,
 632                             position: jQuery(this).attr('data-position') || 'default',
 633                             theme: 'bootstrap'
 634                         });
 635                     });
 636                 });
 637             "
 638         );
 639 
 640         static::$loaded[__METHOD__] = true;
 641     }
 642 
 643     /**
 644      * Add unobtrusive JavaScript support for a simple color picker.
 645      *
 646      * @return  void
 647      *
 648      * @since   3.1
 649      *
 650      * @deprecated 4.0 Use directly the field or the layout
 651      */
 652     public static function simplecolorpicker()
 653     {
 654         // Only load once
 655         if (isset(static::$loaded[__METHOD__]))
 656         {
 657             return;
 658         }
 659 
 660         // Include jQuery
 661         JHtml::_('jquery.framework');
 662 
 663         JHtml::_('script', 'jui/jquery.simplecolors.min.js', array('version' => 'auto', 'relative' => true));
 664         JHtml::_('stylesheet', 'jui/jquery.simplecolors.css', array('version' => 'auto', 'relative' => true));
 665         JFactory::getDocument()->addScriptDeclaration("
 666                 jQuery(document).ready(function (){
 667                     jQuery('select.simplecolors').simplecolors();
 668                 });
 669             "
 670         );
 671 
 672         static::$loaded[__METHOD__] = true;
 673     }
 674 
 675     /**
 676      * Keep session alive, for example, while editing or creating an article.
 677      *
 678      * @return  void
 679      *
 680      * @since   1.5
 681      */
 682     public static function keepalive()
 683     {
 684         // Only load once
 685         if (isset(static::$loaded[__METHOD__]))
 686         {
 687             return;
 688         }
 689 
 690         $session = JFactory::getSession();
 691 
 692         // If the handler is not 'Database', we set a fixed, small refresh value (here: 5 min)
 693         $refreshTime = 300;
 694 
 695         if ($session->storeName === 'database')
 696         {
 697             $lifeTime    = $session->getExpire();
 698             $refreshTime = $lifeTime <= 60 ? 45 : $lifeTime - 60;
 699 
 700             // The longest refresh period is one hour to prevent integer overflow.
 701             if ($refreshTime > 3600 || $refreshTime <= 0)
 702             {
 703                 $refreshTime = 3600;
 704             }
 705         }
 706 
 707         // If we are in the frontend or logged in as a user, we can use the ajax component to reduce the load
 708         $uri = 'index.php' . (JFactory::getApplication()->isClient('site') || !JFactory::getUser()->guest ? '?option=com_ajax&format=json' : '');
 709 
 710         // Include core and polyfill for browsers lower than IE 9.
 711         static::core();
 712         static::polyfill('event', 'lt IE 9');
 713 
 714         // Add keepalive script options.
 715         JFactory::getDocument()->addScriptOptions('system.keepalive', array('interval' => $refreshTime * 1000, 'uri' => JRoute::_($uri)));
 716 
 717         // Add script.
 718         JHtml::_('script', 'system/keepalive.js', array('version' => 'auto', 'relative' => true));
 719 
 720         static::$loaded[__METHOD__] = true;
 721 
 722         return;
 723     }
 724 
 725     /**
 726      * Highlight some words via Javascript.
 727      *
 728      * @param   array   $terms      Array of words that should be highlighted.
 729      * @param   string  $start      ID of the element that marks the begin of the section in which words
 730      *                              should be highlighted. Note this element will be removed from the DOM.
 731      * @param   string  $end        ID of the element that end this section.
 732      *                              Note this element will be removed from the DOM.
 733      * @param   string  $className  Class name of the element highlights are wrapped in.
 734      * @param   string  $tag        Tag that will be used to wrap the highlighted words.
 735      *
 736      * @return  void
 737      *
 738      * @since   2.5
 739      */
 740     public static function highlighter(array $terms, $start = 'highlighter-start', $end = 'highlighter-end', $className = 'highlight', $tag = 'span')
 741     {
 742         $sig = md5(serialize(array($terms, $start, $end)));
 743 
 744         if (isset(static::$loaded[__METHOD__][$sig]))
 745         {
 746             return;
 747         }
 748 
 749         $terms = array_filter($terms, 'strlen');
 750 
 751         // Nothing to Highlight
 752         if (empty($terms))
 753         {
 754             static::$loaded[__METHOD__][$sig] = true;
 755 
 756             return;
 757         }
 758 
 759         // Include core
 760         static::core();
 761 
 762         // Include jQuery
 763         JHtml::_('jquery.framework');
 764 
 765         JHtml::_('script', 'system/highlighter.js', array('version' => 'auto', 'relative' => true));
 766 
 767         foreach ($terms as $i => $term)
 768         {
 769             $terms[$i] = JFilterOutput::stringJSSafe($term);
 770         }
 771 
 772         $document = JFactory::getDocument();
 773         $document->addScriptDeclaration("
 774             jQuery(function ($) {
 775                 var start = document.getElementById('" . $start . "');
 776                 var end = document.getElementById('" . $end . "');
 777                 if (!start || !end || !Joomla.Highlighter) {
 778                     return true;
 779                 }
 780                 highlighter = new Joomla.Highlighter({
 781                     startElement: start,
 782                     endElement: end,
 783                     className: '" . $className . "',
 784                     onlyWords: false,
 785                     tag: '" . $tag . "'
 786                 }).highlight([\"" . implode('","', $terms) . "\"]);
 787                 $(start).remove();
 788                 $(end).remove();
 789             });
 790         ");
 791 
 792         static::$loaded[__METHOD__][$sig] = true;
 793 
 794         return;
 795     }
 796 
 797     /**
 798      * Break us out of any containing iframes
 799      *
 800      * @return  void
 801      *
 802      * @since   1.5
 803      *
 804      * @deprecated  4.0  Add a X-Frame-Options HTTP Header with the SAMEORIGIN value instead.
 805      */
 806     public static function noframes()
 807     {
 808         JLog::add(__METHOD__ . ' is deprecated, add a X-Frame-Options HTTP Header with the SAMEORIGIN value instead.', JLog::WARNING, 'deprecated');
 809 
 810         // Only load once
 811         if (isset(static::$loaded[__METHOD__]))
 812         {
 813             return;
 814         }
 815 
 816         // Include core
 817         static::core();
 818 
 819         // Include jQuery
 820         JHtml::_('jquery.framework');
 821 
 822         $js = 'jQuery(function () {
 823             if (top == self) {
 824                 document.documentElement.style.display = "block";
 825             }
 826             else
 827             {
 828                 top.location = self.location;
 829             }
 830 
 831             // Firefox fix
 832             jQuery("input[autofocus]").focus();
 833         })';
 834         $document = JFactory::getDocument();
 835         $document->addStyleDeclaration('html { display:none }');
 836         $document->addScriptDeclaration($js);
 837 
 838         JFactory::getApplication()->setHeader('X-Frame-Options', 'SAMEORIGIN');
 839 
 840         static::$loaded[__METHOD__] = true;
 841     }
 842 
 843     /**
 844      * Internal method to get a JavaScript object notation string from an array
 845      *
 846      * @param   array  $array  The array to convert to JavaScript object notation
 847      *
 848      * @return  string  JavaScript object notation representation of the array
 849      *
 850      * @since       1.5
 851      * @deprecated  13.3 (Platform) & 4.0 (CMS) - Use JHtml::getJSObject() instead.
 852      */
 853     protected static function _getJSObject($array = array())
 854     {
 855         JLog::add('JHtmlBehavior::_getJSObject() is deprecated. JHtml::getJSObject() instead..', JLog::WARNING, 'deprecated');
 856 
 857         return JHtml::getJSObject($array);
 858     }
 859 
 860     /**
 861      * Add unobtrusive JavaScript support to keep a tab state.
 862      *
 863      * Note that keeping tab state only works for inner tabs if in accordance with the following example:
 864      *
 865      * ```
 866      * parent tab = permissions
 867      * child tab = permission-<identifier>
 868      * ```
 869      *
 870      * Each tab header `<a>` tag also should have a unique href attribute
 871      *
 872      * @return  void
 873      *
 874      * @since   3.2
 875      */
 876     public static function tabstate()
 877     {
 878         if (isset(self::$loaded[__METHOD__]))
 879         {
 880             return;
 881         }
 882         // Include jQuery
 883         JHtml::_('jquery.framework');
 884         JHtml::_('behavior.polyfill', array('filter','xpath'));
 885         JHtml::_('script', 'system/tabs-state.js', array('version' => 'auto', 'relative' => true));
 886         self::$loaded[__METHOD__] = true;
 887     }
 888 
 889     /**
 890      * Add javascript polyfills.
 891      *
 892      * @param   string|array  $polyfillTypes       The polyfill type(s). Examples: event, array('event', 'classlist').
 893      * @param   string        $conditionalBrowser  An IE conditional expression. Example: lt IE 9 (lower than IE 9).
 894      *
 895      * @return  void
 896      *
 897      * @since   3.7.0
 898      */
 899     public static function polyfill($polyfillTypes = null, $conditionalBrowser = null)
 900     {
 901         if ($polyfillTypes === null)
 902         {
 903             return;
 904         }
 905 
 906         foreach ((array) $polyfillTypes as $polyfillType)
 907         {
 908             $sig = md5(serialize(array($polyfillType, $conditionalBrowser)));
 909 
 910             // Only load once
 911             if (isset(static::$loaded[__METHOD__][$sig]))
 912             {
 913                 continue;
 914             }
 915 
 916             // If include according to browser.
 917             $scriptOptions = array('version' => 'auto', 'relative' => true);
 918             $scriptOptions = $conditionalBrowser !== null ? array_replace($scriptOptions, array('conditional' => $conditionalBrowser)) : $scriptOptions;
 919 
 920             JHtml::_('script', 'system/polyfill.' . $polyfillType . '.js', $scriptOptions);
 921 
 922             // Set static array
 923             static::$loaded[__METHOD__][$sig] = true;
 924         }
 925     }
 926 
 927     /**
 928      * Internal method to translate the JavaScript Calendar
 929      *
 930      * @return  string  JavaScript that translates the object
 931      *
 932      * @since   1.5
 933      */
 934     protected static function calendartranslation()
 935     {
 936         static $jsscript = 0;
 937 
 938         // Guard clause, avoids unnecessary nesting
 939         if ($jsscript)
 940         {
 941             return false;
 942         }
 943 
 944         $jsscript = 1;
 945 
 946         // To keep the code simple here, run strings through JText::_() using array_map()
 947         $callback = array('JText', '_');
 948         $weekdays_full = array_map(
 949             $callback, array(
 950                 'SUNDAY', 'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY',
 951             )
 952         );
 953         $weekdays_short = array_map(
 954             $callback,
 955             array(
 956                 'SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN',
 957             )
 958         );
 959         $months_long = array_map(
 960             $callback, array(
 961                 'JANUARY', 'FEBRUARY', 'MARCH', 'APRIL', 'MAY', 'JUNE',
 962                 'JULY', 'AUGUST', 'SEPTEMBER', 'OCTOBER', 'NOVEMBER', 'DECEMBER',
 963             )
 964         );
 965         $months_short = array_map(
 966             $callback, array(
 967                 'JANUARY_SHORT', 'FEBRUARY_SHORT', 'MARCH_SHORT', 'APRIL_SHORT', 'MAY_SHORT', 'JUNE_SHORT',
 968                 'JULY_SHORT', 'AUGUST_SHORT', 'SEPTEMBER_SHORT', 'OCTOBER_SHORT', 'NOVEMBER_SHORT', 'DECEMBER_SHORT',
 969             )
 970         );
 971 
 972         // This will become an object in Javascript but define it first in PHP for readability
 973         $today = " " . JText::_('JLIB_HTML_BEHAVIOR_TODAY') . " ";
 974         $text = array(
 975             'INFO'           => JText::_('JLIB_HTML_BEHAVIOR_ABOUT_THE_CALENDAR'),
 976             'ABOUT'          => "DHTML Date/Time Selector\n"
 977                 . "(c) dynarch.com 20022005 / Author: Mihai Bazon\n"
 978                 . "For latest version visit: http://www.dynarch.com/projects/calendar/\n"
 979                 . "Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details."
 980                 . "\n\n"
 981                 . JText::_('JLIB_HTML_BEHAVIOR_DATE_SELECTION')
 982                 . JText::_('JLIB_HTML_BEHAVIOR_YEAR_SELECT')
 983                 . JText::_('JLIB_HTML_BEHAVIOR_MONTH_SELECT')
 984                 . JText::_('JLIB_HTML_BEHAVIOR_HOLD_MOUSE'),
 985             'ABOUT_TIME'      => "\n\n"
 986                 . "Time selection:\n"
 987                 . " Click on any of the time parts to increase it\n"
 988                 . " or Shiftclick to decrease it\n"
 989                 . " or click and drag for faster selection.",
 990             'PREV_YEAR'       => JText::_('JLIB_HTML_BEHAVIOR_PREV_YEAR_HOLD_FOR_MENU'),
 991             'PREV_MONTH'      => JText::_('JLIB_HTML_BEHAVIOR_PREV_MONTH_HOLD_FOR_MENU'),
 992             'GO_TODAY'        => JText::_('JLIB_HTML_BEHAVIOR_GO_TODAY'),
 993             'NEXT_MONTH'      => JText::_('JLIB_HTML_BEHAVIOR_NEXT_MONTH_HOLD_FOR_MENU'),
 994             'SEL_DATE'        => JText::_('JLIB_HTML_BEHAVIOR_SELECT_DATE'),
 995             'DRAG_TO_MOVE'    => JText::_('JLIB_HTML_BEHAVIOR_DRAG_TO_MOVE'),
 996             'PART_TODAY'      => $today,
 997             'DAY_FIRST'       => JText::_('JLIB_HTML_BEHAVIOR_DISPLAY_S_FIRST'),
 998             'WEEKEND'         => JFactory::getLanguage()->getWeekEnd(),
 999             'CLOSE'           => JText::_('JLIB_HTML_BEHAVIOR_CLOSE'),
1000             'TODAY'           => JText::_('JLIB_HTML_BEHAVIOR_TODAY'),
1001             'TIME_PART'       => JText::_('JLIB_HTML_BEHAVIOR_SHIFT_CLICK_OR_DRAG_TO_CHANGE_VALUE'),
1002             'DEF_DATE_FORMAT' => "%Y%m%d",
1003             'TT_DATE_FORMAT'  => JText::_('JLIB_HTML_BEHAVIOR_TT_DATE_FORMAT'),
1004             'WK'              => JText::_('JLIB_HTML_BEHAVIOR_WK'),
1005             'TIME'            => JText::_('JLIB_HTML_BEHAVIOR_TIME'),
1006         );
1007 
1008         return 'Calendar._DN = ' . json_encode($weekdays_full) . ';'
1009             . ' Calendar._SDN = ' . json_encode($weekdays_short) . ';'
1010             . ' Calendar._FD = 0;'
1011             . ' Calendar._MN = ' . json_encode($months_long) . ';'
1012             . ' Calendar._SMN = ' . json_encode($months_short) . ';'
1013             . ' Calendar._TT = ' . json_encode($text) . ';';
1014     }
1015 }
1016 
Joomla! Framework TM API documentation generated by ApiGen 2.8.0
Joomla!® and Joomla! Framework™ are trademarks of Open Source Matters, Inc. in the United States and other countries.