Fullscreen
Loading...
 
[Show/Hide Left Column]
[Show/Hide Right Column]

CartoGraf

Please see update: CartoGraf_15





CartoGraf site
CartoGraf site


CartoGraf is an interactive web-based mapping application to enhance learning in history and geography classes in high schools. CartoGraf is mainly based on Maps, Drawings, PluginAppFrame and Trackers. It is a great example of how to use profiles in a general purpose app (Tiki) to make a very specific application using Tiki as Framework.

Close
informationDevelopment notice
When you apply the profile, you may see "Preference set: geo_tilesets=Array" in the response. This is a cosmetic error. The preference is set correctly.

This profile takes advantage of the new features coming in Tiki 11, specifically for File Galleries and Draw.



To get your own copy of CartoGraf
  1. You need to get branches/12x (Tiki12.x from SVN) for the latest and greatest goodies :-) (Use the Daily Build of Tiki from SVN)
  2. Activate .htaccess by renaming _htaccess (even better is to link from .htaccess to _htaccess) Note: rewrite rules are essential for this profile
  3. Select and apply the CartoGraf profile from tiki-admin.php?page=profiles
  4. Follow the profile Setup instructions

We hope you like it and please do join the community!

To see a demo video, please visit: https://tv.tiki.org/CartoGraf

Theme

Pages included by this profile

Using:
French version:

General Preferences

YAML
instructions: Setup
preferences:
 feature_search_fulltext: n
 feature_search: y 
 feature_sefurl: y
 allowRegister: y
 browsertitle: CartoGraf Project
 tracker_refresh_itemlink_detail: y
 geo_always_load_openlayers: y
 url_after_validation: Account_Validated
 feature_jquery_ui_theme: start
 feature_left_column: n
 tracker_clone_item: y
 toolbar_trackers: bold,list,numlist,wikiplugin_youtube
 layout_add_body_group_class: y
 feature_wiki_ext_icon: n
 feature_syntax_highlighter: n
 sitelogo_title: CartoGraf
 sitelogo_alt: CartoGraf logo


Temporary

YAML
preferences:
 validateUsers: n
 feature_antibot: n
 sitelogo_alt: CartoGraf logo


File Galleries Prefs

YAML
preferences:
 fgal_tracker_existing_search: y
 fgal_elfinder_feature: y
 fgal_upload_from_source: y
 fgal_quota_per_fgal: y
 fgal_quota_default: 0
 fgal_sort_mode: lastModif
 fgal_list_name: n
 fgal_list_description: y
 fgal_list_last_user: y
 fgal_list_author: o
 fgal_list_created: o
 fgal_list_lastModif: y
 fgal_list_size: y
 fgal_list_files: n
 fgal_image_max_size_x: 800

User Files

YAML
preferences:
 feature_userfiles: y
 feature_use_fgal_for_user_files: y
 userfiles_private: n
 userfiles_hidden: y
 userfiles_quota: 30
 quota_show: bar_and_text


Limit username pattern

CartoGraf relies heavily on Unified Search (Zend_Search_Lucene). Because of this, a username jean-marc won't work. Since hypens are often used in emails, you can't use CartoGraf with the pref "Use email as username" (login_is_email). Space and quote should also not be permitted. Theoretically, underscore (_) should work, but tests have demonstrated that is doesn't. Thus, we are restricting to only numbers and letters, without any accents.
As of Tiki 12 the default unified search engine uses mysql which has a minimum searchable token length of 4, so setting minumum user name length to 5 to be safe.

YAML
preferences:
 username_pattern: /^[_a-zA-Z0-9]*$/
 login_is_email: n
 min_username_length: 5


Permissions

YAML
permissions:
 Anonymous:
  allow:
   - search
   - view_trackers
   - tracker_view_attachments
 Registered:
  allow:
   - attach_trackers
   - create_tracker_items
   - add_object
   - remove_object
   - upload_files
   - list_file_galleries
   - view_file_gallery
   - userfiles


Look & Feel

YAML
preferences:
 style: CartoGraf.css
 feature_fixed_width: n
 jquery_ui_selectmenu: y
 feature_page_title: n
 feature_sitelogo: y
 wiki_edit_plugin: n
 sitelogo_src: styles/CartoGraf/logo.gif
 smarty_security_dirs: [styles/CartoGraf/img]


YAML
objects:
 -
  type: menu
  ref: CartoGraf_Top_menu
  data:
   name: Top
   description: A menu containing the base navigation of the site
   collapse: none
   items:
    -
     name: Home
     url: ((HomePage))
    -
     name: Help
     url: ((Help))
    -
     name: Setup
     url: ((Setup))
     permissions: [ admin ]
 -
  type: menu
  ref: CartoGraf_RightEdge_menu
  data:
   name: RightEdge
   description: 
   collapse: none
   items:
    -
     name: Register
     url: tiki-register.php
    -
     name: Demo
     url: ((Demo))
    -
     name: Contact
     url: ((Contact))


Modules

YAML
preferences:
 modseparateanon: y
objects:
 -
  type: module
  ref: LiveHeaderMap_module
  data:
   position: top
   order: 0
   name: LiveHeaderMap
   groups: [ Anonymous, Registered ]
   params:
    nobox: y
    nopage: Map
   custom: <div id="TheLiveHeaderMap" style="height:188px"></div>
 -
  type: module
  ref: Footer_module
  data:
   position: bottom
   order: 0
   name: Footer
   groups: [ Anonymous, Registered ]
   params:
    nobox: y
   custom: "{if $prefs.language eq 'fr'}{wikiplugin _name='include' page='Footer' start='-FR-START-' stop='-FR-END-'}{/wikiplugin}{else}{wikiplugin _name='include' page='Footer' start='-EN-START-' stop='-EN-END-'}{/wikiplugin}{/if}"
 -
  type: module
  ref: LocationSearch_module
  data:
   position: top
   order: 49 #ensure the map location search is assigned as last module
   name: map_search_location
   groups: [ Registered ]
   params:
    legacy_mode: search_box
    show_search_button: y
    show_go_button: n
    show_edit_button: n
    default_button: search
    page: Map
    nobox: y
    style: "float: right; margin-right: 15px" #most of the params ignored as the module is not standard and does have no module div rendered but just the form tag (TODO: fix in Tiki)
 -
  type: module
  ref: TopMenu_module
  data:
   position: top
   order: 1
   name: menu
   groups: [ Anonymous, Registered ]
   params:
    id: $CartoGraf_Top_menu
    type:horiz
    css:y
    menu_id:TopMenu
    translate:y
    nobox:y
    decorations:n
    notitle:y
    style: "float: left; margin-left: 350px"
 -
  type: module
  ref: RightEdgeMenu_module
  data:
   position: right
   order: 1
   name: menu
   groups: [ Anonymous ]
   params: 
    id: $CartoGraf_RightEdge_menu
    menu_id: RightEdgeMenu
    nobox: y
    nopage: Map


Features

YAML
preferences:
 feature_wiki: y
 feature_articles: n
 feature_mytiki: n
 feature_trackers: y
 geo_tilesets: [mapquest_street, mapquest_aerial, google_street, google_satellite, google_physical, google_hybrid, blank]
 geo_google_streetview: y
 geo_google_streetview_overlay: y
 wikiplugin_appframe: y
 wikiplugin_list: y
 feature_search: y
 feature_wiki_argvariable: y
 trackerfield_geographicfeature: y



Drawing

YAML
preferences:
 feature_draw: y
 feature_draw_separate_base_image: y
 feature_draw_in_userfiles: y
 feature_draw_hide_buttons: ellipse_cx, tool_ellipse_cy, tool_ellipse_rx, tool_ellipse_ry, rect_width_tool, rect_height_tool, cornerRadiusLabel, tool_eyedropper, view_grid, tool_angle, tool_blur, tool_position, xy_panel, marker_panel, tool_reorient, rulers, tool_source, tool_zoom, tool_eyedropper, view_grid, tool_wireframe, line_panel, main_button

Trackers

Points of interest

YAML
objects:
 -
  type: tracker
  ref: pointsOfInterest
  data:
   name: Points of interest
   allow: [creator_modification, creator_deletion]
   show: list_modification_date
   section_format: tab
   admin_only_view: y
 -
  type: tracker_option
  data:
   tracker: $pointsOfInterest
   name: popup_fields
   value: "$profileobject:poiImage$,$profileobject:poiDescription$,$profileobject:poiFinder$"
 -
  type: tracker_field
  ref: poiName
  data:
   order: 10
   name: Name
   type: text_field
   tracker: $pointsOfInterest
   flags: [ public, mandatory, list, title, link, searchable ]
 -
  type: tracker_field
  ref: poiDescription
  data:
   order: 20
   name: Description
   type: text_area
   options: "1,,12"
   tracker: $pointsOfInterest
   flags: [ public ]
 -
  type: tracker_field
  ref: poiIcon
  data:
   order: 30
   name: Icon
   type: icon
   tracker: $pointsOfInterest
   flags: [ public, list ]
   options: "$profileobject:iconContainer$"
 -
  type: tracker_field
  ref: poiCoordinates
  data:
   order: 40
   name: Coordinates
   type: header
   tracker: $pointsOfInterest
 -
  type: tracker_field
  ref: poiLocation
  data:
   order: 50
   name: Location
   type: map
   options: "1"
   tracker: $pointsOfInterest
   flags: [ public, mandatory ]
 -
  type: tracker_field
  ref: poiAttachments
  data:
   order: 60
   name: Attachments
   type: header
   tracker: $pointsOfInterest
 -
  type: tracker_field
  ref: poiImage
  data:
   order: 70
   name: Image
   type: files
   options: "2,image/*,1,img,,,1,n,$profileobject:imageBank$,2"
   tracker: $pointsOfInterest
   flags: [ public ]
 -
  type: tracker_field
  ref: poiDetails
  data:
   order: 80
   name: Details
   type: header
   tracker: $pointsOfInterest
 -
  type: tracker_field
  ref: poiMap
  data:
   order: 90
   name: Map
   type: item_link
   options:
    trackerId: $profileobject:maps$
    fieldId: $profileobject:mapName$
    displayFieldsList: 
     - 0
    status: opc
    preSelectFieldMethod: exact
    displayOneItem: one
    indexRemote: 
     - $profileobject:mapShareCode$
    cascade: 7
   tracker: $pointsOfInterest
   flags: [ public, mandatory, list, title, searchable ]
   permname: map
   visible: immutable
 -
  type: tracker_field
  ref: poiFinder
  data:
   order: 100
   name: Finder
   type: user
   options: "1"
   tracker: $pointsOfInterest
   flags: [ public, mandatory, list ]
   permname: finder
   visible: immutable

Zones

This is both for polygons and paths

YAML
objects:
 -
  type: tracker
  ref: zones
  data:
   name: Zones
   allow: [creator_modification, creator_deletion]
   show: list_modification_date
   section_format: tab
   admin_only_view: y
 -
  type: tracker_option
  data:
   tracker: $zones
   name: popup_fields
   value: "$profileobject:zoneImage$,$profileobject:zoneDescription$,$profileobject:zoneFinder$"
 -
  type: tracker_field
  ref: zoneName
  data:
   order: 10
   name: Name
   type: text_field
   tracker: $zones
   flags: [ public, list, title, link, searchable ]
 -
  type: tracker_field
  ref: zoneDescription
  data:
   order: 20
   name: Description
   type: text_area
   options: "1,,12"
   tracker: $zones
   flags: [ public ]
 -
  type: tracker_field
  ref: zoneAttachments
  data:
   order: 30
   name: Attachments
   type: header
   tracker: $zones
 -
  type: tracker_field
  ref: zoneImage
  data:
   order: 40
   name: Image
   type: files
   options: "2,image/*,1,img,,,1,n,$profileobject:imageBank$,2"
   tracker: $zones
   flags: [ public ]
 -
  type: tracker_field
  ref: zoneDetails
  data:
   order: 50
   name: Details
   type: header
   tracker: $zones
 -
  type: tracker_field
  ref: zoneMap
  data:
   order: 60
   name: Map
   type: item_link
   options:
    trackerId: $profileobject:maps$
    fieldId: $profileobject:mapName$
    displayFieldsList: 
     - 0
    status: opc
    preSelectFieldMethod: exact
    displayOneItem: one
    indexRemote: 
     - $profileobject:mapShareCode$
    cascade: 7
   tracker: $zones
   flags: [ public, mandatory, list, title, searchable ]
   permname: map
   visible: immutable
 -
  type: tracker_field
  ref: zoneFinder
  data:
   order: 70
   name: Finder
   type: user
   options: "1"
   tracker: $zones
   flags: [ public, mandatory, list ]
   permname: finder
   visible: immutable
 -
  type: tracker_field
  ref: zoneFeature
  data:
   order: 80
   name: Zone
   type: geographic_feature
   options: ""
   tracker: $zones
   flags: [ public, mandatory ]


Maps

YAML
objects:
 -
  type: tracker
  ref: maps
  data:
   name: Maps
   allow: [creator_modification, creator_deletion]
   show: list_modification_date
   section_format: tab
   admin_only_view: y
 -
  type: tracker_option
  data:
   tracker: $maps
   name: popup_fields
   value: "$profileobject:mapDescription$"
 -
  type: tracker_field
  ref: mapName
  data:
   name: Name
   type: text_field
   tracker: $maps
   order: 10
   flags: [ public, mandatory, list, title, link, searchable ]
 -
  type: tracker_field
  ref: mapDescription
  data:
   name: Instructions
   type: text_area
   options: "1,,15"
   tracker: $maps
   order: 20
   flags: [ public, searchable ]
 -
  type: tracker_field
  ref: mapShareCode
  data:
   name: Share Code
   type: text_field
   tracker: $maps
   flags: [ public, list, searchable ]
   options: "0,10,,,50
   order: 30
   permname: shareCode
   validation: regex
   validation_param: \\w*
   validation_message: Only letters and numbers are allowed in share codes
 -
  type: tracker_field
  ref: mapDetailsHeader
  data:
   name: Change Base location
   type: header
   tracker: $maps
   order: 40
 -
  type: tracker_field
  ref: mapBaseLocation
  data:
   name: Base Location
   type: map
   tracker: $maps
   order: 50
   flags: [ public, mandatory ]
 -
  type: tracker_field
  ref: mapOwner
  data:
   name: Owner
   type: user
   options: "1"
   tracker: $maps
   order: 60
   flags: [ public, mandatory, list ]
   permname: owner
   visible: immutable


Legends

YAML
objects:
 -
  type: tracker
  ref: legend
  data:
   name: Legend
   allow: [creator_modification, creator_deletion]
   show: list_modification_date
   admin_only_view: y
 -
  type: tracker_field
  ref: legendIcon
  data:
   name: Icon
   type: icon
   tracker: $legend
   flags: [ public, mandatory, list ]
   order: 10
   options: "$profileobject:iconContainer$"
 -
  type: tracker_field
  ref: legendText
  data:
   name: Text
   type: text_field
   tracker: $legend
   order: 20
   flags: [ public, mandatory, list, title, link, searchable ]
 -
  type: tracker_field
  ref: legendMap
  data:
   name: Map
   type: item_link
   options:
    trackerId: $profileobject:maps$
    fieldId: $profileobject:mapName$
    displayFieldsList: 
     - 0
    status: opc
    preSelectFieldMethod: exact
    displayOneItem: one
    indexRemote: 
     - $profileobject:mapShareCode$
    cascade: 7
   tracker: $legend
   flags: [ public, mandatory, list, title, searchable ]
   permname: map
   order: 30
   visible: immutable
 -
  type: tracker_field
  ref: legendFinder
  data:
   name: Finder
   type: user
   options: "1"
   tracker: $legend
   order: 40
   flags: [ public, mandatory, list ]
   permname: finder
   visible: immutable


File Galleries

User files needs to be added somewhere
YAML
objects:
 -
  type: file_gallery
  ref: iconContainer
  data:
   parent: 1
   name: Icons
   description: Icons available for selection in the map.
   owner: admin
   archives: 5
   flags: []
   init_files:
    - https://profiles.tiki.org/pics/icons/plugin.png
 -
  type: file_gallery
  ref: imageBank
  data:
   parent: 1
   name: Image Bank
   description: Images uploaded by site admins, for use by teachers and students
   owner: admin
   archives: -1
   flags: [visible]
   image_max_size_x: 0

Wiki Pages

YAML
objects:
 -
  type: wiki_page
  ref: home_page
  data:
   name: HomePage
   content: wikicontent:CartoGraf_HomePage
 -
  type: wiki_page
  ref: cartograf_footer
  data:
   name: Footer
   content: wikicontent:CartoGraf_Footer
 -
  type: wiki_page
  ref: cartograf_setup
  data:
   name: Setup
   description: Post-Profile Setup Instructions
   lang: en
   content: wikicontent:CartoGraf_Setup
 -
  type: wiki_page
  ref: cartograf_help
  data:
   name: Help
   description: Help
   lang: en
   content: wikicontent:CartoGraf_Help
 -
  type: wiki_page
  ref: account_validated_page
  data:
   name: Account_Validated
   description: Account Validated
   lang: en
   content: wikicontent:CartoGraf_NewAccountValidationIncludedPage
 -
  type: wiki_page
  ref: demo_page
  data:
   name: Demo
   lang: en
   content: wikicontent:CartoGraf_Demo
 -
  type: wiki_page
  ref: partners_page
  data:
   name: Partners
   lang: en
   content: wikicontent:CartoGraf_Partners
 -
  type: wiki_page
  ref: contact_page
  data:
   name: Contact
   lang: en
   content: wikicontent:CartoGraf_Contact


Application Frame Pages

YAML
objects:
 -
  type: wiki_page
  ref: map_page
  data:
   name: Map
   content: wikicontent:CartoGraf_Map
 -
  type: wiki_page
  ref: mapcanvas_share_page
  data:
   name: MapCanvasShare
   content: wikicontent:CartoGraf_MapCanvasShare
 -
  type: wiki_page
  ref: mapcanvas_solo_page
  data:
   name: MapCanvasSolo
   content: wikicontent:CartoGraf_MapCanvasSolo
 -
  type: wiki_page
  ref: mapselector_page
  data:
   name: MapSelector
   content: wikicontent:CartoGraf_MapSelector




Development Wiki

Moved to https://dev.tiki.org/CartoGraf.

Contributors to this page: Marc Laporte , luciash d' being , Xavi (as xavidp - admin) , Jonny Bradley , Xavier de Pedro , Louis-Philippe Huberdeau and stevequirion .
Page last modified on Friday 09 of December, 2016 01:52:31 CET by Marc Laporte.
Category: release
Category: 12.x