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  * SimplePie
   4  *
   5  * A PHP-Based RSS and Atom Feed Framework.
   6  * Takes the hard work out of managing a complete RSS/Atom solution.
   7  *
   8  * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
   9  * All rights reserved.
  10  *
  11  * Redistribution and use in source and binary forms, with or without modification, are
  12  * permitted provided that the following conditions are met:
  13  *
  14  *  * Redistributions of source code must retain the above copyright notice, this list of
  15  *    conditions and the following disclaimer.
  16  *
  17  *  * Redistributions in binary form must reproduce the above copyright notice, this list
  18  *    of conditions and the following disclaimer in the documentation and/or other materials
  19  *    provided with the distribution.
  20  *
  21  *  * Neither the name of the SimplePie Team nor the names of its contributors may be used
  22  *    to endorse or promote products derived from this software without specific prior
  23  *    written permission.
  24  *
  25  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
  26  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
  27  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
  28  * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  29  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  30  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  31  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
  32  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  33  * POSSIBILITY OF SUCH DAMAGE.
  34  *
  35  * @package SimplePie
  36  * @version 1.3.1
  37  * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
  38  * @author Ryan Parman
  39  * @author Geoffrey Sneddon
  40  * @author Ryan McCue
  41  * @link http://simplepie.org/ SimplePie
  42  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
  43  */
  44 
  45 /**
  46  * Handles everything related to enclosures (including Media RSS and iTunes RSS)
  47  *
  48  * Used by {@see SimplePie_Item::get_enclosure()} and {@see SimplePie_Item::get_enclosures()}
  49  *
  50  * This class can be overloaded with {@see SimplePie::set_enclosure_class()}
  51  *
  52  * @package SimplePie
  53  * @subpackage API
  54  */
  55 class SimplePie_Enclosure
  56 {
  57     /**
  58      * @var string
  59      * @see get_bitrate()
  60      */
  61     var $bitrate;
  62 
  63     /**
  64      * @var array
  65      * @see get_captions()
  66      */
  67     var $captions;
  68 
  69     /**
  70      * @var array
  71      * @see get_categories()
  72      */
  73     var $categories;
  74 
  75     /**
  76      * @var int
  77      * @see get_channels()
  78      */
  79     var $channels;
  80 
  81     /**
  82      * @var SimplePie_Copyright
  83      * @see get_copyright()
  84      */
  85     var $copyright;
  86 
  87     /**
  88      * @var array
  89      * @see get_credits()
  90      */
  91     var $credits;
  92 
  93     /**
  94      * @var string
  95      * @see get_description()
  96      */
  97     var $description;
  98 
  99     /**
 100      * @var int
 101      * @see get_duration()
 102      */
 103     var $duration;
 104 
 105     /**
 106      * @var string
 107      * @see get_expression()
 108      */
 109     var $expression;
 110 
 111     /**
 112      * @var string
 113      * @see get_framerate()
 114      */
 115     var $framerate;
 116 
 117     /**
 118      * @var string
 119      * @see get_handler()
 120      */
 121     var $handler;
 122 
 123     /**
 124      * @var array
 125      * @see get_hashes()
 126      */
 127     var $hashes;
 128 
 129     /**
 130      * @var string
 131      * @see get_height()
 132      */
 133     var $height;
 134 
 135     /**
 136      * @deprecated
 137      * @var null
 138      */
 139     var $javascript;
 140 
 141     /**
 142      * @var array
 143      * @see get_keywords()
 144      */
 145     var $keywords;
 146 
 147     /**
 148      * @var string
 149      * @see get_language()
 150      */
 151     var $lang;
 152 
 153     /**
 154      * @var string
 155      * @see get_length()
 156      */
 157     var $length;
 158 
 159     /**
 160      * @var string
 161      * @see get_link()
 162      */
 163     var $link;
 164 
 165     /**
 166      * @var string
 167      * @see get_medium()
 168      */
 169     var $medium;
 170 
 171     /**
 172      * @var string
 173      * @see get_player()
 174      */
 175     var $player;
 176 
 177     /**
 178      * @var array
 179      * @see get_ratings()
 180      */
 181     var $ratings;
 182 
 183     /**
 184      * @var array
 185      * @see get_restrictions()
 186      */
 187     var $restrictions;
 188 
 189     /**
 190      * @var string
 191      * @see get_sampling_rate()
 192      */
 193     var $samplingrate;
 194 
 195     /**
 196      * @var array
 197      * @see get_thumbnails()
 198      */
 199     var $thumbnails;
 200 
 201     /**
 202      * @var string
 203      * @see get_title()
 204      */
 205     var $title;
 206 
 207     /**
 208      * @var string
 209      * @see get_type()
 210      */
 211     var $type;
 212 
 213     /**
 214      * @var string
 215      * @see get_width()
 216      */
 217     var $width;
 218 
 219     /**
 220      * Constructor, used to input the data
 221      *
 222      * For documentation on all the parameters, see the corresponding
 223      * properties and their accessors
 224      *
 225      * @uses idna_convert If available, this will convert an IDN
 226      */
 227     public function __construct($link = null, $type = null, $length = null, $javascript = null, $bitrate = null, $captions = null, $categories = null, $channels = null, $copyright = null, $credits = null, $description = null, $duration = null, $expression = null, $framerate = null, $hashes = null, $height = null, $keywords = null, $lang = null, $medium = null, $player = null, $ratings = null, $restrictions = null, $samplingrate = null, $thumbnails = null, $title = null, $width = null)
 228     {
 229         $this->bitrate = $bitrate;
 230         $this->captions = $captions;
 231         $this->categories = $categories;
 232         $this->channels = $channels;
 233         $this->copyright = $copyright;
 234         $this->credits = $credits;
 235         $this->description = $description;
 236         $this->duration = $duration;
 237         $this->expression = $expression;
 238         $this->framerate = $framerate;
 239         $this->hashes = $hashes;
 240         $this->height = $height;
 241         $this->keywords = $keywords;
 242         $this->lang = $lang;
 243         $this->length = $length;
 244         $this->link = $link;
 245         $this->medium = $medium;
 246         $this->player = $player;
 247         $this->ratings = $ratings;
 248         $this->restrictions = $restrictions;
 249         $this->samplingrate = $samplingrate;
 250         $this->thumbnails = $thumbnails;
 251         $this->title = $title;
 252         $this->type = $type;
 253         $this->width = $width;
 254 
 255         if (class_exists('idna_convert'))
 256         {
 257             $idn = new idna_convert();
 258             $parsed = SimplePie_Misc::parse_url($link);
 259             $this->link = SimplePie_Misc::compress_parse_url($parsed['scheme'], $idn->encode($parsed['authority']), $parsed['path'], $parsed['query'], $parsed['fragment']);
 260         }
 261         $this->handler = $this->get_handler(); // Needs to load last
 262     }
 263 
 264     /**
 265      * String-ified version
 266      *
 267      * @return string
 268      */
 269     public function __toString()
 270     {
 271         // There is no $this->data here
 272         return md5(serialize($this));
 273     }
 274 
 275     /**
 276      * Get the bitrate
 277      *
 278      * @return string|null
 279      */
 280     public function get_bitrate()
 281     {
 282         if ($this->bitrate !== null)
 283         {
 284             return $this->bitrate;
 285         }
 286         else
 287         {
 288             return null;
 289         }
 290     }
 291 
 292     /**
 293      * Get a single caption
 294      *
 295      * @param int $key
 296      * @return SimplePie_Caption|null
 297      */
 298     public function get_caption($key = 0)
 299     {
 300         $captions = $this->get_captions();
 301         if (isset($captions[$key]))
 302         {
 303             return $captions[$key];
 304         }
 305         else
 306         {
 307             return null;
 308         }
 309     }
 310 
 311     /**
 312      * Get all captions
 313      *
 314      * @return array|null Array of {@see SimplePie_Caption} objects
 315      */
 316     public function get_captions()
 317     {
 318         if ($this->captions !== null)
 319         {
 320             return $this->captions;
 321         }
 322         else
 323         {
 324             return null;
 325         }
 326     }
 327 
 328     /**
 329      * Get a single category
 330      *
 331      * @param int $key
 332      * @return SimplePie_Category|null
 333      */
 334     public function get_category($key = 0)
 335     {
 336         $categories = $this->get_categories();
 337         if (isset($categories[$key]))
 338         {
 339             return $categories[$key];
 340         }
 341         else
 342         {
 343             return null;
 344         }
 345     }
 346 
 347     /**
 348      * Get all categories
 349      *
 350      * @return array|null Array of {@see SimplePie_Category} objects
 351      */
 352     public function get_categories()
 353     {
 354         if ($this->categories !== null)
 355         {
 356             return $this->categories;
 357         }
 358         else
 359         {
 360             return null;
 361         }
 362     }
 363 
 364     /**
 365      * Get the number of audio channels
 366      *
 367      * @return int|null
 368      */
 369     public function get_channels()
 370     {
 371         if ($this->channels !== null)
 372         {
 373             return $this->channels;
 374         }
 375         else
 376         {
 377             return null;
 378         }
 379     }
 380 
 381     /**
 382      * Get the copyright information
 383      *
 384      * @return SimplePie_Copyright|null
 385      */
 386     public function get_copyright()
 387     {
 388         if ($this->copyright !== null)
 389         {
 390             return $this->copyright;
 391         }
 392         else
 393         {
 394             return null;
 395         }
 396     }
 397 
 398     /**
 399      * Get a single credit
 400      *
 401      * @param int $key
 402      * @return SimplePie_Credit|null
 403      */
 404     public function get_credit($key = 0)
 405     {
 406         $credits = $this->get_credits();
 407         if (isset($credits[$key]))
 408         {
 409             return $credits[$key];
 410         }
 411         else
 412         {
 413             return null;
 414         }
 415     }
 416 
 417     /**
 418      * Get all credits
 419      *
 420      * @return array|null Array of {@see SimplePie_Credit} objects
 421      */
 422     public function get_credits()
 423     {
 424         if ($this->credits !== null)
 425         {
 426             return $this->credits;
 427         }
 428         else
 429         {
 430             return null;
 431         }
 432     }
 433 
 434     /**
 435      * Get the description of the enclosure
 436      *
 437      * @return string|null
 438      */
 439     public function get_description()
 440     {
 441         if ($this->description !== null)
 442         {
 443             return $this->description;
 444         }
 445         else
 446         {
 447             return null;
 448         }
 449     }
 450 
 451     /**
 452      * Get the duration of the enclosure
 453      *
 454      * @param string $convert Convert seconds into hh:mm:ss
 455      * @return string|int|null 'hh:mm:ss' string if `$convert` was specified, otherwise integer (or null if none found)
 456      */
 457     public function get_duration($convert = false)
 458     {
 459         if ($this->duration !== null)
 460         {
 461             if ($convert)
 462             {
 463                 $time = SimplePie_Misc::time_hms($this->duration);
 464                 return $time;
 465             }
 466             else
 467             {
 468                 return $this->duration;
 469             }
 470         }
 471         else
 472         {
 473             return null;
 474         }
 475     }
 476 
 477     /**
 478      * Get the expression
 479      *
 480      * @return string Probably one of 'sample', 'full', 'nonstop', 'clip'. Defaults to 'full'
 481      */
 482     public function get_expression()
 483     {
 484         if ($this->expression !== null)
 485         {
 486             return $this->expression;
 487         }
 488         else
 489         {
 490             return 'full';
 491         }
 492     }
 493 
 494     /**
 495      * Get the file extension
 496      *
 497      * @return string|null
 498      */
 499     public function get_extension()
 500     {
 501         if ($this->link !== null)
 502         {
 503             $url = SimplePie_Misc::parse_url($this->link);
 504             if ($url['path'] !== '')
 505             {
 506                 return pathinfo($url['path'], PATHINFO_EXTENSION);
 507             }
 508         }
 509         return null;
 510     }
 511 
 512     /**
 513      * Get the framerate (in frames-per-second)
 514      *
 515      * @return string|null
 516      */
 517     public function get_framerate()
 518     {
 519         if ($this->framerate !== null)
 520         {
 521             return $this->framerate;
 522         }
 523         else
 524         {
 525             return null;
 526         }
 527     }
 528 
 529     /**
 530      * Get the preferred handler
 531      *
 532      * @return string|null One of 'flash', 'fmedia', 'quicktime', 'wmedia', 'mp3'
 533      */
 534     public function get_handler()
 535     {
 536         return $this->get_real_type(true);
 537     }
 538 
 539     /**
 540      * Get a single hash
 541      *
 542      * @link http://www.rssboard.org/media-rss#media-hash
 543      * @param int $key
 544      * @return string|null Hash as per `media:hash`, prefixed with "$algo:"
 545      */
 546     public function get_hash($key = 0)
 547     {
 548         $hashes = $this->get_hashes();
 549         if (isset($hashes[$key]))
 550         {
 551             return $hashes[$key];
 552         }
 553         else
 554         {
 555             return null;
 556         }
 557     }
 558 
 559     /**
 560      * Get all credits
 561      *
 562      * @return array|null Array of strings, see {@see get_hash()}
 563      */
 564     public function get_hashes()
 565     {
 566         if ($this->hashes !== null)
 567         {
 568             return $this->hashes;
 569         }
 570         else
 571         {
 572             return null;
 573         }
 574     }
 575 
 576     /**
 577      * Get the height
 578      *
 579      * @return string|null
 580      */
 581     public function get_height()
 582     {
 583         if ($this->height !== null)
 584         {
 585             return $this->height;
 586         }
 587         else
 588         {
 589             return null;
 590         }
 591     }
 592 
 593     /**
 594      * Get the language
 595      *
 596      * @link http://tools.ietf.org/html/rfc3066
 597      * @return string|null Language code as per RFC 3066
 598      */
 599     public function get_language()
 600     {
 601         if ($this->lang !== null)
 602         {
 603             return $this->lang;
 604         }
 605         else
 606         {
 607             return null;
 608         }
 609     }
 610 
 611     /**
 612      * Get a single keyword
 613      *
 614      * @param int $key
 615      * @return string|null
 616      */
 617     public function get_keyword($key = 0)
 618     {
 619         $keywords = $this->get_keywords();
 620         if (isset($keywords[$key]))
 621         {
 622             return $keywords[$key];
 623         }
 624         else
 625         {
 626             return null;
 627         }
 628     }
 629 
 630     /**
 631      * Get all keywords
 632      *
 633      * @return array|null Array of strings
 634      */
 635     public function get_keywords()
 636     {
 637         if ($this->keywords !== null)
 638         {
 639             return $this->keywords;
 640         }
 641         else
 642         {
 643             return null;
 644         }
 645     }
 646 
 647     /**
 648      * Get length
 649      *
 650      * @return float Length in bytes
 651      */
 652     public function get_length()
 653     {
 654         if ($this->length !== null)
 655         {
 656             return $this->length;
 657         }
 658         else
 659         {
 660             return null;
 661         }
 662     }
 663 
 664     /**
 665      * Get the URL
 666      *
 667      * @return string|null
 668      */
 669     public function get_link()
 670     {
 671         if ($this->link !== null)
 672         {
 673             return urldecode($this->link);
 674         }
 675         else
 676         {
 677             return null;
 678         }
 679     }
 680 
 681     /**
 682      * Get the medium
 683      *
 684      * @link http://www.rssboard.org/media-rss#media-content
 685      * @return string|null Should be one of 'image', 'audio', 'video', 'document', 'executable'
 686      */
 687     public function get_medium()
 688     {
 689         if ($this->medium !== null)
 690         {
 691             return $this->medium;
 692         }
 693         else
 694         {
 695             return null;
 696         }
 697     }
 698 
 699     /**
 700      * Get the player URL
 701      *
 702      * Typically the same as {@see get_permalink()}
 703      * @return string|null Player URL
 704      */
 705     public function get_player()
 706     {
 707         if ($this->player !== null)
 708         {
 709             return $this->player;
 710         }
 711         else
 712         {
 713             return null;
 714         }
 715     }
 716 
 717     /**
 718      * Get a single rating
 719      *
 720      * @param int $key
 721      * @return SimplePie_Rating|null
 722      */
 723     public function get_rating($key = 0)
 724     {
 725         $ratings = $this->get_ratings();
 726         if (isset($ratings[$key]))
 727         {
 728             return $ratings[$key];
 729         }
 730         else
 731         {
 732             return null;
 733         }
 734     }
 735 
 736     /**
 737      * Get all ratings
 738      *
 739      * @return array|null Array of {@see SimplePie_Rating} objects
 740      */
 741     public function get_ratings()
 742     {
 743         if ($this->ratings !== null)
 744         {
 745             return $this->ratings;
 746         }
 747         else
 748         {
 749             return null;
 750         }
 751     }
 752 
 753     /**
 754      * Get a single restriction
 755      *
 756      * @param int $key
 757      * @return SimplePie_Restriction|null
 758      */
 759     public function get_restriction($key = 0)
 760     {
 761         $restrictions = $this->get_restrictions();
 762         if (isset($restrictions[$key]))
 763         {
 764             return $restrictions[$key];
 765         }
 766         else
 767         {
 768             return null;
 769         }
 770     }
 771 
 772     /**
 773      * Get all restrictions
 774      *
 775      * @return array|null Array of {@see SimplePie_Restriction} objects
 776      */
 777     public function get_restrictions()
 778     {
 779         if ($this->restrictions !== null)
 780         {
 781             return $this->restrictions;
 782         }
 783         else
 784         {
 785             return null;
 786         }
 787     }
 788 
 789     /**
 790      * Get the sampling rate (in kHz)
 791      *
 792      * @return string|null
 793      */
 794     public function get_sampling_rate()
 795     {
 796         if ($this->samplingrate !== null)
 797         {
 798             return $this->samplingrate;
 799         }
 800         else
 801         {
 802             return null;
 803         }
 804     }
 805 
 806     /**
 807      * Get the file size (in MiB)
 808      *
 809      * @return float|null File size in mebibytes (1048 bytes)
 810      */
 811     public function get_size()
 812     {
 813         $length = $this->get_length();
 814         if ($length !== null)
 815         {
 816             return round($length/1048576, 2);
 817         }
 818         else
 819         {
 820             return null;
 821         }
 822     }
 823 
 824     /**
 825      * Get a single thumbnail
 826      *
 827      * @param int $key
 828      * @return string|null Thumbnail URL
 829      */
 830     public function get_thumbnail($key = 0)
 831     {
 832         $thumbnails = $this->get_thumbnails();
 833         if (isset($thumbnails[$key]))
 834         {
 835             return $thumbnails[$key];
 836         }
 837         else
 838         {
 839             return null;
 840         }
 841     }
 842 
 843     /**
 844      * Get all thumbnails
 845      *
 846      * @return array|null Array of thumbnail URLs
 847      */
 848     public function get_thumbnails()
 849     {
 850         if ($this->thumbnails !== null)
 851         {
 852             return $this->thumbnails;
 853         }
 854         else
 855         {
 856             return null;
 857         }
 858     }
 859 
 860     /**
 861      * Get the title
 862      *
 863      * @return string|null
 864      */
 865     public function get_title()
 866     {
 867         if ($this->title !== null)
 868         {
 869             return $this->title;
 870         }
 871         else
 872         {
 873             return null;
 874         }
 875     }
 876 
 877     /**
 878      * Get mimetype of the enclosure
 879      *
 880      * @see get_real_type()
 881      * @return string|null MIME type
 882      */
 883     public function get_type()
 884     {
 885         if ($this->type !== null)
 886         {
 887             return $this->type;
 888         }
 889         else
 890         {
 891             return null;
 892         }
 893     }
 894 
 895     /**
 896      * Get the width
 897      *
 898      * @return string|null
 899      */
 900     public function get_width()
 901     {
 902         if ($this->width !== null)
 903         {
 904             return $this->width;
 905         }
 906         else
 907         {
 908             return null;
 909         }
 910     }
 911 
 912     /**
 913      * Embed the enclosure using `<embed>`
 914      *
 915      * @deprecated Use the second parameter to {@see embed} instead
 916      *
 917      * @param array|string $options See first paramter to {@see embed}
 918      * @return string HTML string to output
 919      */
 920     public function native_embed($options='')
 921     {
 922         return $this->embed($options, true);
 923     }
 924 
 925     /**
 926      * Embed the enclosure using Javascript
 927      *
 928      * `$options` is an array or comma-separated key:value string, with the
 929      * following properties:
 930      *
 931      * - `alt` (string): Alternate content for when an end-user does not have
 932      *    the appropriate handler installed or when a file type is
 933      *    unsupported. Can be any text or HTML. Defaults to blank.
 934      * - `altclass` (string): If a file type is unsupported, the end-user will
 935      *    see the alt text (above) linked directly to the content. That link
 936      *    will have this value as its class name. Defaults to blank.
 937      * - `audio` (string): This is an image that should be used as a
 938      *    placeholder for audio files before they're loaded (QuickTime-only).
 939      *    Can be any relative or absolute URL. Defaults to blank.
 940      * - `bgcolor` (string): The background color for the media, if not
 941      *    already transparent. Defaults to `#ffffff`.
 942      * - `height` (integer): The height of the embedded media. Accepts any
 943      *    numeric pixel value (such as `360`) or `auto`. Defaults to `auto`,
 944      *    and it is recommended that you use this default.
 945      * - `loop` (boolean): Do you want the media to loop when its done?
 946      *    Defaults to `false`.
 947      * - `mediaplayer` (string): The location of the included
 948      *    `mediaplayer.swf` file. This allows for the playback of Flash Video
 949      *    (`.flv`) files, and is the default handler for non-Odeo MP3's.
 950      *    Defaults to blank.
 951      * - `video` (string): This is an image that should be used as a
 952      *    placeholder for video files before they're loaded (QuickTime-only).
 953      *    Can be any relative or absolute URL. Defaults to blank.
 954      * - `width` (integer): The width of the embedded media. Accepts any
 955      *    numeric pixel value (such as `480`) or `auto`. Defaults to `auto`,
 956      *    and it is recommended that you use this default.
 957      * - `widescreen` (boolean): Is the enclosure widescreen or standard?
 958      *    This applies only to video enclosures, and will automatically resize
 959      *    the content appropriately.  Defaults to `false`, implying 4:3 mode.
 960      *
 961      * Note: Non-widescreen (4:3) mode with `width` and `height` set to `auto`
 962      * will default to 480x360 video resolution.  Widescreen (16:9) mode with
 963      * `width` and `height` set to `auto` will default to 480x270 video resolution.
 964      *
 965      * @todo If the dimensions for media:content are defined, use them when width/height are set to 'auto'.
 966      * @param array|string $options Comma-separated key:value list, or array
 967      * @param bool $native Use `<embed>`
 968      * @return string HTML string to output
 969      */
 970     public function embed($options = '', $native = false)
 971     {
 972         // Set up defaults
 973         $audio = '';
 974         $video = '';
 975         $alt = '';
 976         $altclass = '';
 977         $loop = 'false';
 978         $width = 'auto';
 979         $height = 'auto';
 980         $bgcolor = '#ffffff';
 981         $mediaplayer = '';
 982         $widescreen = false;
 983         $handler = $this->get_handler();
 984         $type = $this->get_real_type();
 985 
 986         // Process options and reassign values as necessary
 987         if (is_array($options))
 988         {
 989             extract($options);
 990         }
 991         else
 992         {
 993             $options = explode(',', $options);
 994             foreach($options as $option)
 995             {
 996                 $opt = explode(':', $option, 2);
 997                 if (isset($opt[0], $opt[1]))
 998                 {
 999                     $opt[0] = trim($opt[0]);
1000                     $opt[1] = trim($opt[1]);
1001                     switch ($opt[0])
1002                     {
1003                         case 'audio':
1004                             $audio = $opt[1];
1005                             break;
1006 
1007                         case 'video':
1008                             $video = $opt[1];
1009                             break;
1010 
1011                         case 'alt':
1012                             $alt = $opt[1];
1013                             break;
1014 
1015                         case 'altclass':
1016                             $altclass = $opt[1];
1017                             break;
1018 
1019                         case 'loop':
1020                             $loop = $opt[1];
1021                             break;
1022 
1023                         case 'width':
1024                             $width = $opt[1];
1025                             break;
1026 
1027                         case 'height':
1028                             $height = $opt[1];
1029                             break;
1030 
1031                         case 'bgcolor':
1032                             $bgcolor = $opt[1];
1033                             break;
1034 
1035                         case 'mediaplayer':
1036                             $mediaplayer = $opt[1];
1037                             break;
1038 
1039                         case 'widescreen':
1040                             $widescreen = $opt[1];
1041                             break;
1042                     }
1043                 }
1044             }
1045         }
1046 
1047         $mime = explode('/', $type, 2);
1048         $mime = $mime[0];
1049 
1050         // Process values for 'auto'
1051         if ($width === 'auto')
1052         {
1053             if ($mime === 'video')
1054             {
1055                 if ($height === 'auto')
1056                 {
1057                     $width = 480;
1058                 }
1059                 elseif ($widescreen)
1060                 {
1061                     $width = round((intval($height)/9)*16);
1062                 }
1063                 else
1064                 {
1065                     $width = round((intval($height)/3)*4);
1066                 }
1067             }
1068             else
1069             {
1070                 $width = '100%';
1071             }
1072         }
1073 
1074         if ($height === 'auto')
1075         {
1076             if ($mime === 'audio')
1077             {
1078                 $height = 0;
1079             }
1080             elseif ($mime === 'video')
1081             {
1082                 if ($width === 'auto')
1083                 {
1084                     if ($widescreen)
1085                     {
1086                         $height = 270;
1087                     }
1088                     else
1089                     {
1090                         $height = 360;
1091                     }
1092                 }
1093                 elseif ($widescreen)
1094                 {
1095                     $height = round((intval($width)/16)*9);
1096                 }
1097                 else
1098                 {
1099                     $height = round((intval($width)/4)*3);
1100                 }
1101             }
1102             else
1103             {
1104                 $height = 376;
1105             }
1106         }
1107         elseif ($mime === 'audio')
1108         {
1109             $height = 0;
1110         }
1111 
1112         // Set proper placeholder value
1113         if ($mime === 'audio')
1114         {
1115             $placeholder = $audio;
1116         }
1117         elseif ($mime === 'video')
1118         {
1119             $placeholder = $video;
1120         }
1121 
1122         $embed = '';
1123 
1124         // Flash
1125         if ($handler === 'flash')
1126         {
1127             if ($native)
1128             {
1129                 $embed .= "<embed src=\"" . $this->get_link() . "\" pluginspage=\"http://adobe.com/go/getflashplayer\" type=\"$type\" quality=\"high\" width=\"$width\" height=\"$height\" bgcolor=\"$bgcolor\" loop=\"$loop\"></embed>";
1130             }
1131             else
1132             {
1133                 $embed .= "<script type='text/javascript'>embed_flash('$bgcolor', '$width', '$height', '" . $this->get_link() . "', '$loop', '$type');</script>";
1134             }
1135         }
1136 
1137         // Flash Media Player file types.
1138         // Preferred handler for MP3 file types.
1139         elseif ($handler === 'fmedia' || ($handler === 'mp3' && $mediaplayer !== ''))
1140         {
1141             $height += 20;
1142             if ($native)
1143             {
1144                 $embed .= "<embed src=\"$mediaplayer\" pluginspage=\"http://adobe.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" quality=\"high\" width=\"$width\" height=\"$height\" wmode=\"transparent\" flashvars=\"file=" . rawurlencode($this->get_link().'?file_extension=.'.$this->get_extension()) . "&autostart=false&repeat=$loop&showdigits=true&showfsbutton=false\"></embed>";
1145             }
1146             else
1147             {
1148                 $embed .= "<script type='text/javascript'>embed_flv('$width', '$height', '" . rawurlencode($this->get_link().'?file_extension=.'.$this->get_extension()) . "', '$placeholder', '$loop', '$mediaplayer');</script>";
1149             }
1150         }
1151 
1152         // QuickTime 7 file types.  Need to test with QuickTime 6.
1153         // Only handle MP3's if the Flash Media Player is not present.
1154         elseif ($handler === 'quicktime' || ($handler === 'mp3' && $mediaplayer === ''))
1155         {
1156             $height += 16;
1157             if ($native)
1158             {
1159                 if ($placeholder !== '')
1160                 {
1161                     $embed .= "<embed type=\"$type\" style=\"cursor:hand; cursor:pointer;\" href=\"" . $this->get_link() . "\" src=\"$placeholder\" width=\"$width\" height=\"$height\" autoplay=\"false\" target=\"myself\" controller=\"false\" loop=\"$loop\" scale=\"aspect\" bgcolor=\"$bgcolor\" pluginspage=\"http://apple.com/quicktime/download/\"></embed>";
1162                 }
1163                 else
1164                 {
1165                     $embed .= "<embed type=\"$type\" style=\"cursor:hand; cursor:pointer;\" src=\"" . $this->get_link() . "\" width=\"$width\" height=\"$height\" autoplay=\"false\" target=\"myself\" controller=\"true\" loop=\"$loop\" scale=\"aspect\" bgcolor=\"$bgcolor\" pluginspage=\"http://apple.com/quicktime/download/\"></embed>";
1166                 }
1167             }
1168             else
1169             {
1170                 $embed .= "<script type='text/javascript'>embed_quicktime('$type', '$bgcolor', '$width', '$height', '" . $this->get_link() . "', '$placeholder', '$loop');</script>";
1171             }
1172         }
1173 
1174         // Windows Media
1175         elseif ($handler === 'wmedia')
1176         {
1177             $height += 45;
1178             if ($native)
1179             {
1180                 $embed .= "<embed type=\"application/x-mplayer2\" src=\"" . $this->get_link() . "\" autosize=\"1\" width=\"$width\" height=\"$height\" showcontrols=\"1\" showstatusbar=\"0\" showdisplay=\"0\" autostart=\"0\"></embed>";
1181             }
1182             else
1183             {
1184                 $embed .= "<script type='text/javascript'>embed_wmedia('$width', '$height', '" . $this->get_link() . "');</script>";
1185             }
1186         }
1187 
1188         // Everything else
1189         else $embed .= '<a href="' . $this->get_link() . '" class="' . $altclass . '">' . $alt . '</a>';
1190 
1191         return $embed;
1192     }
1193 
1194     /**
1195      * Get the real media type
1196      *
1197      * Often, feeds lie to us, necessitating a bit of deeper inspection. This
1198      * converts types to their canonical representations based on the file
1199      * extension
1200      *
1201      * @see get_type()
1202      * @param bool $find_handler Internal use only, use {@see get_handler()} instead
1203      * @return string MIME type
1204      */
1205     public function get_real_type($find_handler = false)
1206     {
1207         // Mime-types by handler.
1208         $types_flash = array('application/x-shockwave-flash', 'application/futuresplash'); // Flash
1209         $types_fmedia = array('video/flv', 'video/x-flv','flv-application/octet-stream'); // Flash Media Player
1210         $types_quicktime = array('audio/3gpp', 'audio/3gpp2', 'audio/aac', 'audio/x-aac', 'audio/aiff', 'audio/x-aiff', 'audio/mid', 'audio/midi', 'audio/x-midi', 'audio/mp4', 'audio/m4a', 'audio/x-m4a', 'audio/wav', 'audio/x-wav', 'video/3gpp', 'video/3gpp2', 'video/m4v', 'video/x-m4v', 'video/mp4', 'video/mpeg', 'video/x-mpeg', 'video/quicktime', 'video/sd-video'); // QuickTime
1211         $types_wmedia = array('application/asx', 'application/x-mplayer2', 'audio/x-ms-wma', 'audio/x-ms-wax', 'video/x-ms-asf-plugin', 'video/x-ms-asf', 'video/x-ms-wm', 'video/x-ms-wmv', 'video/x-ms-wvx'); // Windows Media
1212         $types_mp3 = array('audio/mp3', 'audio/x-mp3', 'audio/mpeg', 'audio/x-mpeg'); // MP3
1213 
1214         if ($this->get_type() !== null)
1215         {
1216             $type = strtolower($this->type);
1217         }
1218         else
1219         {
1220             $type = null;
1221         }
1222 
1223         // If we encounter an unsupported mime-type, check the file extension and guess intelligently.
1224         if (!in_array($type, array_merge($types_flash, $types_fmedia, $types_quicktime, $types_wmedia, $types_mp3)))
1225         {
1226             switch (strtolower($this->get_extension()))
1227             {
1228                 // Audio mime-types
1229                 case 'aac':
1230                 case 'adts':
1231                     $type = 'audio/acc';
1232                     break;
1233 
1234                 case 'aif':
1235                 case 'aifc':
1236                 case 'aiff':
1237                 case 'cdda':
1238                     $type = 'audio/aiff';
1239                     break;
1240 
1241                 case 'bwf':
1242                     $type = 'audio/wav';
1243                     break;
1244 
1245                 case 'kar':
1246                 case 'mid':
1247                 case 'midi':
1248                 case 'smf':
1249                     $type = 'audio/midi';
1250                     break;
1251 
1252                 case 'm4a':
1253                     $type = 'audio/x-m4a';
1254                     break;
1255 
1256                 case 'mp3':
1257                 case 'swa':
1258                     $type = 'audio/mp3';
1259                     break;
1260 
1261                 case 'wav':
1262                     $type = 'audio/wav';
1263                     break;
1264 
1265                 case 'wax':
1266                     $type = 'audio/x-ms-wax';
1267                     break;
1268 
1269                 case 'wma':
1270                     $type = 'audio/x-ms-wma';
1271                     break;
1272 
1273                 // Video mime-types
1274                 case '3gp':
1275                 case '3gpp':
1276                     $type = 'video/3gpp';
1277                     break;
1278 
1279                 case '3g2':
1280                 case '3gp2':
1281                     $type = 'video/3gpp2';
1282                     break;
1283 
1284                 case 'asf':
1285                     $type = 'video/x-ms-asf';
1286                     break;
1287 
1288                 case 'flv':
1289                     $type = 'video/x-flv';
1290                     break;
1291 
1292                 case 'm1a':
1293                 case 'm1s':
1294                 case 'm1v':
1295                 case 'm15':
1296                 case 'm75':
1297                 case 'mp2':
1298                 case 'mpa':
1299                 case 'mpeg':
1300                 case 'mpg':
1301                 case 'mpm':
1302                 case 'mpv':
1303                     $type = 'video/mpeg';
1304                     break;
1305 
1306                 case 'm4v':
1307                     $type = 'video/x-m4v';
1308                     break;
1309 
1310                 case 'mov':
1311                 case 'qt':
1312                     $type = 'video/quicktime';
1313                     break;
1314 
1315                 case 'mp4':
1316                 case 'mpg4':
1317                     $type = 'video/mp4';
1318                     break;
1319 
1320                 case 'sdv':
1321                     $type = 'video/sd-video';
1322                     break;
1323 
1324                 case 'wm':
1325                     $type = 'video/x-ms-wm';
1326                     break;
1327 
1328                 case 'wmv':
1329                     $type = 'video/x-ms-wmv';
1330                     break;
1331 
1332                 case 'wvx':
1333                     $type = 'video/x-ms-wvx';
1334                     break;
1335 
1336                 // Flash mime-types
1337                 case 'spl':
1338                     $type = 'application/futuresplash';
1339                     break;
1340 
1341                 case 'swf':
1342                     $type = 'application/x-shockwave-flash';
1343                     break;
1344             }
1345         }
1346 
1347         if ($find_handler)
1348         {
1349             if (in_array($type, $types_flash))
1350             {
1351                 return 'flash';
1352             }
1353             elseif (in_array($type, $types_fmedia))
1354             {
1355                 return 'fmedia';
1356             }
1357             elseif (in_array($type, $types_quicktime))
1358             {
1359                 return 'quicktime';
1360             }
1361             elseif (in_array($type, $types_wmedia))
1362             {
1363                 return 'wmedia';
1364             }
1365             elseif (in_array($type, $types_mp3))
1366             {
1367                 return 'mp3';
1368             }
1369             else
1370             {
1371                 return null;
1372             }
1373         }
1374         else
1375         {
1376             return $type;
1377         }
1378     }
1379 }
1380 
1381 
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.