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  Pagination
  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  * Pagination Class. Provides a common interface for content pagination for the Joomla! CMS.
 14  *
 15  * @since  1.5
 16  */
 17 class JPagination
 18 {
 19     /**
 20      * @var    integer  The record number to start displaying from.
 21      * @since  1.5
 22      */
 23     public $limitstart = null;
 24 
 25     /**
 26      * @var    integer  Number of rows to display per page.
 27      * @since  1.5
 28      */
 29     public $limit = null;
 30 
 31     /**
 32      * @var    integer  Total number of rows.
 33      * @since  1.5
 34      */
 35     public $total = null;
 36 
 37     /**
 38      * @var    integer  Prefix used for request variables.
 39      * @since  1.6
 40      */
 41     public $prefix = null;
 42 
 43     /**
 44      * @var    integer  Value pagination object begins at
 45      * @since  3.0
 46      */
 47     public $pagesStart;
 48 
 49     /**
 50      * @var    integer  Value pagination object ends at
 51      * @since  3.0
 52      */
 53     public $pagesStop;
 54 
 55     /**
 56      * @var    integer  Current page
 57      * @since  3.0
 58      */
 59     public $pagesCurrent;
 60 
 61     /**
 62      * @var    integer  Total number of pages
 63      * @since  3.0
 64      */
 65     public $pagesTotal;
 66 
 67     /**
 68      * @var    boolean  View all flag
 69      * @since  3.0
 70      */
 71     protected $viewall = false;
 72 
 73     /**
 74      * Additional URL parameters to be added to the pagination URLs generated by the class.  These
 75      * may be useful for filters and extra values when dealing with lists and GET requests.
 76      *
 77      * @var    array
 78      * @since  3.0
 79      */
 80     protected $additionalUrlParams = array();
 81 
 82     /**
 83      * @var    JApplicationCms  The application object
 84      * @since  3.4
 85      */
 86     protected $app = null;
 87 
 88     /**
 89      * Pagination data object
 90      *
 91      * @var    object
 92      * @since  3.4
 93      */
 94     protected $data;
 95 
 96     /**
 97      * Constructor.
 98      *
 99      * @param   integer          $total       The total number of items.
100      * @param   integer          $limitstart  The offset of the item to start at.
101      * @param   integer          $limit       The number of items to display per page.
102      * @param   string           $prefix      The prefix used for request variables.
103      * @param   JApplicationCms  $app         The application object
104      *
105      * @since   1.5
106      */
107     public function __construct($total, $limitstart, $limit, $prefix = '', JApplicationCms $app = null)
108     {
109         // Value/type checking.
110         $this->total = (int) $total;
111         $this->limitstart = (int) max($limitstart, 0);
112         $this->limit = (int) max($limit, 0);
113         $this->prefix = $prefix;
114         $this->app = $app ?: JFactory::getApplication();
115 
116         if ($this->limit > $this->total)
117         {
118             $this->limitstart = 0;
119         }
120 
121         if (!$this->limit)
122         {
123             $this->limit = $total;
124             $this->limitstart = 0;
125         }
126 
127         /*
128          * If limitstart is greater than total (i.e. we are asked to display records that don't exist)
129          * then set limitstart to display the last natural page of results
130          */
131         if ($this->limitstart > $this->total - $this->limit)
132         {
133             $this->limitstart = max(0, (int) (ceil($this->total / $this->limit) - 1) * $this->limit);
134         }
135 
136         // Set the total pages and current page values.
137         if ($this->limit > 0)
138         {
139             $this->pagesTotal = ceil($this->total / $this->limit);
140             $this->pagesCurrent = ceil(($this->limitstart + 1) / $this->limit);
141         }
142 
143         // Set the pagination iteration loop values.
144         $displayedPages = 10;
145         $this->pagesStart = $this->pagesCurrent - ($displayedPages / 2);
146 
147         if ($this->pagesStart < 1)
148         {
149             $this->pagesStart = 1;
150         }
151 
152         if ($this->pagesStart + $displayedPages > $this->pagesTotal)
153         {
154             $this->pagesStop = $this->pagesTotal;
155 
156             if ($this->pagesTotal < $displayedPages)
157             {
158                 $this->pagesStart = 1;
159             }
160             else
161             {
162                 $this->pagesStart = $this->pagesTotal - $displayedPages + 1;
163             }
164         }
165         else
166         {
167             $this->pagesStop = $this->pagesStart + $displayedPages - 1;
168         }
169 
170         // If we are viewing all records set the view all flag to true.
171         if ($limit === 0)
172         {
173             $this->viewall = true;
174         }
175     }
176 
177     /**
178      * Method to set an additional URL parameter to be added to all pagination class generated
179      * links.
180      *
181      * @param   string  $key    The name of the URL parameter for which to set a value.
182      * @param   mixed   $value  The value to set for the URL parameter.
183      *
184      * @return  mixed  The old value for the parameter.
185      *
186      * @since   1.6
187      */
188     public function setAdditionalUrlParam($key, $value)
189     {
190         // Get the old value to return and set the new one for the URL parameter.
191         $result = isset($this->additionalUrlParams[$key]) ? $this->additionalUrlParams[$key] : null;
192 
193         // If the passed parameter value is null unset the parameter, otherwise set it to the given value.
194         if ($value === null)
195         {
196             unset($this->additionalUrlParams[$key]);
197         }
198         else
199         {
200             $this->additionalUrlParams[$key] = $value;
201         }
202 
203         return $result;
204     }
205 
206     /**
207      * Method to get an additional URL parameter (if it exists) to be added to
208      * all pagination class generated links.
209      *
210      * @param   string  $key  The name of the URL parameter for which to get the value.
211      *
212      * @return  mixed  The value if it exists or null if it does not.
213      *
214      * @since   1.6
215      */
216     public function getAdditionalUrlParam($key)
217     {
218         $result = isset($this->additionalUrlParams[$key]) ? $this->additionalUrlParams[$key] : null;
219 
220         return $result;
221     }
222 
223     /**
224      * Return the rationalised offset for a row with a given index.
225      *
226      * @param   integer  $index  The row index
227      *
228      * @return  integer  Rationalised offset for a row with a given index.
229      *
230      * @since   1.5
231      */
232     public function getRowOffset($index)
233     {
234         return $index + 1 + $this->limitstart;
235     }
236 
237     /**
238      * Return the pagination data object, only creating it if it doesn't already exist.
239      *
240      * @return  stdClass  Pagination data object.
241      *
242      * @since   1.5
243      */
244     public function getData()
245     {
246         if (!$this->data)
247         {
248             $this->data = $this->_buildDataObject();
249         }
250 
251         return $this->data;
252     }
253 
254     /**
255      * Create and return the pagination pages counter string, ie. Page 2 of 4.
256      *
257      * @return  string   Pagination pages counter string.
258      *
259      * @since   1.5
260      */
261     public function getPagesCounter()
262     {
263         $html = null;
264 
265         if ($this->pagesTotal > 1)
266         {
267             $html .= JText::sprintf('JLIB_HTML_PAGE_CURRENT_OF_TOTAL', $this->pagesCurrent, $this->pagesTotal);
268         }
269 
270         return $html;
271     }
272 
273     /**
274      * Create and return the pagination result set counter string, e.g. Results 1-10 of 42
275      *
276      * @return  string   Pagination result set counter string.
277      *
278      * @since   1.5
279      */
280     public function getResultsCounter()
281     {
282         $html = null;
283         $fromResult = $this->limitstart + 1;
284 
285         // If the limit is reached before the end of the list.
286         if ($this->limitstart + $this->limit < $this->total)
287         {
288             $toResult = $this->limitstart + $this->limit;
289         }
290         else
291         {
292             $toResult = $this->total;
293         }
294 
295         // If there are results found.
296         if ($this->total > 0)
297         {
298             $msg = JText::sprintf('JLIB_HTML_RESULTS_OF', $fromResult, $toResult, $this->total);
299             $html .= "\n" . $msg;
300         }
301         else
302         {
303             $html .= "\n" . JText::_('JLIB_HTML_NO_RECORDS_FOUND');
304         }
305 
306         return $html;
307     }
308 
309     /**
310      * Create and return the pagination page list string, ie. Previous, Next, 1 2 3 ... x.
311      *
312      * @return  string  Pagination page list string.
313      *
314      * @since   1.5
315      */
316     public function getPagesLinks()
317     {
318         // Build the page navigation list.
319         $data = $this->_buildDataObject();
320 
321         $list           = array();
322         $list['prefix'] = $this->prefix;
323 
324         $itemOverride = false;
325         $listOverride = false;
326 
327         $chromePath = JPATH_THEMES . '/' . $this->app->getTemplate() . '/html/pagination.php';
328 
329         if (file_exists($chromePath))
330         {
331             include_once $chromePath;
332 
333             /*
334              * @deprecated Item rendering should use a layout
335              */
336             if (function_exists('pagination_item_active') && function_exists('pagination_item_inactive'))
337             {
338                 JLog::add(
339                     'pagination_item_active and pagination_item_inactive are deprecated. Use the layout joomla.pagination.link instead.',
340                     JLog::WARNING,
341                     'deprecated'
342                 );
343 
344                 $itemOverride = true;
345             }
346 
347             /*
348              * @deprecated The list rendering is now a layout.
349              * @see JPagination::_list_render()
350              */
351             if (function_exists('pagination_list_render'))
352             {
353                 JLog::add('pagination_list_render is deprecated. Use the layout joomla.pagination.list instead.', JLog::WARNING, 'deprecated');
354                 $listOverride = true;
355             }
356         }
357 
358         // Build the select list
359         if ($data->all->base !== null)
360         {
361             $list['all']['active'] = true;
362             $list['all']['data']   = $itemOverride ? pagination_item_active($data->all) : $this->_item_active($data->all);
363         }
364         else
365         {
366             $list['all']['active'] = false;
367             $list['all']['data']   = $itemOverride ? pagination_item_inactive($data->all) : $this->_item_inactive($data->all);
368         }
369 
370         if ($data->start->base !== null)
371         {
372             $list['start']['active'] = true;
373             $list['start']['data']   = $itemOverride ? pagination_item_active($data->start) : $this->_item_active($data->start);
374         }
375         else
376         {
377             $list['start']['active'] = false;
378             $list['start']['data']   = $itemOverride ? pagination_item_inactive($data->start) : $this->_item_inactive($data->start);
379         }
380 
381         if ($data->previous->base !== null)
382         {
383             $list['previous']['active'] = true;
384             $list['previous']['data']   = $itemOverride ? pagination_item_active($data->previous) : $this->_item_active($data->previous);
385         }
386         else
387         {
388             $list['previous']['active'] = false;
389             $list['previous']['data']   = $itemOverride ? pagination_item_inactive($data->previous) : $this->_item_inactive($data->previous);
390         }
391 
392         // Make sure it exists
393         $list['pages'] = array();
394 
395         foreach ($data->pages as $i => $page)
396         {
397             if ($page->base !== null)
398             {
399                 $list['pages'][$i]['active'] = true;
400                 $list['pages'][$i]['data']   = $itemOverride ? pagination_item_active($page) : $this->_item_active($page);
401             }
402             else
403             {
404                 $list['pages'][$i]['active'] = false;
405                 $list['pages'][$i]['data']   = $itemOverride ? pagination_item_inactive($page) : $this->_item_inactive($page);
406             }
407         }
408 
409         if ($data->next->base !== null)
410         {
411             $list['next']['active'] = true;
412             $list['next']['data']   = $itemOverride ? pagination_item_active($data->next) : $this->_item_active($data->next);
413         }
414         else
415         {
416             $list['next']['active'] = false;
417             $list['next']['data']   = $itemOverride ? pagination_item_inactive($data->next) : $this->_item_inactive($data->next);
418         }
419 
420         if ($data->end->base !== null)
421         {
422             $list['end']['active'] = true;
423             $list['end']['data']   = $itemOverride ? pagination_item_active($data->end) : $this->_item_active($data->end);
424         }
425         else
426         {
427             $list['end']['active'] = false;
428             $list['end']['data']   = $itemOverride ? pagination_item_inactive($data->end) : $this->_item_inactive($data->end);
429         }
430 
431         if ($this->total > $this->limit)
432         {
433             return $listOverride ? pagination_list_render($list) : $this->_list_render($list);
434         }
435         else
436         {
437             return '';
438         }
439     }
440 
441     /**
442      * Get the pagination links
443      *
444      * @param   string  $layoutId  Layout to render the links
445      * @param   array   $options   Optional array with settings for the layout
446      *
447      * @return  string  Pagination links.
448      *
449      * @since   3.3
450      */
451     public function getPaginationLinks($layoutId = 'joomla.pagination.links', $options = array())
452     {
453         // Allow to receive a null layout
454         $layoutId = $layoutId === null ? 'joomla.pagination.links' : $layoutId;
455 
456         $list = array(
457             'prefix'       => $this->prefix,
458             'limit'        => $this->limit,
459             'limitstart'   => $this->limitstart,
460             'total'        => $this->total,
461             'limitfield'   => $this->getLimitBox(),
462             'pagescounter' => $this->getPagesCounter(),
463             'pages'        => $this->getPaginationPages(),
464             'pagesTotal'   => $this->pagesTotal,
465         );
466 
467         return JLayoutHelper::render($layoutId, array('list' => $list, 'options' => $options));
468     }
469 
470     /**
471      * Create and return the pagination pages list, ie. Previous, Next, 1 2 3 ... x.
472      *
473      * @return  array  Pagination pages list.
474      *
475      * @since   3.3
476      */
477     public function getPaginationPages()
478     {
479         $list = array();
480 
481         if ($this->total > $this->limit)
482         {
483             // Build the page navigation list.
484             $data = $this->_buildDataObject();
485 
486             // All
487             $list['all']['active'] = $data->all->base !== null;
488             $list['all']['data']   = $data->all;
489 
490             // Start
491             $list['start']['active'] = $data->start->base !== null;
492             $list['start']['data']   = $data->start;
493 
494             // Previous link
495             $list['previous']['active'] = $data->previous->base !== null;
496             $list['previous']['data']   = $data->previous;
497 
498             // Make sure it exists
499             $list['pages'] = array();
500 
501             foreach ($data->pages as $i => $page)
502             {
503                 $list['pages'][$i]['active'] = $page->base !== null;
504                 $list['pages'][$i]['data']   = $page;
505             }
506 
507             $list['next']['active'] = $data->next->base !== null;
508             $list['next']['data']   = $data->next;
509 
510             $list['end']['active'] = $data->end->base !== null;
511             $list['end']['data']   = $data->end;
512         }
513 
514         return $list;
515     }
516 
517     /**
518      * Return the pagination footer.
519      *
520      * @return  string  Pagination footer.
521      *
522      * @since   1.5
523      */
524     public function getListFooter()
525     {
526         // Keep B/C for overrides done with chromes
527         $chromePath = JPATH_THEMES . '/' . $this->app->getTemplate() . '/html/pagination.php';
528 
529         if (file_exists($chromePath))
530         {
531             include_once $chromePath;
532 
533             if (function_exists('pagination_list_footer'))
534             {
535                 JLog::add('pagination_list_footer is deprecated. Use the layout joomla.pagination.links instead.', JLog::WARNING, 'deprecated');
536 
537                 $list = array(
538                     'prefix'       => $this->prefix,
539                     'limit'        => $this->limit,
540                     'limitstart'   => $this->limitstart,
541                     'total'        => $this->total,
542                     'limitfield'   => $this->getLimitBox(),
543                     'pagescounter' => $this->getPagesCounter(),
544                     'pageslinks'   => $this->getPagesLinks(),
545                 );
546 
547                 return pagination_list_footer($list);
548             }
549         }
550 
551         return $this->getPaginationLinks();
552     }
553 
554     /**
555      * Creates a dropdown box for selecting how many records to show per page.
556      *
557      * @return  string  The HTML for the limit # input box.
558      *
559      * @since   1.5
560      */
561     public function getLimitBox()
562     {
563         $limits = array();
564 
565         // Make the option list.
566         for ($i = 5; $i <= 30; $i += 5)
567         {
568             $limits[] = JHtml::_('select.option', "$i");
569         }
570 
571         $limits[] = JHtml::_('select.option', '50', JText::_('J50'));
572         $limits[] = JHtml::_('select.option', '100', JText::_('J100'));
573         $limits[] = JHtml::_('select.option', '0', JText::_('JALL'));
574 
575         $selected = $this->viewall ? 0 : $this->limit;
576 
577         // Build the select list.
578         if ($this->app->isClient('administrator'))
579         {
580             $html = JHtml::_(
581                 'select.genericlist',
582                 $limits,
583                 $this->prefix . 'limit',
584                 'class="inputbox input-mini" size="1" onchange="Joomla.submitform();"',
585                 'value',
586                 'text',
587                 $selected
588             );
589         }
590         else
591         {
592             $html = JHtml::_(
593                 'select.genericlist',
594                 $limits,
595                 $this->prefix . 'limit',
596                 'class="inputbox input-mini" size="1" onchange="this.form.submit()"',
597                 'value',
598                 'text',
599                 $selected
600             );
601         }
602 
603         return $html;
604     }
605 
606     /**
607      * Return the icon to move an item UP.
608      *
609      * @param   integer  $i          The row index.
610      * @param   boolean  $condition  True to show the icon.
611      * @param   string   $task       The task to fire.
612      * @param   string   $alt        The image alternative text string.
613      * @param   boolean  $enabled    An optional setting for access control on the action.
614      * @param   string   $checkbox   An optional prefix for checkboxes.
615      *
616      * @return  string   Either the icon to move an item up or a space.
617      *
618      * @since   1.5
619      */
620     public function orderUpIcon($i, $condition = true, $task = 'orderup', $alt = 'JLIB_HTML_MOVE_UP', $enabled = true, $checkbox = 'cb')
621     {
622         if (($i > 0 || ($i + $this->limitstart > 0)) && $condition)
623         {
624             return JHtml::_('jgrid.orderUp', $i, $task, '', $alt, $enabled, $checkbox);
625         }
626         else
627         {
628             return '&#160;';
629         }
630     }
631 
632     /**
633      * Return the icon to move an item DOWN.
634      *
635      * @param   integer  $i          The row index.
636      * @param   integer  $n          The number of items in the list.
637      * @param   boolean  $condition  True to show the icon.
638      * @param   string   $task       The task to fire.
639      * @param   string   $alt        The image alternative text string.
640      * @param   boolean  $enabled    An optional setting for access control on the action.
641      * @param   string   $checkbox   An optional prefix for checkboxes.
642      *
643      * @return  string   Either the icon to move an item down or a space.
644      *
645      * @since   1.5
646      */
647     public function orderDownIcon($i, $n, $condition = true, $task = 'orderdown', $alt = 'JLIB_HTML_MOVE_DOWN', $enabled = true, $checkbox = 'cb')
648     {
649         if (($i < $n - 1 || $i + $this->limitstart < $this->total - 1) && $condition)
650         {
651             return JHtml::_('jgrid.orderDown', $i, $task, '', $alt, $enabled, $checkbox);
652         }
653         else
654         {
655             return '&#160;';
656         }
657     }
658 
659     /**
660      * Create the HTML for a list footer
661      *
662      * @param   array  $list  Pagination list data structure.
663      *
664      * @return  string  HTML for a list footer
665      *
666      * @since   1.5
667      */
668     protected function _list_footer($list)
669     {
670         $html = "<div class=\"list-footer\">\n";
671 
672         $html .= "\n<div class=\"limit\">" . JText::_('JGLOBAL_DISPLAY_NUM') . $list['limitfield'] . "</div>";
673         $html .= $list['pageslinks'];
674         $html .= "\n<div class=\"counter\">" . $list['pagescounter'] . "</div>";
675 
676         $html .= "\n<input type=\"hidden\" name=\"" . $list['prefix'] . "limitstart\" value=\"" . $list['limitstart'] . "\" />";
677         $html .= "\n</div>";
678 
679         return $html;
680     }
681 
682     /**
683      * Create the html for a list footer
684      *
685      * @param   array  $list  Pagination list data structure.
686      *
687      * @return  string  HTML for a list start, previous, next,end
688      *
689      * @since   1.5
690      */
691     protected function _list_render($list)
692     {
693         return JLayoutHelper::render('joomla.pagination.list', array('list' => $list));
694     }
695 
696     /**
697      * Method to create an active pagination link to the item
698      *
699      * @param   JPaginationObject  $item  The object with which to make an active link.
700      *
701      * @return  string  HTML link
702      *
703      * @since   1.5
704      * @note    As of 4.0 this method will proxy to `JLayoutHelper::render('joomla.pagination.link', ['data' => $item, 'active' => true])`
705      */
706     protected function _item_active(JPaginationObject $item)
707     {
708         $title = '';
709         $class = '';
710 
711         if (!is_numeric($item->text))
712         {
713             JHtml::_('bootstrap.tooltip');
714             $title = ' title="' . $item->text . '"';
715             $class = 'hasTooltip ';
716         }
717 
718         if ($this->app->isClient('administrator'))
719         {
720             return '<a' . $title . ' href="#" onclick="document.adminForm.' . $this->prefix
721             . 'limitstart.value=' . ($item->base > 0 ? $item->base : '0') . '; Joomla.submitform();return false;">' . $item->text . '</a>';
722         }
723         else
724         {
725             return '<a' . $title . ' href="' . $item->link . '" class="' . $class . 'pagenav">' . $item->text . '</a>';
726         }
727     }
728 
729     /**
730      * Method to create an inactive pagination string
731      *
732      * @param   JPaginationObject  $item  The item to be processed
733      *
734      * @return  string
735      *
736      * @since   1.5
737      * @note    As of 4.0 this method will proxy to `JLayoutHelper::render('joomla.pagination.link', ['data' => $item, 'active' => false])`
738      */
739     protected function _item_inactive(JPaginationObject $item)
740     {
741         if ($this->app->isClient('administrator'))
742         {
743             return '<span>' . $item->text . '</span>';
744         }
745         else
746         {
747             return '<span class="pagenav">' . $item->text . '</span>';
748         }
749     }
750 
751     /**
752      * Create and return the pagination data object.
753      *
754      * @return  stdClass  Pagination data object.
755      *
756      * @since   1.5
757      */
758     protected function _buildDataObject()
759     {
760         $data = new stdClass;
761 
762         // Build the additional URL parameters string.
763         $params = '';
764 
765         if (!empty($this->additionalUrlParams))
766         {
767             foreach ($this->additionalUrlParams as $key => $value)
768             {
769                 $params .= '&' . $key . '=' . $value;
770             }
771         }
772 
773         $data->all = new JPaginationObject(JText::_('JLIB_HTML_VIEW_ALL'), $this->prefix);
774 
775         if (!$this->viewall)
776         {
777             $data->all->base = '0';
778             $data->all->link = JRoute::_($params . '&' . $this->prefix . 'limitstart=');
779         }
780 
781         // Set the start and previous data objects.
782         $data->start    = new JPaginationObject(JText::_('JLIB_HTML_START'), $this->prefix);
783         $data->previous = new JPaginationObject(JText::_('JPREV'), $this->prefix);
784 
785         if ($this->pagesCurrent > 1)
786         {
787             $page = ($this->pagesCurrent - 2) * $this->limit;
788 
789             // Set the empty for removal from route
790             // @todo remove code: $page = $page == 0 ? '' : $page;
791 
792             $data->start->base    = '0';
793             $data->start->link    = JRoute::_($params . '&' . $this->prefix . 'limitstart=0');
794             $data->previous->base = $page;
795             $data->previous->link = JRoute::_($params . '&' . $this->prefix . 'limitstart=' . $page);
796         }
797 
798         // Set the next and end data objects.
799         $data->next = new JPaginationObject(JText::_('JNEXT'), $this->prefix);
800         $data->end  = new JPaginationObject(JText::_('JLIB_HTML_END'), $this->prefix);
801 
802         if ($this->pagesCurrent < $this->pagesTotal)
803         {
804             $next = $this->pagesCurrent * $this->limit;
805             $end  = ($this->pagesTotal - 1) * $this->limit;
806 
807             $data->next->base = $next;
808             $data->next->link = JRoute::_($params . '&' . $this->prefix . 'limitstart=' . $next);
809             $data->end->base  = $end;
810             $data->end->link  = JRoute::_($params . '&' . $this->prefix . 'limitstart=' . $end);
811         }
812 
813         $data->pages = array();
814         $stop        = $this->pagesStop;
815 
816         for ($i = $this->pagesStart; $i <= $stop; $i++)
817         {
818             $offset = ($i - 1) * $this->limit;
819 
820             $data->pages[$i] = new JPaginationObject($i, $this->prefix);
821 
822             if ($i != $this->pagesCurrent || $this->viewall)
823             {
824                 $data->pages[$i]->base = $offset;
825                 $data->pages[$i]->link = JRoute::_($params . '&' . $this->prefix . 'limitstart=' . $offset);
826             }
827             else
828             {
829                 $data->pages[$i]->active = true;
830             }
831         }
832 
833         return $data;
834     }
835 
836     /**
837      * Modifies a property of the object, creating it if it does not already exist.
838      *
839      * @param   string  $property  The name of the property.
840      * @param   mixed   $value     The value of the property to set.
841      *
842      * @return  void
843      *
844      * @since   3.0
845      * @deprecated  4.0  Access the properties directly.
846      */
847     public function set($property, $value = null)
848     {
849         JLog::add('JPagination::set() is deprecated. Access the properties directly.', JLog::WARNING, 'deprecated');
850 
851         if (strpos($property, '.'))
852         {
853             $prop     = explode('.', $property);
854             $prop[1]  = ucfirst($prop[1]);
855             $property = implode($prop);
856         }
857 
858         $this->$property = $value;
859     }
860 
861     /**
862      * Returns a property of the object or the default value if the property is not set.
863      *
864      * @param   string  $property  The name of the property.
865      * @param   mixed   $default   The default value.
866      *
867      * @return  mixed    The value of the property.
868      *
869      * @since   3.0
870      * @deprecated  4.0  Access the properties directly.
871      */
872     public function get($property, $default = null)
873     {
874         JLog::add('JPagination::get() is deprecated. Access the properties directly.', JLog::WARNING, 'deprecated');
875 
876         if (strpos($property, '.'))
877         {
878             $prop     = explode('.', $property);
879             $prop[1]  = ucfirst($prop[1]);
880             $property = implode($prop);
881         }
882 
883         if (isset($this->$property))
884         {
885             return $this->$property;
886         }
887 
888         return $default;
889     }
890 }
891 
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.