Your custom snippet needs to query the site database.
Tontttu asked...
When I had MODx evolution, I used following code to get information from the database:
<?php $haku = mysql_query( "SELECT id, pagetitle, parent, description, content FROM `revo_site_content` WHERE `parent`=3 ORDER BY `id` DESC LIMIT 2"); while ( $tiedot = mysql_fetch_array ( $haku ) ) { ... } ?>
When I installed the MODx Revolution, this code doesn’t work anymore. I read that with the Revolution I have to use some ORM or xPDO thing but I have no idea how to use them... And haven’t found anythind easy enough for me. So could you help me with that? How I can get those information from my MySQL database with the Revolution?
The Solution
BobRay says...
Revolution uses xPDO. Here’s an example that should get you started:
<?php $c = $modx->newQuery('modResource'); $c->select(array('id', 'pagetitle', 'parent', 'description', 'content')); $c->where(array( 'published'=>'1', 'deleted'=>'0', 'parent'=>'3', )); $c->sortby('id', 'DESC'); $docs = $modx->getCollection('modResource', $c); foreach ($docs as $doc) { $output .= '<br />Title:' . $doc->get('pagetitle') . ' ID:' . $doc->get('id') .'<br />'; } return $output;
What's the Story?
As BobRay said, MODX uses xPDO. This is an extension of PHP's PDO abstraction layer, and it uses a different database connection than the standard mysqli_db functions. To use the existing MODX database connection, you must use the xPDO API.
If for some reason you really need to use PHP's mysqli_db functions, you'll have to make a separate mysqli connection to the database.