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.
Download and InstallTiki9 As of 2012-07-10, you need to get branches/10x (future Tiki10.0) for the latest and greatest goodies :-) (Use the Daily Build of 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
Work in Progress...
(Do not use Kaltura wikiplugin as it is not enabled in default install when viewing the profile before apply)
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
Temporary
YAML
preferences:
validateUsers: n
feature_antibot: n
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
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
Menus
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: Partners
url: ((Partners))
-
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:
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
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.
1-liner to re-install a fresh Tiki with profile
php installer/shell.php install; sh setup.sh fix; php lib/search/shell.php rebuild; php lib/profilelib/shell.php install CartoGraf; php lib/profilelib/shell.php install Screencast ; sh setup.sh fix; php lib/search/shell.php rebuild; sh setup.sh fix
Todos
Marc
Update docs & profile to new SourceForge code location
Can you add a way to restrict to certain file galleries (ex.: Gallery #3 and children)
Should be done r43770 (jb)
Please set the profile to pick from the "Image Bank" file gallery and children (ml)
The image should be copied (forked) as if it was an image from an external site. Copied from File Gallery "ref: imageBank" (populated by site admins) to "ref: imageContainer" (Images uploaded by students)
Since this is the less common use case, another option to use/link would make a lot of sense
Don't really follow this one - guess it needs to be some sort of option on tracker Files field... discuss (jb)
Or maybe it should be "forked" when someone draws on it? (so part of svg-edit)
Ok, let's discuss with Robert (ml)
2012-11=09 discussion with CartoGraf team
SVG-edit / Files in trackers: Duplicate Map (to be discussed)
Plan A: Background image is the same for all dups (save disk space, and like StreetView). SVG drawing be duplicated, and thus, editable and independant
Plan B: Background image is duplicated (Thus, uses more disk space) SVG drawing be duplicated, and thus, editable and independant
Plan C: Background image is the same for all dups (save disk space, and like StreetView). SVG drawing doesn't not follow, but user can recreate
Jonny
Update svg-edit to latest revision in branches/10.x
Looks like I broke "Join" when I renamed to collaborate fixed
Map slideout : change CSS of "My Maps" (which now links to HomePage) to be like in screenshot I emailed you (I did color, now needs top right position) fixed
Layer selector: fix at the bottom or move to the top done
But there is still vertical scroll
Merge MyMaps into HomePage and fix all references in the profile. ( a test of this is active on demo.tiki.org/cartograf)
We just show alternate content to anonymous users (general info about project and registration link)
One top menu disappears (yay!)
As of 2012-11-25 merge was done, text/box title is incorrect
When join a map, copy name and instructions (ideally in the background). They are viewable/editable if the user desires Looks good now
Dupe and join buttons need perm check Looks good now
After adding a PoI/StreetView you fill form, but after you should be in pan/zoom mode Done
When click shared map code, view with opened tab
Bookmarkable slide-out of right hand sliders and/or some wizard-like pop-ups to explain to the user how it works (start using http://framindmap.org/framindmap.html to see what I mean). So we can link/document to how to create a map (now you need to know to open the slider) Done
works via tiki-view_tracker.php but not in end-user interface with latest svn up and refresh of templates (but seemed to work for a while). If you need tpl changes, attach them to this wiki page Done - was set to fixed height in the css, i changed it to min-height (guessing that was what was meant) (jb)
Add a tracker setting to make tracker management via tiki-view_tracker.php accessible only to tiki_p_admin_trackers for that tracker (or a similar strategy to reach this objective)
For example, if you now click in top-right map slideout box, and then "description", you have a clickable link to tiki-view_tracker.php Another example is in print mode. Perhaps we could should make a template in wiki pages for this? (à la Pretty Tracker with Template to display an item wiki:pageName for a wiki page or tpl:tplName for a template
Would have to be in trunk now, or wait until after 10.0 release? (jb)
Can be in trunk and we'll backport for this specific project (or apply for a backport to 10.x)
Hide background wiki page while map loads (fraction of a second of ugliness)
Better enough? (jb)
Yes, good enough (ml)
The site requires IE9 (which is required for SVG-edit): can we have some sort of bubble, overlay, topline or something to warn users they have to upgrade their browser? Related: https://dev.tiki.org/item2710 resolved. There is now a file styles/CartoGraf/custom.js
Add a "duplicate map" (which is to duplication your own map) link/button in the map slideout box.
Ideally, it asks for name of new map, if not, it calls it ABC-copy done
(ABC-copie in French)
Ideally a delete map button as well
How can it also delete the related data (zones and PoIs) (see with LPH )
Move edit button inside description infobox done
Option for infobox (description popup) to be div rather than table layout done
Can we have lang/**/custom.js ? which would be cleaner than what we have at CartoGraf_languages
Ideally, in tracker file/image upload, make the image visible after upload (right now, it's just the text of the name of the file)
Again, now in trunk or after 10.0? (jb)
trunk now please
If easy, jQuery pop-up make smaller when there is not a lot of content (better for small screens) . For example, when you delete an item.
LP
Add a way for a user to delete his own map done by Jonny
What about PoIs/Zones that are in the other trackers?
At the end, make a French language profile for content and the top-level icons
When site is in French, SVG-edit is as well
Robert
Sometimes, SVG-edit starts without a background canvas. Any idea why? fixed for Chrome
Testing with 2 registered users
Sharing
Joining
Test: Registered user should only be able to draw on own pictures? bug or feature?
Can user A join a map of user B?
Duplicating
Can user A duplicate/fork a map of user B? (but not join)
In which case, all the elements are independant, and can be deleted. If map
Phase 2
Where will future development take place?
As of now, it's a combination of files attached to the current page, and a SVN repo on Jonny's server. This was OK for phase 1, but will need to change.
The options are:
GitHub
Pros: nice UI
Cons: not FOSS, and Git instead of SVN
Mods
Pros: can designed for this
Cons: not maintained
A new SourceForge.net project, with Allura
Pros: Allura is FOSS, clear distinction so good marketing