<?php
$path = MODX_CORE_PATH . 'components/webservice/';
$database_user = 'mel';
$database_password = '12345';
$table_prefix = 'LuggageCombo_';
$xpdo = new xPDO('mysql:host=localhost;dbname=webservice',$database_user,$database_password,$table_prefix);
$result = $modx->addPackage('webservice',$path .
'model/','LuggageCombo_');
if (! $result) {
return 'failed to add package';
} else {
$query = $xpdo->newQuery('TableSuffix');
$query->where(array(
SortID => 1
));
$packages = $xpdo->getCollection('TableSuffix', $query);
foreach($packages as $package) {
$fields = $package->toArray();
$output .= $modx->getChunk('packages_chunk', $fields);
};
return $output;
}This question has been answered by rjohnson375. See the first response.
<?php
define('MODX_CORE_PATH', '/var/www/whatever-your-path-is/core/');
define('MODX_CONFIG_KEY','config');
require_once MODX_CORE_PATH . 'model/modx/modx.class.php';
// Criteria for foreign Database
$host = 'localhost';
$username = 'mel';
$password = '12345';
$dbname = 'LugageCombo';
$port = 3306;
$charset = 'utf-8';
$dsn = "mysql:host=$host;dbname=$dbname;port=$port;charset=$charset";
$xpdo = new xPDO($dsn, $username, $password);
$manager= $xpdo->getManager();
$generator= $manager->getGenerator();
$xml= $generator->writeSchema('/var/www/whatever-your-path-is/core/components/webservices/schema/webservices.mysql.schema.xml','webservices', 'xPDOObject','TABLEPREFIX_');
$xpdo->setLogLevel(xPDO::LOG_LEVEL_INFO);
$xpdo->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');
$schema = '/var/www/whatever-your-path-is/core/components/webservices/schema/webservices.mysql.schema.xml';
$target = '/var/www/whatever-your-path-is/core/components/webservices/model/';
$generator->parseSchema($schema,$target);<?php
define('MODX_CORE_PATH', '/var/www/whatever-your-path-is/core/');
define('MODX_CONFIG_KEY','config');
require_once MODX_CORE_PATH . 'model/modx/modx.class.php';
// Criteria for foreign Database
$host = 'localhost';
$username = 'mel';
$password = '12345';
$dbname = 'LugageCombo';
$port = 3306;
$charset = 'utf-8';
$dsn = "mysql:host=$host;dbname=$dbname;port=$port;charset=$charset";
$xpdo = new xPDO($dsn, $username, $password);
$path = MODX_CORE_PATH . 'components/webservices/';
$result = $modx->addPackage('webservices',$path .
'model/','TABLEPREFIX_');
if (! $result) {
return 'failed to add package';
} else {
switch ($filter) {
case "some-criteria":
$rows = array();
$stmt = $xpdo->query("SELECT * FROM TABLEPREFIX_TABLESUFFIX WHERE Whatever LIKE 'some-value'");
if ($stmt) {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
array_push($rows, $row);
$output .= $modx->getChunk('chunk_to_output_data_formatted', $row);
}
}
return $output;
break;
}
}Looks good. I think I would use a different name for the xPDO variable since MODX uses that variable name more-or-less globally. It may not be necessary, but I think not doing so could affect plugins that might run during that request.
$xpdo = new xPDO($dsn, $username, $password);
.
.
$stmt = $xpdo->query("SELECT * FROM TABLEPREFIX_TABLESUFFIX WHERE Whatever LIKE 'some-value'");$dbconnection = new xPDO($dsn, $username, $password);
.
.
$stmt = $dbconnection->query("SELECT * FROM TABLEPREFIX_TABLESUFFIX WHERE Whatever LIKE 'some-value'");