aboutsummaryrefslogtreecommitdiffstats
path: root/include/classes/BigPipe/Pagelet.php
AgeCommit message (Collapse)AuthorFilesLines
2021-10-24Fix a bug in the Item constructor parameter listHEADmasterThomas Lange1-1/+1
The id parameter of the Pagelet and Resource constructor doesn't accept NULL values anymore (since 76cdd118d68bda3b7b29b192c7bf3d6e02bd6079). Therefore, allow NULL values by using the parameter type "?string" instead of "string" to allow either string values or NULL.
2021-10-24Rename several properties and method parametersThomas Lange1-2/+2
* Rename "ID" property of the Item class to "id" * Rename "customID" constructor parameter to "id" * Rename "resourceURL" property of the Resource class to "url" * Rename "resourceURL" constructor parameter to "url"
2021-10-24Add parameter and return types for all PHP methodsThomas Lange1-9/+9
2021-10-24Declare some BigPipe PHP library methods as voidThomas Lange1-12/+12
Class BigPipe\BigPipe: * addPhaseDoneJS Class BigPipe\Pagelet: * addHTML * addResource * addJSCode * addDependency * setTagName * setPlaceholderHTML
2021-10-24Split up BigPipe "enabled" method into two methodsThomas Lange1-2/+2
Split up the "enabled" method of the BigPipe class into two methods, one to check if the pipelining mode is currently enabled ("isEnabled") and another one to enable/disable the pipelining mode ("setEnabled"). This change prevents that a single method has two different jobs, which can be confusing for programmers who didn't wrote the code but only use them. Now there are two clearly named methods for exactly one job.
2021-10-24Rename "tagname" property and "setTagname" methodThomas Lange1-6/+6
Rename the "tagname" property and the "setTagname" method of the Pagelet class to the lowerCamelCase variant "tagName" because it are two words.
2021-10-24Remove closing tags and ensure LF at end of filesThomas Lange1-1/+0
Remove the unnecessary PHP closing tags and ensure that *all* non-binary files ending with an LF character.
2018-01-28Replace function call "removeLineBreaksAndTabs" with "str_replace"Thomas Lange1-1/+1
This commit replaces the function call of "removeLineBreaksAndTabs" from "Pagelet::flush()" with the direct call of the "str_replace" function. Therefore, you don't need to include the external function "removeLineBreaksAndTabs" (which was located outside the BigPipe namespace) into your project anymore.
2018-01-28Remove superflous function calls from two methodsThomas Lange1-1/+1
This commit removes the superflous function calls "removeLineBreaksAndTabs" from the "Pagelet::getStructure()" and "Item::addPhaseDoneJS()" method. If it bothers you when some properties of the JSON-encoded pagelet object contain line breaks and tabs (visible as "\r", "\n" and "\t"), then you'll need to remove them before you pass the string of javascript code to the corresponding methods: * $Pagelet->addJSCode(removeLineBreaksAndTabs($javascript_code)); * $Pagelet->addPhaseDoneJS(0, removeLineBreaksAndTabs($javascript_code));
2018-01-26Remove static $count property and use spl_object_hash() insteadThomas Lange1-2/+1
2018-01-21Move BigPipe::singleResponse() to Pagelet::flush()Thomas Lange1-0/+18
2017-11-23The file permissions have been normalized.Thomas Lange1-0/+0
2017-10-21Code optimization: The method "getStructure" has been added to the abstract ↵Thomas Lange1-0/+24
Item class.
2017-10-07The shorthand methods "addCSS" and "addJS" have been removed. If you need ↵Thomas Lange1-14/+0
shorthand syntax, you can abstract the Pagelet class and use your own extended class which is more flexible and will keep the BigPipe main classes as small as possible.
2017-10-05The method "addDependency" no longer accepts a pagelet ID as a string. You ↵Thomas Lange1-6/+2
must now pass an existing Pagelet instance to the method!
2017-10-04The method "addPagelet" from the BigPipe main class was replaced by the new ↵Thomas Lange1-1/+1
implemented methods "enqueue" and "dequeue" for the new queueing mechanism. The "dequeue" method is currently unused but will be used in the future. The changes in this commit are partially preparations for further commits.
2017-10-04A new method called "getPriority" has been implemented, which returns the ↵Thomas Lange1-0/+9
priority of the corresponding Pagelet instance.
2017-08-16A new method called "setPlaceholderHTML" was implemented and can be used to ↵Thomas Lange1-1/+9
display custom HTML content immediately while the pagelet is still processing.
2017-08-06The "CSS" and "JS" resource representation classes has been renamed to ↵Thomas Lange1-4/+4
"Stylesheet" and "Javascript" to make it more consistent with the other class names (instead of using the abbreviations).
2016-10-22The Pagelet representation class in PHP now has a separate method to add ↵Thomas Lange1-3/+13
dependencies (either with the instance of the dependency Pagelet or the unique ID as string as argument).
2016-07-10Comment updates: Separate email address for code stuff.Thomas Lange1-1/+1
2016-07-10Each resource has now an ID; Code improvements and comment blocks added.Thomas Lange1-65/+33
2016-06-25Update with new features and code improvements.Thomas Lange1-28/+46
+ New classes have been added: "BigPipe\Resource", "BigPipe\Resource\CSS", "BigPipe\Resource\JS". If you wan't to add a resource to a Pagelet, you can now built a new resource object with the "CSS" or "JS" class (the "Resource" class is abstract and the parent class of "CSS" and "JS") and can add PhaseDoneJS callbacks for this resources with "Resource::addPhaseDoneJS()" similar to "Pagelet::addPhaseDoneJS()". To add the resource to your pagelet: "$Pagelet->addResource($Resource)". Of course, you can still use the two SHORT methods "Pagelet::addCSS()" and "Pagelet::addJS()" which needs only one parameter with the resource URL. + Each resource has now PhaseDoneJS callbacks for 3 phases (Object initializied [INIT], Loading started [LOAD], Loading complete [DONE]). + Check your usage of the PhaseDoneJS callback constants of the Pagelet class: These constants have been renamed. + Debugging mode: Just set BigPipe::debugging(TRUE) and each pagelet and resource will be pass through a function which adds PhaseDoneJS callbacks with debug informations (Look now at the Javascript console and enjoy the beautiful colors which makes the debug informations better readable for your eyes. \(o_o)/). + Several code improvements on almost all files.
2016-06-23Pagelets executed immediately; Dependency feature; Several improvementsThomas Lange1-1/+10
+ All pagelets are now executed immediately on arrive. + A "Display Dependency" feature was added. If you give a pagelet an dependency, it will first be executed if all pagelets, who registered as dependency, are displayed. + If BigPipe.reset() is called, the function loops through each Resource and executes Resource.abortLoading(). This removes the <link> or <script> element from DOM and removes the onload callbacks. This is to prevent that an onload callback from a previous page are executed while the user has already changes the page asynchronously and a resource from the previous page wasn't already loaded.
2016-05-13Multiple updatesThomas Lange1-9/+21
2016-05-10Comment updateThomas Lange1-1/+1
2016-05-10Comment updateThomas Lange1-1/+1
2016-05-10Double quotes converted to single quotesThomas Lange1-2/+2
2016-04-22Multiple updates with async demo.Thomas Lange1-28/+28
2016-03-26Custom pagelet ID'sThomas Lange1-2/+2
2015-12-26Multiple updates; new feature PhaseDoneJSThomas Lange1-17/+52
2015-07-25Namespaces addedThomas Lange1-0/+86