Jump to content

PW Version for Real Estate


iNoize
 Share

Recommended Posts

Hello,
so after some time here in the forum I start 2 projects at the same time with  pw
(I come from MODx by the way)
 
Now I have test the tutorials and some things with the current dev version on my local machine. Of course there is itching to use them for the real project my fingers.
 
Is it advisable? When is the next stable version comes out PW so that I only need to update for example. Or should I use the 2.3 yet?
 
The projects are a real estate project and a small hotel.
For the hotel, I'm not worried because it is kept very simple images and contactform with an google map.
 
In the property there is something bigger.
So this has really inspired me  http://www.mokkivertailu.fi/
 
I have also Planned to define it with the properties of the objects on pages fields.
 
These can then be expanded at any time.
The Field Depencies I find very chic at the PW 2.4.
 
How should I best start now?
Link to comment
Share on other sites

Those two projects sound like great ideas to get stuck in to with ProcessWire.

I think most people here would recommend using the development version now, and just keep updating as you go along. It's fairly stable right now, and updates are very simple to do (just replace the /wire/ directory, usually). I don't think there's a date scheduled for a 2.4 release - it will be ready when it's ready :)

I started a website using the dev branch in August, and it's almost ready to launch. I've updated the work-in-progress site several times during development and it hasn't been a problem. So I would say go for it :)

  • Like 3
Link to comment
Share on other sites

Those two projects sound like great ideas to get stuck in to with ProcessWire.

I think most people here would recommend using the development version now, and just keep updating as you go along. It's fairly stable right now, and updates are very simple to do (just replace the /wire/ directory, usually). I don't think there's a date scheduled for a 2.4 release - it will be ready when it's ready :)

I started a website using the dev branch in August, and it's almost ready to launch. I've updated the work-in-progress site several times during development and it hasn't been a problem. So I would say go for it :)

Thanks for your advice. 

I had it also in my opinion. Now im sure it will be the dev PW version. 

Link to comment
Share on other sites

  • 1 month later...

Hi, need some help from more coder than designer users :) 

Im currently on a point where I dont know how to figure it right,

I have exported zip File which contains an XML with the Objects and  the images for each Object.

How to handle it right ??? 

Have I to create fileds for each object property ?  Than analyze the XML and include the changes for each field ?

or whats the workflow in this case ?

Link to comment
Share on other sites

Have I to create fileds for each object property ?  Than analyze the XML and include the changes for each field ?

or whats the workflow in this case ?

If I understand right, you have created an export-xml from all (content-)objects of a local version of your site?, -

now you want to import it with the live-site?

Does this export-file comes from a PW-Site or something other?

Link to comment
Share on other sites

Ok,

I think you 1) need to build fields for all the properties a object can have, 2) build a template and add all the fields to it and 3) than you create a root-page in the pagetree for the parent that may contain children.

The children will be one page for one object.

Whereas the first three steps can be done manually, the import of the objects should be done by a importer script. If you also can use a CSV-file, you can find a module for the import: http://mods.pw/j

If you cannot, it's also easy to write your own individual importer-script. Please ask if you need further assistance.

It would be good if you have a unique property for each object with your import-data.

  • Like 3
Link to comment
Share on other sites

Ok,

I think you 1) need to build fields for all the properties a object can have, 2) build a template and add all the fields to it and 3) than you create a root-page in the pagetree for the parent that may contain children.

The children will be one page for one object.

Thanks a lot, so it was right in my opinion. I thought the same but was not sure. 

I know its possible to export also CSV files. I will create at first all the placeholders and there are a lot of them :) 

Then I will try also with the CSV format and give some feedback.

I think it could be a useful thing for more people in the future 

  • Like 1
Link to comment
Share on other sites

I would definitely recommend reading through the commentary and code in the CMSCritic and SignificatoJournal case studies. They have a lot of useful guides and tips on how to approach importing data into ProcessWire.

Firstly, though, I think you are right to analyse the XML data that you have. I would approach it like this:

  • Identify the attributes/fields that you are interested in, and the different types of content (if more than one).
  • Determine which types of fields those should be in PW.
  • Set up the fields and templates in PW.
  • Set up a page structure in PW that will hold your content, using the templates you created.
  • Start writing & testing the import! Create a new php file and bootstrap PW, or create a temporary template (with file) and page, and write it in that.

Or, as mentioned above, if CSV format is an option - then give that a go.

  • Like 3
Link to comment
Share on other sites

Hello, 

so I'm now on a point where I don't really understand how to realize this. 

I've exported the data as a PHP-Export. EXAMPLE here

Now i have a lot of php files and the data that I need is stored in $GLOBAL arrays. 

Here is the structure after export 

post-957-0-44407600-1389651744_thumb.png

also here available for details http://wiki.openestate.org/mediawiki/images/d/d6/OpenEstate-PHP-1.6.zip

the difference is that there is a new folder "data" folder with all the objects in there. 

post-957-0-09113500-1389652317_thumb.png

The objects are stored in the "id-number" folders with all the necessary informations and files which belongs to the object. 

post-957-0-51499200-1389652456_thumb.png

In the files object.php and text.php are the infos stored like arrays. 

OBJECT.PHP

<?php
/**
 * Website-Export, Inserat #01-21, Objektdaten.
 * $Id$
 *
 * @author Andreas Rudolph & Walter Wagner
 * @copyright 2009-2013, OpenEstate.org
 * @license http://www.gnu.org/licenses/gpl-3.0.txt
 */

if (!defined('IN_WEBSITE'))
{
  exit;
}

$GLOBALS['immotool_objects']['01-21'] = array(
  'id' => '01-21',
  'action' => 'purchase',
  'type' => 'office',
  'type_path' => array('general_commercial', 'office_surgery', 'office'),
  'currency' => 'EUR',
  'nr' => '01-01-111111',
  'hidden_price' => false,
  'group_nr' => '120',
  'created_at' => 1389609085,
  'modified_at' => 1389618106,
  'mail' => 'name@this-url.de',
  'title' => array(
    'de' => 'TEST Objekt for PW',
  ),
  'address' => array(
    'country' => 'DE',
    'country_name' => array(
      'de' => 'Deutschland',
    ),
    'postal' => '89231',
    'city' => 'Testort',
    'city_part' => 'Testortsteil',
    'street' => 'test',
    'street_nr' => '1',
    'region' => 'Testregion',
    'latitude' => null,
    'longitude' => null,
  ),
  'contact' => array(
    'country' => 'DE',
    'country_name' => array(
      'de' => 'Deutschland',
    ),
    'postal' => '89079',
    'city' => 'Ulm-Wiblingen',
    'city_part' => 'Wiblingen',
    'street' => 'Saulgauer Straße',
    'street_nr' => '9',
    'region' => null,
    'latitude' => null,
    'longitude' => null,
    'person_title' => null,
    'person_firstname' => 'Hans-Martin',
    'person_middlename' => null,
    'person_lastname' => 'Fleck',
    'person_fullname' => 'Hans-Martin Fleck',
    'person_mail' => 'name@this-url.de',
    'person_phone' => '017631470',
    'person_mobile' => '01763147',
    'person_fax' => null,
    'person_gender' => 'MALE',
  ),
  'attributes' => array(
    'prices' => array(
      'purchase_price' => array(
        'value' => 1100.0,
        'de' => '1.100,00 EUR',
      ),
      'purchase_price_per_area' => array(
        'value' => 220.0,
        'de' => '220,00 EUR',
      ),
      'purchase_price_on_annual_rental_income' => array(
        'value' => 2555.0,
        'de' => '2.555',
      ),
      'plus_vat' => array(
        'value' => true,
        'de' => 'ja',
      ),
      'vat_rate' => array(
        'value' => 585.0,
        'de' => '585',
      ),
      'vat_value' => array(
        'value' => 254.0,
        'de' => '254,00 EUR',
      ),
      'service_charges' => array(
        'value' => 1000.0,
        'de' => '1.000,00 EUR',
      ),
      'heating_costs' => array(
        'value' => 255.0,
        'de' => '255,00 EUR',
      ),
      'service_charges_including_heating_costs' => array(
        'value' => true,
        'de' => 'ja',
      ),
      'negotiable' => array(
        'value' => 'YES',
        'de' => 'ja',
      ),
      'special_offer' => array(
        'value' => true,
        'de' => 'ja',
      ),
      'net_return' => array(
        'value' => 212.0,
        'de' => '212',
      ),
      'rental_income_actual_per_annum' => array(
        'value' => 66.0,
        'de' => '66,00 EUR',
      ),
      'rental_income_debit_per_annum' => array(
        'value' => 6.0,
        'de' => '6,00 EUR',
      ),
      'rental_income_per_month' => array(
        'value' => 66.0,
        'de' => '66,00 EUR',
      ),
      'shared_capital' => array(
        'value' => 100.0,
        'de' => '100,00 EUR',
      ),
      'car_parking_space_price' => array(
        'value' => 120.0,
        'de' => '120,00 EUR',
      ),
      'car_parking_space_obligation' => array(
        'value' => 'EITHER_OR',
        'de' => 'entweder / oder',
      ),
      'price_proportion_ground' => array(
        'value' => 222.0,
        'de' => '222,00 EUR',
      ),
      'agent_fee' => array(
        'de' => '3,57',
        'de' => '3,57',
      ),
      'agent_fee_including_vat' => array(
        'value' => true,
        'de' => 'ja',
      ),
    ),
    'measures' => array(
      'total_area' => array(
        'value' => 555.0,
        'unit' => 'SQM',
        'de' => 'ca. 555 m²',
      ),
      'count_rooms' => array(
        'value' => 6.0,
        'de' => '6',
      ),
      'count_separate_toilets' => array(
        'value' => 1,
        'de' => '1',
      ),
      'commercial_area' => array(
        'value' => 10.0,
        'unit' => 'SQM',
        'de' => 'ca. 10 m²',
      ),
      'storage_area' => array(
        'value' => 22.0,
        'unit' => 'SQM',
        'de' => 'ca. 22 m²',
      ),
      'administration_area' => array(
        'value' => 100.0,
        'unit' => 'SQM',
        'de' => 'ca. 100 m²',
      ),
      'office_area' => array(
        'value' => 5.0,
        'unit' => 'SQM',
        'de' => 'ca. 5 m²',
      ),
      'plot_area' => array(
        'value' => 66.0,
        'unit' => 'SQM',
        'de' => 'ca. 66 m²',
      ),
      'divisible_from_area' => array(
        'value' => 33.0,
        'unit' => 'SQM',
        'de' => 'ca. 33 m²',
      ),
      'count_parking_spaces' => array(
        'value' => 5,
        'de' => '5',
      ),
      'car_parking_area' => array(
        'value' => 22.0,
        'unit' => 'SQM',
        'de' => 'ca. 22 m²',
      ),
      'usable_area' => array(
        'value' => 633.0,
        'unit' => 'SQM',
        'de' => 'ca. 633 m²',
      ),
      'basement_area' => array(
        'value' => 55.0,
        'unit' => 'SQM',
        'de' => 'ca. 55 m²',
      ),
      'rentable_area' => array(
        'value' => 100.0,
        'unit' => 'SQM',
        'de' => 'ca. 100 m²',
      ),
      'rented_area' => array(
        'value' => 100.0,
        'unit' => 'SQM',
        'de' => 'ca. 100 m²',
      ),
      'remaining_areas' => array(
        'value' => 662.0,
        'unit' => 'SQM',
        'de' => 'ca. 662 m²',
      ),
      'cubature_volume' => array(
        'value' => 4555.0,
        'unit' => 'CUM',
        'de' => 'ca. 4.555 m³',
      ),
    ),
    'features' => array(
      'equipment' => array(
        'value' => 'BASIC',
        'de' => 'einfach',
      ),
      'floor' => array(
        'de' => '011',
        'de' => '011',
      ),
      'count_floors' => array(
        'value' => 3,
        'de' => '3',
      ),
      'type_of_heating' => array(
        'value' => array('self_contained_central'),
        'de' => 'Etagenheizung',
      ),
      'type_of_beaconing' => array(
        'value' => array('alternatively'),
        'de' => 'Alternativ',
      ),
      'flooring_material' => array(
        'value' => array('wood'),
        'de' => 'Holz',
      ),
      'kitchen' => array(
        'value' => array('kitchen_nook'),
        'de' => 'Kochecke',
      ),
      'commercial_rooms' => array(
        'value' => array('archive'),
        'de' => 'Archiv',
      ),
      'commercial_services' => array(
        'value' => array('catering'),
        'de' => 'Catering',
      ),
      'security_technology' => array(
        'value' => array('camera'),
        'de' => 'Kamera',
      ),
      'barrier_free' => array(
        'value' => false,
        'de' => 'nein',
      ),
      'lift' => array(
        'value' => false,
        'de' => 'nein',
      ),
      'basement' => array(
        'value' => false,
        'de' => 'nein',
      ),
      'technics' => array(
        'value' => array('dvbt_reception'),
        'de' => 'DVBT-Empfang',
      ),
      'broadband_internet' => array(
        'de' => '6000',
        'de' => '6000',
      ),
      'broadband_internet_speed' => array(
        'value' => 5000,
        'de' => '5.000',
      ),
      'glazing' => array(
        'value' => array('thermal_insulation'),
        'de' => 'Wärmeschutz',
      ),
      'air_conditioned' => array(
        'value' => false,
        'de' => 'nein',
      ),
      'floor_loading' => array(
        'value' => 1500.0,
        'de' => '1.500',
      ),
      'ceiling_load' => array(
        'value' => 2000.0,
        'de' => '2.000',
      ),
      'attached_gastronomy' => array(
        'value' => true,
        'de' => 'ja',
      ),
    ),
    'condition' => array(
      'build_year' => array(
        'value' => 1986,
        'de' => '1986',
      ),
      'age' => array(
        'value' => 'OLD_BUILDING',
        'de' => 'Altbau',
      ),
      'condition_type' => array(
        'value' => 'PARTIALLY_REFURBISHED',
        'de' => 'teilweise saniert',
      ),
      'construction_phase' => array(
        'value' => 'COMPLETED',
        'de' => 'Bau abgeschlossen',
      ),
      'refurbishment_year' => array(
        'value' => 233,
        'de' => '233',
      ),
      'refurbishment_percentage' => array(
        'value' => 200,
        'de' => '200',
      ),
      'renovation_percentage' => array(
        'value' => 155,
        'de' => '155',
      ),
    ),
    'surroundings' => array(
      'next_town' => array(
        'de' => 'Ulm',
        'de' => 'Ulm',
      ),
      'area' => array(
        'value' => 'CITY',
        'de' => 'Ortslage',
      ),
      'commercial_area' => array(
        'value' => 'LOCATION_2A',
        'de' => '2A-Lage',
      ),
      'view' => array(
        'value' => array('mountain_view'),
        'de' => 'Bergblick',
      ),
      'distance_to_bus_station' => array(
        'value' => 11.0,
        'unit' => 'M',
        'de' => 'ca. 11 m',
      ),
      'distance_to_main_line_station' => array(
        'value' => 133.0,
        'unit' => 'M',
        'de' => 'ca. 133 m',
      ),
      'distance_to_next_train_station' => array(
        'value' => 66644.0,
        'unit' => 'M',
        'de' => 'ca. 66.644 m',
      ),
      'distance_to_airport' => array(
        'value' => 566.0,
        'unit' => 'M',
        'de' => 'ca. 566 m',
      ),
      'distance_to_motorway' => array(
        'value' => 5587.0,
        'unit' => 'M',
        'de' => 'ca. 5.587 m',
      ),
      'distance_to_city_centre' => array(
        'value' => 12588.0,
        'unit' => 'M',
        'de' => 'ca. 12.588 m',
      ),
    ),
    'administration' => array(
      'usage' => array(
        'value' => array('garden'),
        'de' => 'Garten',
      ),
      'charge_begin_date' => array(
        'value' => 1390604400,
        'de' => '25.01.2014',
      ),
      'charge_end_date' => array(
        'value' => 1391122800,
        'de' => '31.01.2014',
      ),
      'rented' => array(
        'value' => true,
        'de' => 'ja',
      ),
      'rented_percentage' => array(
        'value' => 100.0,
        'de' => '100',
      ),
      'availability_begin' => array(
        'de' => 'verfügbar ab',
        'de' => 'verfügbar ab',
      ),
      'availability_begin_date' => array(
        'value' => 1391122800,
        'de' => '31.01.2014',
      ),
      'availability_end' => array(
        'de' => 'verfügbar bis',
        'de' => 'verfügbar bis',
      ),
      'availability_end_date' => array(
        'value' => 1389308400,
        'de' => '10.01.2014',
      ),
      'access_begin_date' => array(
        'de' => 'Zugang zum Objekt',
        'de' => 'Zugang zum Objekt',
      ),
      'rooms_modifiable' => array(
        'value' => 'YES',
        'de' => 'ja',
      ),
      'commercial_industries' => array(
        'de' => 'Branche',
        'de' => 'Branche',
      ),
      'monumental_protection' => array(
        'value' => false,
        'de' => 'nein',
      ),
      'energy_certificate_type' => array(
        'value' => 'DEMAND',
        'de' => 'nach Bedarf',
      ),
      'energy_certificate_consumption' => array(
        'value' => 110.0,
        'de' => '110',
      ),
      'energy_certificate_demand' => array(
        'value' => 120.0,
        'de' => '120',
      ),
      'energy_certificate_including_hot_water' => array(
        'value' => true,
        'de' => 'ja',
      ),
      'energy_certificate_expiration' => array(
        'de' => '12.01.2014',
        'de' => '12.01.2014',
      ),
      'regional_notes' => array(
        'de' => 'Regionaler Zusatz',
        'de' => 'Regionaler Zusatz',
      ),
      'effective_date' => array(
        'value' => 1389740400,
        'de' => '15.01.2014',
      ),
    ),
  ),
  'images' => array(
    array(
      'name' => '538e63176d54164689d41eb34a36f9033b28ca86.jpg',
      'thumb' => '538e63176d54164689d41eb34a36f9033b28ca86.thumb.jpg',
      'mimetype' => 'image/jpeg',
      'type' => null,
      'title' => array(
        'de' => null,
      ),
    ),
    array(
      'name' => 'f244e231dd7ac029eea8630e495ee8f4cc1bff73.jpg',
      'thumb' => 'f244e231dd7ac029eea8630e495ee8f4cc1bff73.thumb.jpg',
      'mimetype' => 'image/jpeg',
      'type' => null,
      'title' => array(
        'de' => null,
      ),
    ),
  ),
  'media' => array(
  ),
  'links' => array(
    array(
      'id' => 'Rt8gNUwE1OQ',
      'provider' => 'video@youtube.com',
      'url' => 'http://www.youtube.com/watch?v=Rt8gNUwE1OQ',
      'title' => array(
        'de' => 'Novamir Link',
      ),
    ),
  ),
  'other' => array(
  ),
);
?>

TEXT.PHP

<?php
/**
 * Website-Export, Inserat #01-21, Beschreibungstexte.
 * $Id$
 *
 * @author Andreas Rudolph & Walter Wagner
 * @copyright 2009-2013, OpenEstate.org
 * @license http://www.gnu.org/licenses/gpl-3.0.txt
 */

if (!defined('IN_WEBSITE'))
{
  exit;
}

$GLOBALS['immotool_texts']['01-21'] = array(
  'id' => '01-21',
  'detailled_description' => array(
    'de' => 'Beschreibung im Detail',
  ),
  'location_description' => array(
    'de' => 'Beschreibung der Lage',
  ),
  'feature_description' => array(
    'de' => 'Beschreibung der Ausstattung',
  ),
  'price_description' => array(
    'de' => 'Beschreibung der Preisgestaltung',
  ),
  'agent_fee_information' => array(
    'de' => 'Details zur Provision',
  ),
  'additional_information' => array(
    'de' => 'Weitere Informationen',
  ),
  'short_description' => array(
    'de' => 'Kurzbeschreibung',
  ),
  'keywords' => array(
    'de' => 'Schlüsselwörter',
  ),
);
?>

So after all the day reading about different method's to import / wire / and bootstrapping pw im now much more confused. 

Whats the right way to attach all the data from arrays to the PW website Database ? 

Tried to understand the Case Study but without Success because I've to learn PW and PHP at the same time.

After 3h reading I'm currently at 

/**
 * Test Page template
 */
include("./head.inc"); 
include ('/xampp/htdocs/test/immos/data/01-1/object.php');
print_r ($GLOBALS['immotool_objects']);
include("./foot.inc"); 

So I need an advanced user advice. What now ? 

Should I create the fields manually or is there a way to create them from the array ? 

How do i Check for new updates in the data folder ? An check for changes on existing objects ? 

Whats the next workflow to Import complete data to PW ? Or should I use the Wrapper here 

But then I can't handle the Data from PW.

I need some Help and Guidelines. My head is after so much  Information the last days overwhelmed 

Link to comment
Share on other sites

As with any custom import you will need to get your hands dirty. The array in that php export will certainly make the import possible. I would suggest setting up all the required fields and templates in PW initiallyy. Once you have that ready you'll need to write a script that loops through the $GLOBALS['immotool_objects']['01-21'] array, grabbing each piece of information and adding it to the appropriate fields in PW. 
 
I see that the array has a "de" field, so you'll want to make sure you have PW multi-language setup and configured before you start. 
 
This really is only a rough start, but hopefully it will help get things moving for you.   Actually this probably isn't even a rough start - there is a lot to accomplish, and I don't really have the time right now to put together a working example. I am pretty sure none of this code will work as is, but hopefully it gives you an idea of an approach that might work for you.
$p = new Page();
$p->parent = $pages->get("id of parent page");
$p->template = $templates->get("property_details"); //or whatever you want to call the template

foreach($GLOBALS['immotool_objects']['01-21'] as $f => $v){     
    if(is_array($f){         
        foreach($f as $l => $v){
            $p->{$l_deutsch} = $v;
        }     
    }
    else{
        $p->$f = $v;
    } 
}
$p->save();
 

There will be a few special cases:

  • images - you'll need to convert the name of the image from the array to a full url to the image so you can add it using the PW API.
  • fields such as distance_to_city_centre that have additional components - ie not just the default 'value' and 'de' components.

Some things you should read:

http://processwire.com/api/multi-language-support/multi-language-fields/

http://processwire.com/api/fieldtypes/images/

As for regularly doing these imports, you'll need to check that the property doesn't already exist in the PW before importing - maybe a check on the title field in the array. 

Again, sorry this is so rough, but what you are wanting to do is definitely possible, but you'll need to take it one step at a time and ask questions here when you come across a stumbling block.

Link to comment
Share on other sites

Hello and thank you for your answer. 

I think in this case I will try to handle it with an XML file. 

I will try  to read all the necessary data to an array and fill the placeholder in the template. 

Dont know really know howto but I  will post my example here soon with the questions. 

Have to read  some tuts at first. :D

EDIT: So i need some theory. I plan to start in this way. Please correct if Im wrong. 

I have this file as XML.

<?xml version="1.0" encoding="iso-8859-1"?>
<!--   
	OpenImmo $VERSION: 1.2.6  10/2013  
	(c) OpenImmo e.V. 
	Beispiel Daten zur Version 1.2.6
	-->  
<openimmo>
  <uebertragung art="ONLINE" umfang="VOLL" modus="NEW" version="1.2.6" sendersoftware="OIGEN" senderversion="0.9" techn_email="" timestamp="2013-10-01T10:00:00"  regi_id="ABCD13" />
  <anbieter>
    <anbieternr />
    <firma >Mustermann Immobilien</firma >
    <openimmo_anid />
	<lizenzkennung>ABCD13</lizenzkennung>
    <anhang location="EXTERN" gruppe="BILD">
      <anhangtitel />
      <format />
      <daten>
        <pfad />
      </daten>
    </anhang>
    <immobilie>
      <objektkategorie>
        <nutzungsart WOHNEN="true" GEWERBE="false" ANLAGE="false" WAZ="false" />
        <vermarktungsart KAUF="true" MIETE_PACHT="false" ERBPACHT="false" LEASING="false" />
        <objektart>
          <zimmer zimmertyp="ZIMMER" />
          <objektart_zusatz>Moebeliert</objektart_zusatz>
        </objektart>
        <user_defined_simplefield feldname="" />
        <user_defined_anyfield />
      </objektkategorie>
      <geo>
        <plz />
        <ort />
        <geokoordinaten breitengrad="22.22" laengengrad="22.22" />
        <strasse />
        <hausnummer />
        <bundesland />
        <land iso_land="DEU" />
        <gemeindecode />
        <flur />
        <flurstueck />
        <gemarkung />
        <etage>1</etage>
        <anzahl_etagen>1</anzahl_etagen>
        <lage_im_bau LINKS="false" RECHTS="true" VORNE="true" HINTEN="false" />
        <wohnungsnr />
        <lage_gebiet gebiete="NEBENZENTRUM" />
        <regionaler_zusatz />
        <user_defined_simplefield feldname="" />
        <user_defined_anyfield />
        <user_defined_extend />
      </geo>
      <kontaktperson>
        <email_zentrale>foo@bar.de</email_zentrale>
        <email_direkt>foo@bar.de</email_direkt>
        <tel_zentrale>1</tel_zentrale>
        <tel_durchw>2</tel_durchw>
        <tel_fax>3</tel_fax>
        <tel_handy>4</tel_handy>
        <name />
        <vorname />
        <titel />
        <anrede />
        <anrede_brief />
        <firma />
        <zusatzfeld />
        <strasse />
        <hausnummer />
        <plz />
        <ort />
        <postfach />
        <postf_plz />
        <postf_ort />
        <land iso_land="DEU" />
        <email_privat>foo@bar.de</email_privat>
        <email_sonstige emailart="EM_DIREKT" bemerkung="1">foo@bar.de</email_sonstige>
        <email_feedback>yx@y.de</email_feedback>
        <tel_privat>1</tel_privat>
        <tel_sonstige telefonart="TEL_PRIVAT" bemerkung="">1</tel_sonstige>
        <url />
        <adressfreigabe>false</adressfreigabe>
        <personennummer />
		<foto location="EXTERN" >
	          <format>JPEG</format>
    		  <daten>
			        <pfad >abc.jpg</pfad >
		  </daten>
		</foto>
        <freitextfeld />
        <user_defined_simplefield feldname="" />
        <user_defined_anyfield />
        <user_defined_extend />
      </kontaktperson>
      <weitere_adresse adressart="">
        <vorname />
        <name />
        <titel />
        <anrede />
        <anrede_brief />
        <firma />
        <zusatzfeld />
        <strasse />
        <hausnummer />
        <plz />
        <ort />
        <postfach />
        <postf_plz />
        <postf_ort />
        <land iso_land="DEU" />
        <email_zentrale>foo@bar.de</email_zentrale>
        <email_direkt>foo@bar.de</email_direkt>
        <email_privat>foo@bar.de</email_privat>
        <email_sonstige emailart="EM_PRIVAT" bemerkung="">1</email_sonstige>
        <tel_durchw>1</tel_durchw>
        <tel_zentrale>1</tel_zentrale>
        <tel_handy>1</tel_handy>
        <tel_fax>1</tel_fax>
        <tel_privat>1</tel_privat>
        <tel_sonstige telefonart="TEL_DURCHW" bemerkung="">1</tel_sonstige>
        <url />
        <adressfreigabe>false</adressfreigabe>
        <personennummer />
        <freitextfeld />
        <user_defined_simplefield feldname="" />
        <user_defined_anyfield />
        <user_defined_extend />
      </weitere_adresse>
      <preise>
        <kaufpreis>1</kaufpreis>
        <nettokaltmiete>1</nettokaltmiete>
        <kaltmiete>1</kaltmiete>
        <warmmiete>1</warmmiete>
        <nebenkosten>1</nebenkosten>
        <heizkosten_enthalten>false</heizkosten_enthalten>
        <heizkosten>1</heizkosten>
        <zzg_mehrwertsteuer>true</zzg_mehrwertsteuer>
        <mietzuschlaege>1</mietzuschlaege>
		<!-- $V126 -->
		<hauptmietzinsnetto hauptmietzinsust="106.40">560.00</hauptmietzinsnetto>
		<betriebskostennetto betriebskostenust="106.40">560.00</betriebskostennetto>

		<!-- /$V126 -->

        <pacht>1</pacht>
        <erbpacht>1</erbpacht>
        <hausgeld>1</hausgeld>
        <abstand>1</abstand>
        <preis_zeitraum_von>2001-01-01</preis_zeitraum_von>
        <preis_zeitraum_bis>2001-01-01</preis_zeitraum_bis>
        <preis_zeiteinheit zeiteinheit="JAHR"/>
        <mietpreis_pro_qm>1</mietpreis_pro_qm>
        <kaufpreis_pro_qm>1</kaufpreis_pro_qm>
        <provisionspflichtig>true</provisionspflichtig>
        <innen_courtage mit_mwst="false" />
        <aussen_courtage mit_mwst="false" />
        <courtage_hinweis>String</courtage_hinweis>
        <waehrung iso_waehrung="DEM" />
        <mwst_satz>1</mwst_satz>
		<mwst_gesamt>500.00</mwst_gesamt>
        <freitext_preis />
        <x_fache />
        <nettorendite>10</nettorendite>
        <nettorendite_soll>10</nettorendite_soll>
        <nettorendite_ist>10</nettorendite_ist>
        <mieteinnahmen_ist periode="JAHR">1</mieteinnahmen_ist>
        <mieteinnahmen_soll periode="JAHR">1</mieteinnahmen_soll>
        <erschliessungskosten>1</erschliessungskosten>
        <kaution>1</kaution>
        <kaution_text>3 monate</kaution_text>

        <geschaeftsguthaben>1</geschaeftsguthaben>
        <stp_carport stellplatzmiete="1" stellplatzkaufpreis="1" anzahl="1" />
        <stp_duplex stellplatzmiete="1" stellplatzkaufpreis="1" anzahl="1" />
        <stp_freiplatz stellplatzmiete="1" stellplatzkaufpreis="1" anzahl="1" />
        <stp_garage stellplatzmiete="1" stellplatzkaufpreis="1" anzahl="1" />
        <stp_parkhaus stellplatzmiete="1" stellplatzkaufpreis="1" anzahl="1" />
        <stp_tiefgarage stellplatzmiete="1" stellplatzkaufpreis="1" anzahl="1" />
        <stp_sonstige stellplatzmiete="1" stellplatzkaufpreis="1" anzahl="1" platzart="CARPORT" bemerkung="" />
        <user_defined_simplefield feldname="" />
        <user_defined_anyfield />
        <user_defined_extend>
          <feld>
            <name />
            <wert />
            <typ />
            <modus />
          </feld>
        </user_defined_extend>
      </preise>
      <bieterverfahren>
        <beginn_angebotsphase>2001-01-01</beginn_angebotsphase>
        <besichtigungstermin>2001-01-01</besichtigungstermin>
        <besichtigungstermin_2>2001-01-01</besichtigungstermin_2>
        <hoechstgebot_zeigen>false</hoechstgebot_zeigen>
        <mindestpreis>1</mindestpreis>
        <user_defined_simplefield feldname="" />
        <user_defined_anyfield />
        <user_defined_extend>
          <feld>
            <name />
            <wert />
            <typ />
            <modus />
          </feld>
        </user_defined_extend>
      </bieterverfahren>
      <versteigerung>
		 <zwangsversteigerung>true</zwangsversteigerung>
        <aktenzeichen>abc123</aktenzeichen>
        <zvtermin>2001-01-01T11:00:00</zvtermin>
        <zusatztermin>2001-01-01T11:00:00</zusatztermin>
        <amtsgericht>Stadt</amtsgericht>
      </versteigerung>
      <flaechen>
        <wohnflaeche>1</wohnflaeche>
        <nutzflaeche>1</nutzflaeche>
        <gesamtflaeche>1</gesamtflaeche>
        <ladenflaeche>1</ladenflaeche>
        <lagerflaeche>1</lagerflaeche>
        <verkaufsflaeche>1</verkaufsflaeche>
        <freiflaeche>1</freiflaeche>
        <bueroflaeche>1</bueroflaeche>
        <bueroteilflaeche>1</bueroteilflaeche>
        <fensterfront>1</fensterfront>
        <verwaltungsflaeche>1</verwaltungsflaeche>
        <gastroflaeche>1</gastroflaeche>
        <grz>1</grz>
        <gfz>1</gfz>
        <bmz>1</bmz>
        <bgf>1</bgf>
        <grundstuecksflaeche>1</grundstuecksflaeche>
        <sonstflaeche>1</sonstflaeche>
        <anzahl_zimmer>1</anzahl_zimmer>
        <anzahl_schlafzimmer>1</anzahl_schlafzimmer>
        <anzahl_badezimmer>1</anzahl_badezimmer>
        <anzahl_sep_wc>1</anzahl_sep_wc>
        <!-- ab 124 nicht mehr <anzahl_balkon_terrassen>2</anzahl_balkon_terrassen> -->
        <anzahl_balkone>1</anzahl_balkone>
        <anzahl_terrassen>1</anzahl_terrassen>
        <balkon_terrasse_flaeche>30</balkon_terrasse_flaeche>
        <anzahl_wohn_schlafzimmer>1</anzahl_wohn_schlafzimmer>
        <gartenflaeche>1</gartenflaeche>
        <kellerflaeche>1</kellerflaeche>
        <fensterfront_qm>1</fensterfront_qm>
        <grundstuecksfront>1</grundstuecksfront>
        <dachbodenflaeche>1</dachbodenflaeche>
        <teilbar_ab>1</teilbar_ab>
        <beheizbare_flaeche>1</beheizbare_flaeche>
        <anzahl_stellplaetze>1</anzahl_stellplaetze>
        <plaetze_gastraum>1</plaetze_gastraum>
        <anzahl_betten>1</anzahl_betten>
        <anzahl_tagungsraeume>1</anzahl_tagungsraeume>
        <vermietbare_flaeche>1</vermietbare_flaeche>
        <anzahl_wohneinheiten>1</anzahl_wohneinheiten>
        <anzahl_gewerbeeinheiten>1</anzahl_gewerbeeinheiten>
        <einliegerwohnung>1</einliegerwohnung>
        <user_defined_simplefield feldname="" />
        <user_defined_anyfield />
        <user_defined_extend>
          <feld>
            <name />
            <wert />
            <typ />
            <modus />
          </feld>
        </user_defined_extend>
      </flaechen>
      <ausstattung>
        <ausstatt_kategorie>STANDARD</ausstatt_kategorie>
        <wg_geeignet>false</wg_geeignet>
        <raeume_veraenderbar>false</raeume_veraenderbar>
        <bad DUSCHE="1" WANNE="1" FENSTER="1" BIDET="1" PISSOIR="1" />
        <kueche EBK="1" OFFEN="1" PANTRY="1" />
        <boden FLIESEN="0" STEIN="0" TEPPICH="1" PARKETT="1" FERTIGPARKETT="0" LAMINAT="0" DIELEN="0" KUNSTSTOFF="1" ESTRICH="1" DOPPELBODEN="1" LINOLEUM="1" MARMOR="1" TERRAKOTTA="1" GRANIT="0"/>
        <kamin>1</kamin>
        <heizungsart OFEN="1" ETAGE="1" ZENTRAL="1" FERN="1" FUSSBODEN="1" />
        <befeuerung OEL="1" GAS="1" ELEKTRO="1" ALTERNATIV="1" SOLAR="1" ERDWAERME="1" LUFTWP="1" FERN="1" BLOCK="1" WASSER-ELEKTRO="1" PELLET="1" />
        <klimatisiert>1</klimatisiert>
        <fahrstuhl PERSONEN="1" LASTEN="1" />
        <stellplatzart GARAGE="1" TIEFGARAGE="1" CARPORT="1" FREIPLATZ="1" PARKHAUS="1" DUPLEX="1" />
        <gartennutzung>1</gartennutzung>
        <ausricht_balkon_terrasse NORD="1" OST="1" SUED="1" WEST="1" NORDOST="1" NORDWEST="1" SUEDOST="1" SUEDWEST="1" />
        <moebliert moeb="TEIL" />
        <rollstuhlgerecht>false</rollstuhlgerecht>
        <kabel_sat_tv>false</kabel_sat_tv>
        <barrierefrei>false</barrierefrei>
        <sauna>false</sauna>
        <swimmingpool>false</swimmingpool>
        <wasch_trockenraum>false</wasch_trockenraum>
        <wintergarten>false</wintergarten>
		<dv_verkabelung>false</dv_verkabelung>
        <rampe>false</rampe>
        <hebebuehne>false</hebebuehne>
        <kran>false</kran>
        <gastterrasse>false</gastterrasse>
        <stromanschlusswert />
        <kantine_cafeteria>false</kantine_cafeteria>
        <teekueche>false</teekueche>
        <hallenhoehe />
        <angeschl_gastronomie HOTELRESTAURANT="false" BAR="false" />
        <brauereibindung>false</brauereibindung>
        <sporteinrichtungen>false</sporteinrichtungen>
        <wellnessbereich>false</wellnessbereich>
        <serviceleistungen BETREUTES_WOHNEN="false" CATERING="false" REINIGUNG="false" EINKAUF="false" WACHDIENST="false" />
        <telefon_ferienimmobilie>false</telefon_ferienimmobilie>
        <sicherheitstechnik ALARMANLAGE="false" KAMERA="false" POLIZEIRUF="false" />
        <unterkellert keller="JA" />
        <abstellraum>false</abstellraum>
        <fahrradraum>false</fahrradraum>
        <rolladen>false</rolladen>
        <dachform KRUEPPELWALMDACH="1" MANSARDDACH="1" PULTDACH="1" SATTELDACH="1" WALMDACH="1" FLACHDACH="1" PYRAMIDENDACH="1" />
        <bauweise MASSIV="1" FERTIGTEILE="1" HOLZ="1" />
        <ausbaustufe BAUSATZHAUS="1" AUSBAUHAUS="1" SCHLUESSELFERTIGMITKELLER="1" SCHLUESSELFERTIGOHNEBODENPLATTE="1" SCHLUESSELFERTIGMITBODENPLATTE="1" />
        <energietyp PASSIVHAUS="1" NIEDRIGENERGIE="1" NEUBAUSTANDARD="1" KFW40="1" KFW60="1" />
        <bibliothek>1</bibliothek>
        <dachboden>1</dachboden>
        <gaestewc>1</gaestewc>
        <kabelkanaele>1</kabelkanaele>
        <seniorengerecht>1</seniorengerecht>
        <user_defined_simplefield feldname="" />
        <user_defined_anyfield />
        <user_defined_extend>
          <feld>
            <name />
            <wert />
            <typ />
            <modus />
          </feld>
        </user_defined_extend>
      </ausstattung>
      <zustand_angaben>
        <baujahr />
        <zustand zustand_art="ENTKERNT" />
        <alter alter_attr="ALTBAU" />
        <bebaubar_nach bebaubar_attr="34_NACHBARSCHAFT" />
        <erschliessung erschl_attr="TEILERSCHLOSSEN" />
        <altlasten />
        <energiepass>
          <epart>VERBRAUCH</epart>
          <gueltig_bis>08-2012</gueltig_bis>
          <energieverbrauchkennwert>100</energieverbrauchkennwert>
          <mitwarmwasser>false</mitwarmwasser>
          <endenergiebedarf />
        </energiepass>
        <user_defined_simplefield feldname="" />
        <user_defined_anyfield />
        <user_defined_extend />
      </zustand_angaben>
      <bewertung>
        <feld>
          <name>abc</name>
          <wert>100</wert>
        </feld>
      </bewertung>
      <infrastruktur>
        <zulieferung>false</zulieferung>
        <ausblick blick="BERGE" />
        <distanzen distanz_zu="HAUPTSCHULE" >22.00</distanzen>
        <distanzen_sport distanz_zu_sport="SEE" >15</distanzen_sport>
        <user_defined_simplefield feldname="" />
        <user_defined_anyfield />
        <user_defined_extend />
      </infrastruktur>
      <freitexte>
        <objekttitel />
        <dreizeiler />
        <lage />
        <ausstatt_beschr />
        <objektbeschreibung />
        <sonstige_angaben />
      </freitexte>
 
	  
	  <anhaenge>
        <anhang location="INTERN" gruppe="TITELBILD">
          <anhangtitel >Frontansicht des Hauses</anhangtitel >
          <format>JPEG</format>
          <check ctype="DATETIME">2011-09-01T12:15:05</check>
 
		  <daten>
            <pfad >abc.jpg</pfad >
          </daten>
        </anhang>
        <user_defined_simplefield feldname="" />
        <user_defined_anyfield />
      </anhaenge>
  
	  <verwaltung_objekt>
        <objektadresse_freigeben>false</objektadresse_freigeben>
        <verfuegbar_ab />
        <abdatum>2001-01-01</abdatum>
        <bisdatum>2001-01-01</bisdatum>
        <min_mietdauer min_dauer="MONAT" />
        <max_mietdauer max_dauer="MONAT" />
        <versteigerungstermin>2001-01-01</versteigerungstermin>
        <wbs_sozialwohnung>false</wbs_sozialwohnung>
        <vermietet>false</vermietet>
        <gruppennummer />
        <zugang />
        <laufzeit>10</laufzeit>
        <max_personen>10</max_personen>
        <nichtraucher>true</nichtraucher>
        <haustiere>true</haustiere>
        <geschlecht geschl_attr="EGAL" />
        <denkmalgeschuetzt>false</denkmalgeschuetzt>
        <als_ferien>true</als_ferien>
        <gewerbliche_nutzung>true</gewerbliche_nutzung>
        <branchen />
        <hochhaus>false</hochhaus>
        <user_defined_simplefield feldname="" />
        <user_defined_anyfield />
      </verwaltung_objekt>
      <verwaltung_techn>
        <objektnr_intern />
        <objektnr_extern />
        <aktion aktionart="CHANGE" />
        <aktiv_von>2001-01-01</aktiv_von>
        <aktiv_bis>2001-01-03</aktiv_bis>
        <openimmo_obid>111</openimmo_obid>
        <kennung_ursprung />
        <stand_vom>2001-02-03</stand_vom>
        <weitergabe_generell>true</weitergabe_generell>
        <weitergabe_positiv />
        <weitergabe_negativ />
        <gruppen_kennung>001</gruppen_kennung>
        <master visible="false">001</master>
        <user_defined_simplefield feldname="" />
        <user_defined_anyfield />
        <user_defined_extend />
      </verwaltung_techn>
      <user_defined_simplefield feldname="" />
      <user_defined_anyfield>
	    <!-- Beispiele -->
        <plaintext fieldname="objektart" fieldvalue="Etagenwohnung" />
        <plaintext fieldname="auslandsregion" fieldvalue="Canillo" />
        <plaintext fieldname="zustand" fieldvalue="vollständig renoviert" />
        <plaintext fieldname="ausstattung" fieldvalue="Gehoben" />
        <plaintext fieldname="heizungsart" fieldvalue="Ofenheizung" />
        <plaintext fieldname="befeuerungsart" fieldvalue="Solarheizung" />
        <plaintext fieldname="provisionshinweis" fieldvalue="hinweis1" />
        <plaintext fieldname="parkplatztyp" fieldvalue="Duplex" />
        <plaintext fieldname="bauphase" fieldvalue="WERT" />
        <plaintext fieldname="bodenbelag" fieldvalue="WERT" />
        <plaintext fieldname="zulieferung" fieldvalue="WERT" />
        <plaintext fieldname="empfohlene_nutzung" fieldvalue="WERT" />
        <plaintext fieldname="baunutzung" fieldvalue="WERT" />
        <plaintext fieldname="headline" fieldvalue=" Einfamilienhaus in Dortmund" />
        <flag fieldname="balkon" fieldvalue="true" />
        <flag fieldname="terrasse" fieldvalue="false" />
        <flag fieldname="preisaufanfrage" fieldvalue="false" />
      </user_defined_anyfield>
      <user_defined_extend />
    </immobilie>
    <impressum />
    <impressum_strukt>
      <firmenname />
      <firmenanschrift />
      <telefon />
      <vertretungsberechtigter />
      <berufsaufsichtsbehoerde />
      <handelsregister />
      <handelsregister_nr />
      <umsst-id />
      <steuernummer />
      <weiteres />
    </impressum_strukt>
    <user_defined_simplefield feldname="" />
    <user_defined_anyfield />
  </anbieter>
  <user_defined_simplefield feldname="" />
  <user_defined_anyfield />
</openimmo>

FIRST STEP: 

So I will create the same fields as Variables.  Read the XML as an Array and then i have to create a new page and fill the Variables from the created XML-Array. The Id have to be unique 

SECOND STEP:

Based on some term's the page have different parents, some other things like visible or not. If there is an object with the same Id then I have to check which changes are new in the array 

So thats for now. 

Edited by creativ3minds
Link to comment
Share on other sites

Which Variables I have to use for arrays ? 

Example if an Value can have more true or false values ? 

    <boden FLIESEN="0" STEIN="0" TEPPICH="1" PARKETT="1" FERTIGPARKETT="0" LAMINAT="0" DIELEN="0" KUNSTSTOFF="1" ESTRICH="1" DOPPELBODEN="1" LINOLEUM="1" MARMOR="1" TERRAKOTTA="1" GRANIT="0"/>

Should I use something like reperater or Filedtype select ?

What would you do in this case ?? 

Link to comment
Share on other sites

Which Variables I have to use for arrays ? 

Example if an Value can have more true or false values ? 

    <boden FLIESEN="0" STEIN="0" TEPPICH="1" PARKETT="1" FERTIGPARKETT="0" LAMINAT="0" DIELEN="0" KUNSTSTOFF="1" ESTRICH="1" DOPPELBODEN="1" LINOLEUM="1" MARMOR="1" TERRAKOTTA="1" GRANIT="0"/>

Should I use something like reperater or Filedtype select ?

What would you do in this case ?? 

I would create each one of those attributes as a Page, and use a Page reference field (multiple) to store them (perhaps named "boden"?). In the admin interface, this could be represented by multiple checkboxes, or AsmSelect (for example).

So you would create Pages for all of those (FLIESEN, STEIN, TEPPICH ...) under a certain parent, first. Once you have that list, you can leave it alone.

Then for each item that references those as a 1, you just add the relevant page to your "boden" field.

  • Like 1
Link to comment
Share on other sites

I would create each one of those attributes as a Page, and use a Page reference field (multiple) to store them (perhaps named "boden"?). In the admin interface, this could be represented by multiple checkboxes, or AsmSelect (for example).

So you would create Pages for all of those (FLIESEN, STEIN, TEPPICH ...) under a certain parent, first. Once you have that list, you can leave it alone.

Then for each item that references those as a 1, you just add the relevant page to your "boden" field.

Thanks for your answer.

The same was in my mind but I wasnt sure. I would create for every multiple field pages. Like in the SkyScraper demo the Architects. ? 

Themplates without files and only with Name as placeholder. 

Link to comment
Share on other sites

The same was in my mind but I wasnt sure. I would create for every multiple field pages. Like in the SkyScraper demo the Architects. ? 

Themplates without files and only with Name as placeholder.

Exactly! :)

Link to comment
Share on other sites

a foreach = ?

$floortypes = array('fliesen','stein','teppich');

foreach($floortypes as $floortype) {
     $page->floortypes->add("/floortypes/$flootype/");
}

If you have the page referenced setup under /floortypes/fliesen/ etc

Link to comment
Share on other sites

  • 3 weeks later...

Why do you not ftp-upload the archive and bootstrap PW?

You write a script (php-file) e.g. named "pw-archive-import.php" and put it in the root of your webpage (where you have pw index.php).

I use this very often like that, (with some security in it):

<?php

// define userroles that are allowed to work with this script, like: superuser|editor|author
$userRolesSelector = 'superuser';

// bootstrap PW
require_once(dirname(__FILE__) . '/index.php');

// check user-account
if( ! wire('user')->hasRole($userRolesSelector)) {
	header('HTTP/1.1 403 Forbidden');
	exit(1);
}

WIth this example you first have to login into PW as a superuser and than call the URL to the importer-script with your browser to lets having fun. :)

Than you can hardcode the path to your archive-data-file or pass it via a Getvar to the script, read / prepare the data and start to create and/or fill pages:

// get your file, read it into an array $archiveData and start to import it:

// here some (pseudo/example)code
set_time_limit( intval(60 * 10) );  // give it 10 minutes, you may also increase this

echo "<pre>\n";
foreach($archiveData as $data) {
    // check if a page with that id/title already exists
    $page = wire('pages')->get($data['your-page-uid']);
    if(0<$page->id) {
        // this page exist already, if we only want to import new pages, we skip
        echo "- page already exists: {$page->id}\n";
        continue;
    }

    // we have to create a new page
    echo "+ create new page for {$data['your-page-uid']}\n";
    $page = new Page();
    $page->template = 'your-template-name-here';
    $page->parent = wire('pages')->get(' ... your selector to match the parent-page of the new pages you create here ... ');  // ->get only returns a single page, (->find returns a page-array)
    $page->title = $data['title'];
 
    // add all data to the fields you have to
    // don't forget to validate and/or sanitize the data if not have done already!
    ....   

    // save the page
    $page->save();

    // and optionally unload from memory
    wire('pages')->uncache($page);
}

Here are some links to bootstrap scripts / posts:

http://processwire.com/talk/topic/4905-does-this-image-import-pseudocode-look-ok/

http://processwire.com/talk/topic/4437-delete-orphaned-filesimages-from-siteassetsfiles/#entry43687

  • Like 2
Link to comment
Share on other sites

  • 5 months later...

Ok, 

I understnad now better how to handle the Date. 

One thing what I need is how to add all new Page  arrays to one array ? 

I get in a loop all arrays(OBJECTS) from the file

how can I create a new array $archiveData ? 


for ($ni=1; $ni<=$azi; $ni++) {  
	   $idata = $opfile->GetOneImmo( $ni, $xinfo); 
           $archiveData->add($idata); 

}
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...