< Apache & Mapserver Windows Manual Installation

DocBook Documentation Generation >

## Appendix C. Create a New Project

This appendix describes how to configure your own project. The main steps are detailed here.

## C.1. Project Directory

Get in the `projects` folder of Cartoweb. Rename the `sampleProject` directory to the name of your project.

Edit the `client.ini.in` of this new project, and modify the mapId parameter value with the name of your project:

    mapId = your_project_name

Open the `server_conf` directory and rename the `sampleProject` directory to the name of your project.

In this folder, two more files need to be renamed ( `sampleProject.map` and `sampleProject.ini`) with the name of the new project.

## C.2. Setup Your Project

In a command line prompt (DOS, shell), launch the `cw3setup.php` setup script.

    <PHP-INTERPRETER> cw3setup.php --install
         --base-url http://localhost/cartoweb3/htdocs/ --profile development
         --project <nameOfYourProject>

See Chapter 1, Installation for more info on the installation script.

If no error occured, you should be able to access your project by typing http://localhost/cartoweb3/htdocs/client.php in your browser and selecting your project from the projects drop-down menu.

## C.3. Project Shortcut

To make development easier, you can create a shortcut file to access your project directly. Go in `cartoweb3/htdocs/` and copy the file `demoCW3.php`.

Rename the file to any name (usually your project name). Edit the file and replace 'demoCW3' by 'your_project_name'. Your project is now directly available with the URL http://localhost/cartoweb3/htdocs/your_project_name.php. (the URL given above depends on your installation, see the previous comments about cartoclientBaseUrl and --base-url).

## C.4. Loading Data

As you can see, the project you created is hopelessly empty. Then, we'll load spatial data in it.

Add the following in the mapfile (`your_project_name.map`) :

      LAYER
        NAME "region"
        TYPE POLYGON
        DATA "reg_france"
        TEMPLATE "ttt"
        CLASS
          NAME "region"
          STYLE
            COLOR 240 240 240
            OUTLINECOLOR 255 165 96
          END
        END
        METADATA
          "id_attribute_string" "CODE"
        END
      END

And in the `layers.ini` file (`server_conf/your_project_name/`) add the following :

    layers.region.className = Layer
    layers.region.label = Régions
    layers.region.msLayer = region

And add the new layer id in the root layer children list :

    layers.root.children = region

For more details on how to fill the layers.ini file, see Chapter 6, Layers.

Also edit the `your_project_name.ini` file in a text editor in order to set some initial mapstates such as default selected layers.

Add the following :

    mapInfo.initialMapStates.default.layers.region.selected = true

See Section 4.3.3.3, “Initial Mapstates” for more info about initialMapStates.

In your browser, click on the reset_session button and you should now see the France regions.

## C.5. Location Parameters

Move the location.ini file you will find in the sampleFiles folder into the `server_conf/your_project_name/` one.

This file defines some parameters such as scales or shortcuts. For more details on how to configure those parameters, see Chapter 7, Navigation

Click on the reset_session button in your browser page. New elements should appear. You should be able to choose a scale and a shortcut.

## C.6. Your Own Data

After that the next point is to add your own data. You should just have to :

- get your data available, by default in the data folder or somewhere else on your filesystem,
- modify the mapfile extent,
- modify the extent defined in the initialMapstates (`your_project_name.ini`),
- add layers definitions in the mapfile (`your_project_name.map`),
- add layers definitions in the `layers.ini`.
- reset the session in the browser, and get your data displayed.

## C.7. Outline

Let's see how to load a plugin. Edit the `client.ini.in` file (`client_conf/`) and add the outline plugin in the list of plugins to load:

    loadPlugins = outline

Do the same in the `your_project_name.ini` file on server-side (`server_conf/your_project_name/`) but also add the mapOverLay plugin :

    mapInfo.loadPlugins = outline, mapOverlay

Move the `outline.ini` file from `sampleFiles` to `server_conf/your_project_name/`.

In the mapfile (`your_project_name.map`), add the following at the bottom of the layers definition section :

      LAYER
        NAME "cartoweb_point_outline"
        TYPE POINT
        CLASS
          STYLE
            SYMBOL "circle"
            COLOR 0 0 205
            SIZE 10
          END
          LABEL
            TYPE TRUETYPE
            FONT "Vera"
            SIZE 7
            COLOR 0 0 0
            OUTLINECOLOR 255 255 255
            POSITION lc
          END
        END
      END

      LAYER
        NAME "cartoweb_line_outline"
        TYPE LINE
        TRANSPARENCY 100
        CLASS
          STYLE
            OUTLINECOLOR 255 0 0
            SYMBOL "line-dashed"
            SIZE 3
          END
          LABEL
            TYPE TRUETYPE
            FONT "Vera"
            SIZE 7
            COLOR 0 0 0
            OUTLINECOLOR 255 255 255
            ANGLE auto
            POSITION uc
          END
        END
      END

      LAYER
        NAME "cartoweb_polygon_outline"
        TYPE POLYGON
        TRANSPARENCY 60
        CLASS
          STYLE
            COLOR 255 153 0
            OUTLINECOLOR 0 0 0
          END
          LABEL
            TYPE TRUETYPE
            FONT "Vera"
            SIZE 7
            OUTLINECOLOR 255 255 255
            COLOR 0 0 0
            POSITION cc
          END
        END
      END

Launch the setup script. This step is compulsary to convert `.ini.in` files into `.ini` configuration files read by Cartoweb.

By clicking on the reset_session button in the browser window, you should see new buttons in the toolbar and the corresponding folder in the leftbar.

## C.8. Pdf Printing

As done for the outline plugin, add "exportPdf" to the list of plugins to load on both client and server-side.

After launching the setup script and refreshing the application (reset_session), you should be able to test the new functionality as a new folder appeared in the interface. But a warning printed in the pdf file advices you to edit your `exportPdf.ini` file.

So move `exportPdf.ini` from `sampleFiles` to `client_conf`. Take care that this is a client-side configuration file. Try a new print (no need to reset).

For more information on how to edit your `exportPdf.ini` file, see Chapter 12, PDF Export.

## C.9. Templating and Layout

Create a new `templates` folder in your project directory and move the `cartoclient.tpl` file from `sampleFiles` to this new folder.

This file is the main template for CartoWeb.

Refresh the application in your browser (refresh button) and enjoy!

To customize your project even more, you may apply styles sheets. To do so, first create a `htdocs` folder in your project directory. In this folder, create a new folder named `css`. Then move `cartoweb.css` and `folders.css` from `sampleFiles` to this new folder.

At this step, you need to launch the setup script so that the new ressources you just created are copied or linked (depending on your OS) in a web reachable folder.

You can now refresh the browser and see the new colors and styles.