Logging an event is how you start collecting data.
An event can be anything you wish, from tracking page hits and app logins through to form submissions and app usage.
By default, a timestamp of the log will be automatically inserted, and so there is no need to include a timestamp yourself. You can, however, add as much extra information to the log as you wish. This extra information can also be queried on, as we will show later.
Code Snippet Example:
The code snippet example will allow you to create a PDF file from HTML code that you pass to the PDF service. You will then be returned either a download link, or optionally the PDF file contents in the API response.
Code Snippet Example:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
//to importImport the PDFpdf Serviceservice classes $t->runInteraction("Pdf.class.php"); //import config class which contains keys $t->runInteraction("Config.class.php"); //setSet header/footer keys, footer, and page content HTML Code //HTML5 and CSS3 is supported $header_html = "{_BLINK_PAGE_NO_}/{_BLINK_PAGES_}<br><hr>"; $footer_html = "<hr><br>{_BLINK_PAGE_NO_}/{_BLINK_PAGES_}"; $body = "<table><td>PDF Example: " . date("c") . "</td></tr></table>"; $content = array( "page" => array( "orientation" => "Portrait", "size" => "A4", "margins" => array( "top" => "5mm", "right" => "1cm", "bottom" => "5mm", "left" => "1cm" ) ), "header" => array( "height" => "1in2cm", "html" => $header_html ), "footer" => array( "height" => "1in2cm", "html" => $footer_thmlhtml ), "body" => array( "html" => $body ) ); echo "About to build<BR>"; //create object//Call the PDF Service $pdf = new PDFBuilder(Config::$PDF); //buildSetting pdf,$includeBase64Content ifto base64true iswill requiredinclude $resultthe = $pdf->build($content); echo "<pre>"; print_r($result); echo "</pre>"; /* try { print_r($result); } catch (Exception $e) { print_r($result); } */ return "Done<BR>"; /** * $result = array( * "id" => "<UNIQUE OBJECT ID>", * "url" => "http://url.to.pdf/valid.for.3.minutes", * "content" => "base64 pdf content" * ); **/PDF file content in the response object //Set to false to access the PDF file from a time limited URL instead $includeBase64Content = true; $result = $pdf->build($content, $includeBase64Content); |
Explanation:
The first two "runInteraction" lines will simply "include" the class files you already uploaded. Make sure your have used the correct interaction names. You will need to put both of these lines on any page, or interaction, that you will be calling the class.
//create object
$analytics = new Event(Config::$ANALYTICS_COLLECTOR);
This line will simply create the $analytics object, using the details from the the Config.class.php file. You don't need to modify this line.
//register login event with username, returns saved event with unique id
$response = $analytics->log("Login", array("username" => "johnsmith", "group" => "Inspector"));
This line is the method that will log an event. In this example, you may want to call this after a user successfully logs in.
The $analytics->log method takes two arguments:
- The name of the event
- Extra data you wish to include
$name (string value)
In the code example above, the event is named "Login". This is can be any string, and you can name it whatever you wish.
This will allow you to group specific events together, and so later you could run an query to show all "Logins", or all "Form Submissions", for example.
$tags (array)
The tags array can contain any extra information you want to include in this log. These are entirely freeform - you can include as much (within reason) or as little information in this array as you wish.
For the sake of performance, please don't include large amounts of data here, such as full form submission data, or images!
...
$header_html (string)
The header will be displayed at the top of each page of your PDF document. You can use HTML code and styles to display your header.
Additionally, you can also use the special keywords for dynamic values:
{_BLINK_PAGE_NO_} will display the current page in the PDF document.
{_BLINK_PAGES_} will display the total number of pages in the PDF document.
Info |
---|
Note: If you are using images in your header or footer, you will need to also place the same image in the body of your document, with the style set to display:none;. This is a current restriction with the library which we are looking at ways to get around. |
$footer_html (string)
The footer will be displayed at the bottom of each page of your PDF document. You can use HTML code and styles to display your footer.
Additionally, you can also use the special keywords for dynamic values:
{_BLINK_PAGE_NO_} will display the current page in the PDF document.
{_BLINK_PAGES_} will display the total number of pages in the PDF document.
Info |
---|
Note: If you are using images in your header or footer, you will need to also place the same image in the body of your document, with the style set to display:none;. This is a current restriction with the library which we are looking at ways to get around. |
$body (string)
The body of the PDF document is what will be displayed in the main page area of your PDF document. This supports HTML5 and CSS3, and offers very accurate rendering for even some of the more complex HTML objects.
Page Layout
$content (array)
The content array contains the parameters required to produce a PDF document, including layout options and content.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
"page": {
"orientation": "P",
"size": "A4",
"margins": {
"top": "5mm",
"right": "1cm",
"bottom": "5mm",
"left": "1cm"
} |
$content['page'] (array)
The $content['page'] array allows you to set your PDF page layout options:
orientation: P | L
size: A3 | A4 (default) | A5 | Legal | Letter | Tabloid
margin (array): top, right, bottom, left keys accept a number followed by the unit px (default) | mm | cm | in
Response:
After running this method, you will receive a response object that will simply return the data you logged. You can use this to double check values if you wish, but this is optional.
Next Step:
Create a Queryarray:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
$result = array(
"id" => "<UNIQUE OBJECT ID>",
"url" => "http://url.to.pdf/valid.for.3.minutes",
"content" => "base64 pdf content"
} |
id (string)
This is a unique ID string for this PDF document.
url (string)
This is a private signed URL to the PDF document that will be accessible for three minutes. Depending on your use case, you may attach this to an email or offer it for download. Keep in mind that this link will expire after three minutes, so you will need to consider what to do with the document longer term.
content (base64 string)
If you pass the variable $includeBase64Content = true when you call the service, the key "content" will also be included in the response array. The value of this key will be file contents of the PDF document, Base64 encoded.