Skip to content

Instantly share code, notes, and snippets.

@DavidOliver
Created February 8, 2012 21:29
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DavidOliver/1774027 to your computer and use it in GitHub Desktop.
Save DavidOliver/1774027 to your computer and use it in GitHub Desktop.
Custom data source for Symphony CMS
<?php
public function grab(&$param_pool=NULL){
$result = new XMLElement('parts');
// Get default settings from database
$defaults_query = "SELECT * FROM sym_sv_parts_defaults LIMIT 1";
$defaults_result = Symphony::Database()->fetch($defaults_query);
// Set default profit margin
$default_profit_margin = $defaults_result[0]['parts_defaults_profit_margin_percentage'];
// Set default multiplication factor
$factor = (100 + $default_profit_margin) / 100;
// Get parts from database
$parts_query = "SELECT id, parts_name, parts_part_number, parts_description, parts_purchase_price, parts_custom_profit_margin_percentage, parts_fixed_sales_price FROM sym_sv_parts ORDER BY 'parts_order'";
$parts_result = Symphony::Database()->fetch($parts_query);
// Add each part to XML output
foreach($parts_result as $part_row) {
$part_attributes = array('id' => $part_row['id']);
$part = new XMLElement('part', false, $part_attributes);
$part_name = new XMLElement('name', $part_row['parts_name']);
$part_number = new XMLElement('part-number', $part_row['parts_part_number']);
$part_description = new XMLElement('description', $part_row['parts_description']);
$part->appendChildArray(array($part_name, $part_number, $part_description));
$result->appendChild($part);
}
return $result;
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment