function _getRecords_loadResults($query, $options, $schema) { // execute query $result = mysql_query($query) or die(@$VIEWER_NAME . " MySQL Error: " . htmlencode(mysql_error()) . "\n"); $records = array(); while ($record = mysql_fetch_assoc($result)) { $filenameValue = getFilenameFieldValue($record, @$schema['_filenameFields']); $record['_filename'] = rtrim($filenameValue, '-'); if (@(!$schema['_detailPage'])) { $record['_link'] = "javascript:alert('Set Detail Page Url for this section in: Admin > Section Editors > Viewer Urls')"; } elseif (@$options['useSeoUrls']) { $record['_link'] = PREFIX_URL . @$schema['_detailPage'] . '/' . $filenameValue . $record['num'] . "/"; } else { $record['_link'] = PREFIX_URL . @$schema['_detailPage'] . '?' . $filenameValue . $record['num']; } $record['_link'] = str_replace(' ', '%20', $record['_link']); // v2.60 : urlencode spaces so they validate // allow _detailPage links of / or ? // NOT YET IMPLEMENTED #$record['_link'] = preg_replace("/\?+/", '?', $record['_link']); #$record['_link'] = preg_replace("/\/+/", '/', $record['_link']); // array_push($records, $record); } if (is_resource($result)) { mysql_free_result($result); } // get record count $totalRecords = (int) mysql_select_found_rows(); // $results = array($records, $totalRecords); return $results; }
function getRecord($options) { global $VIEWER_NAME, $TABLE_PREFIX; $VIEWER_NAME = "Page Viewer ({$options['tableName']})"; // error checking $requiredOptions = array('tableName'); $validOptions = array('tableName', 'recordNum', 'where', 'titleField', 'orderBy'); $errors = _getOptionErrors($requiredOptions, $validOptions, $options); if ($errors) { die("{$VIEWER_NAME} errors<br/>\n{$errors}"); } // set defaults $schema = loadSchema($options['tableName']); if (!@$options['recordNum']) { $options['recordNum'] = getLastNumberInUrl(); } if (@$schema['menuType'] == 'single') { $options['recordNum'] = "1"; } // always load record 1 for single menus // get where condition $whereConditions = ''; $escapedRecordNum = mysql_escape((int) $options['recordNum']); if ($options['where']) { $whereConditions = $options['where']; } elseif ($options['recordNum']) { $whereConditions = "num = '{$escapedRecordNum}'"; } // get record $fullTableName = getTableNameWithPrefix($options['tableName']); $escapedTableName = mysql_escape($fullTableName); $where = _addWhereConditionsForSpecialFields($schema, $whereConditions, $options); $orderBy = @$options['orderBy'] ? "ORDER BY {$options['orderBy']}" : ''; $query = "SELECT * FROM `{$escapedTableName}` {$where} {$orderBy} LIMIT 0, 1"; $result = mysql_query($query) or die("{$VIEWER_NAME}: MySQL Error: " . htmlencode(mysql_error()) . "\n"); $record = mysql_fetch_assoc($result); // add _link field if ($record) { $filenameValue = getFilenameFieldValue($record, @$options['titleField']); $record['_link'] = _getLink($_SERVER['SCRIPT_NAME'], $filenameValue, $record['num'], @$options['useSeoUrls']); } // define upload fields if ($record) { foreach ($schema as $fieldname => $fieldSchema) { if (!is_array($fieldSchema)) { continue; } // not a field definition, table metadata field if (@$fieldSchema['type'] != 'upload') { continue; } // skip all but upload fields $record[$fieldname] = "Use getUploads() function to list uploads (See code generator).\n"; } } // return $record; }