<?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'");