Forums / Developer / Module only returns strings, no integers

"Please Note:
  • At the specific request of Ibexa we are changing this projects name to "Exponential" or "Exponential (CMS)" effective as of August, 11th 2025.
  • This project is not associated with the original eZ Publish software or its original developer, eZ Systems or Ibexa".

Module only returns strings, no integers

Author Message

Pål J Didriksen

Tuesday 28 June 2005 2:38:42 pm

I have a problem with the array returned from an extension module, and can't find out why.

I made a simple module, fetching content from an external table, called 'points'. Somehow, all values are returned as strings, even though most of them should be integers.

This is the code in 'points.php':

<?php

include_once( 'kernel/classes/ezpersistentobject.php' );

class Points extends eZPersistentObject
{

    function Points( $row )
    {
        $this->eZPersistentObject( $row );
    }

    function &definition()
    {
        $defArray= array( "fields" =>
               array(
                    'id' => array(
                    'datatype' => 'integer',
                    'default' => 0,
                    'name' => 'id',
                    'required' => true ),
              'contentobject_id' => array(
                    'name' => 'contentobject_id',
                    'datatype' => 'integer',
                    'default' => 0,
                    'required' => true ),
              'year' =>
              array('name' => 'year',
                    'datatype' => 'integer',
                    'default' => 0,
                    'required' => true ),
              'date' =>
              array('name' => 'date',
                    'datatype' => 'date',
                    'default' => 0,
                    'required' => false ),
              'category' =>
              array('name' => 'category',
                    'datatype' => 'integer',
                   'default' => 0,
                    'required' => false ),
              'title' =>
              array('name' => 'title',
                    'datatype' => 'string',
                    'default' => '',
                    'required' => false ),
              'points_int' =>
              array('name' => 'points_int',
                    'datatype' => 'integer',
                    'default' => 0,
                    'required' => false ) ),
           'keys' => array( 'id' ),
           'increment_key' => 'id',
           'class_name' => 'points',
           'sort'  => array( 'id' => 'asc'),
           'name' => 'points' );

        return $defArray;

    }

    function &fetchListFromDB( $parameters )
    {
        return Points::handleList( $parameters, false );
    }

    function &handleList( $parameters = array(), $asCount = false )
    {
        $parameters = array_merge( array( 'as_object' => true,
        'sort_by' => false,
        'offset' => false,
        'limit' => false,
        'contentobject_id' => true
         ),
        $parameters );

        $asObject = $parameters['as_object'];
        $offset = $parameters['offset'];
        $limit = $parameters['limit'];
        $sorts = $parameters['sort_by'];

        if (!$parameters['contentobject_id'] == "" )
            $conds = array('contentobject_id' => $parameters['contentobject_id']);
          $conds = "";

        $limitArray = null;
        if ( !$asCount and $offset !== false and $limit !== false )
        $limitArray = array( 'offset' => $offset,
                            'length' => $limit );

        $obj= eZPersistentObject::fetchObjectList( Points::definition(),
                                                    null, $conds, $sorts, $limitArray,
                                                    $asObject );

       return $obj;
    }

}

?>

Any tips, ideas or similar experiences?