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.
You can play with the demo at:
password is at:
http://demo.tiki.org/
To get your own copy of CartoGraf
- You need to get branches/10x (Tiki10.x from SVN) for the latest and greatest goodies :-) (Use the Daily Build of Tiki from SVN)
- Apply the CartoGraf profile
- Follow the profile Setup instructions
We hope you like it and please do join the community!
Note: rewrite rules are essential for this profile
To see a demo video, please visit:
http://tv.tiki.org/CartoGraf
Pages included by this profile
Using:
General Preferences
YAML
instructions: Setup
preferences:
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
fgal_tracker_existing_search: y
fgal_elfinder_feature: y
layout_add_body_group_class: y
useGroupHome: 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
log_tpl: y
Limit username pattern
CartoGraf relies heavily on
Unified Search (Zend_Search_Lucene). Because of this, a username jean-marc won't work (but jean_marc is OK). 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.
YAML
preferences:
username_pattern: /^[_a-zA-Z0-9]*$/
login_is_email: n
Permissions
YAML
permissions:
Anonymous:
allow:
- search
- view_trackers
- tracker_view_attachments
Registered:
allow:
- attach_trackers
- create_tracker_items
- add_object
- remove_object
- upload_files
- view_file_gallery
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
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: 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
fgal_upload_from_source: y
Drawing
YAML
preferences:
feature_draw: 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
-
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: [ mandatory, list, title, link, searchable ]
-
type: tracker_field
ref: poiDescription
data:
order: 20
name: Description
type: text_area
options: "1,,12"
tracker: $pointsOfInterest
flags: [ ]
-
type: tracker_field
ref: poiIcon
data:
order: 30
name: Icon
type: icon
tracker: $pointsOfInterest
flags: [ 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: [ 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: "$profileobject:imageContainer$,image/*,1,1,,,1,n,0"
tracker: $pointsOfInterest
flags: [ ]
-
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: "$profileobject:maps$,$profileobject:mapName$,0,,opc,,,,0,0,exact,one,0,$profileobject:mapShareCode$"
tracker: $pointsOfInterest
flags: [ 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: [ 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
-
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: [ list, title, link, searchable ]
-
type: tracker_field
ref: zoneDescription
data:
order: 20
name: Description
type: text_area
options: "1,,12"
tracker: $zones
flags: [ ]
-
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: "$profileobject:imageContainer$,image/*,1,1,,,1,n,0"
tracker: $zones
flags: [ ]
-
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: "$profileobject:maps$,$profileobject:mapName$,0,,opc,,,,0,0,exact,one,0,$profileobject:mapShareCode$"
tracker: $zones
flags: [ 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: [ mandatory, list ]
permname: finder
visible: immutable
-
type: tracker_field
ref: zoneFeature
data:
order: 80
name: Zone
type: geographic_feature
options: ""
tracker: $zones
flags: [ mandatory ]
Maps
YAML
objects:
-
type: tracker
ref: maps
data:
name: Maps
allow: [creator_modification, creator_deletion]
show: list_modification_date
section_format: tab
-
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: [ mandatory, list, title, link, searchable ]
-
type: tracker_field
ref: mapDescription
data:
name: Instructions
type: text_area
options: "1,,15"
tracker: $maps
order: 20
flags: [ searchable ]
-
type: tracker_field
ref: mapShareCode
data:
name: Share Code
type: text_field
tracker: $maps
flags: [ list ]
options: "0,10,,,15
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: [ mandatory ]
-
type: tracker_field
ref: mapOwner
data:
name: Owner
type: user
options: "1"
tracker: $maps
order: 60
flags: [ 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
-
type: tracker_field
ref: legendIcon
data:
name: Icon
type: icon
tracker: $legend
flags: [ mandatory, list ]
order: 10
options: "$profileobject:iconContainer$"
-
type: tracker_field
ref: legendText
data:
name: Text
type: text_field
tracker: $legend
order: 20
flags: [ mandatory, list, title, link, searchable ]
-
type: tracker_field
ref: legendMap
data:
name: Map
type: item_link
options: "$profileobject:maps$,$profileobject:mapName$,0,,opc,,,,0,0,exact,one,0,$profileobject:mapShareCode$"
tracker: $legend
flags: [ 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: [ mandatory, list ]
permname: finder
visible: immutable
File Galleries
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: []
column: [ icon, name, created, creator, files ]
init_files:
- http://profiles.tiki.org/pics/icons/plugin.png
-
type: file_gallery
ref: imageContainer
data:
parent: 1
name: Image Uploads
description: Images uploaded by students
owner: admin
archives: -1
flags: [ public, visible ]
column: [ icon, name, created, creator, files ]
-
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 ]
column: [ icon, name, created, creator, files ]
Wiki Pages
YAML
objects:
-
type: wiki_page
ref: home_page
data:
name: HomePage
content: wikicontent:CartoGraf_HomePage
-
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.