Loading...
 
Skip to main content

History: CartoGraf_15

Source of version: 13

Copy to clipboard
            ::{img src="https://tiki.org/display545" link="https://profiles.tiki.org/CartoGraf-15" alt="CartoGraf site" desc="CartoGraf site" align="center" imalign="center" width="550"}::

! CartoGraf for Tiki version 15+

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

{REMARKSBOX(type="information" title="Development notice" icon="bricks" close="y" width="80%")}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.
{REMARKSBOX}

To get your own copy of CartoGraf:
# You need to get branches/15x (Tiki 15.x version from SVN) for the latest and greatest goodies :-)
# Activate .htaccess by renaming _htaccess (even better is to link from .htaccess to _htaccess) {REMARKSBOX()}Note: rewrite rules are essential for this profile{REMARKSBOX}
# You need to get the CartoGraf theme first and copy it over to the -+themes/+- directory (see Theme section below)
# Select and apply the CartoGraf-15 profile from tiki-admin.php?page=profiles
# Follow the ((CartoGraf_15_Setup|profile Setup instructions))

We hope you like it and feel free to join the Tiki community!

To see a demo video of the older version, please visit: [https://tv.tiki.org/CartoGraf|https://tv.tiki.org/CartoGraf|box;]

! Theme
* As for ongoing theme development, the code is on https://sourceforge.net/p/tikiwiki/code/HEAD/tree/users/cartograf/cartograf_tiki15/
* You can also use SVN to get all the latest code developed by using the following command:{CODE()}svn checkout https://svn.code.sf.net/p/tikiwiki/code/users/cartograf cartograf{CODE}

! Pages included by this profile
* ((CartoGraf_HomePage))
* ((CartoGraf_Footer))
* ((CartoGraf_15_Setup))
* ((CartoGraf_Help))
* ((CartoGraf_15_Map))
* ((CartoGraf_MapCanvasShare))
* ((CartoGraf_MapCanvasSolo))
* ((CartoGraf_MapSelector))
* ((CartoGraf_NewAccountValidationIncludedPage))
* ((CartoGraf_languages))

!! General Preferences
{CODE(caption="YAML")}
instructions: Setup
preferences:
 feature_search_fulltext: n
 feature_search: y 
 feature_sefurl: y
 allowRegister: y
 browsertitle: CartoGraf Demo
 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
{CODE}

!! Temporary 
{CODE(caption="YAML")}
preferences:
 validateUsers: n
 feature_antibot: n
 sitelogo_alt: CartoGraf logo
{CODE}

!! File Galleries Prefs 
{CODE(caption="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
{CODE}

!! User Files 
{CODE(caption="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
{CODE}

!! Limit username pattern
CartoGraf relies heavily on ((doc: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.

{CODE(caption="YAML" colors="yaml")}
preferences:
 username_pattern: /^[_a-zA-Z0-9]*$/
 login_is_email: n
 min_username_length: 5
{CODE}

!! Permissions
{CODE(caption=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
{CODE}

!! Look & Feel
{CODE(caption=YAML)}
preferences:
 theme: CartoGraf
 feature_fixed_width: n
 jquery_ui_selectmenu: y
 feature_page_title: n
 feature_sitelogo: y
 wiki_edit_plugin: n
 sitelogo_src: themes/CartoGraf/img/logo.gif
 smarty_security_dirs: [themes/CartoGraf/img]
{CODE}

!! Menus
{CODE(caption=>YAML,wrap=1)}
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))
{CODE}

!! Modules
{CODE(caption=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: 
    bootstrap: n
    id: $CartoGraf_RightEdge_menu
    menu_id: RightEdgeMenu
    nobox: y
    nopage: Map
{CODE}

!! Features
{CODE(caption=YAML)}
preferences:
 feature_wiki: y
 feature_articles: n
 feature_mytiki: n
 feature_trackers: y
 geo_tilesets: [openstreetmap, 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
{CODE}


!! Drawing
{CODE(caption="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

{CODE}
!! Trackers
!!! Points of interest
{CODE(caption=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
{CODE}

!!! Zones
This is both for polygons and paths

{CODE(caption=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 ]
{CODE}

!!! Maps
{CODE(caption="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
{CODE}

!!! Legends
{CODE(caption="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
{CODE}

!! File Galleries
User files needs to be added somewhere
{CODE(caption=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
{CODE}
!! Wiki Pages
{CODE(caption=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_15_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
{CODE}

!!! Application Frame Pages
{CODE(caption=YAML)}
objects:
 -
  type: wiki_page
  ref: map_page
  data:
   name: Map
   content: wikicontent:CartoGraf_15_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
{CODE}

! Notes
* [https://tiki.org/TikiFestMontreal-Ottawa11#Maps_REAL_AMP_CartoGraf|CartoGraf was originally and officially launched on 2013-04-13 during the TikiFest Montréal/Ottawa in 2013] and is in production at https://cartograf.recitus.qc.ca/ (This site is in French) and at [https://cartograf.learnquebec.ca] (in English)

! Development Wiki
Moved to [https://dev.tiki.org/CartoGraf].

-=Aliases=-
(alias(CartoGraf-15)) | (alias(CartoGraf for Tiki 15))
        

History

Information Version
Fri 14 of Sep, 2018 22:20 GMT-0000 Jonny Bradley Adding geo_enabled for 18.x plus installs 38
Mon 14 of Aug, 2017 16:09 GMT-0000 luciash d' being 🧙 disabling Setup page redirect to temporarily see what is going on when upgrading site from 12.x profile to 15.x profile 37
Tue 11 of Jul, 2017 12:50 GMT-0000 luciash d' being 🧙 https link to recitus site does not work 36
Tue 11 of Jul, 2017 12:32 GMT-0000 luciash d' being 🧙 little fix 35
Mon 10 of Jul, 2017 12:28 GMT-0000 luciash d' being 🧙 Workaround for the file upload issue 34
Fri 30 of Jun, 2017 20:47 GMT-0000 luciash d' being 🧙 try different options to fix the uploading bug 33
Fri 19 of May, 2017 19:02 GMT-0000 luciash d' being 🧙 link to bug report 32
Fri 19 of May, 2017 13:07 GMT-0000 luciash d' being 🧙 make it clear what the options are 31
Fri 19 of May, 2017 12:49 GMT-0000 luciash d' being 🧙 the textarea was too high (forgot to reduce it for the other trackers too) 30
Mon 03 of Apr, 2017 19:41 GMT-0000 luciash d' being 🧙 known issues 29
Wed 29 of Mar, 2017 15:48 GMT-0000 luciash d' being 🧙 the textarea was too high 28
Wed 22 of Mar, 2017 16:34 GMT-0000 luciash d' being 🧙 add module to hide debugging alerts 27
Wed 22 of Mar, 2017 10:24 GMT-0000 luciash d' being 🧙 add link to admin control panels 26
Wed 22 of Mar, 2017 09:15 GMT-0000 luciash d' being 🧙 removed obsolete info and do not allow registrations by default 25
Wed 15 of Mar, 2017 16:17 GMT-0000 luciash d' being 🧙 it did not work (help) to have this debug preference disabled; enabling it (which is default) 24
Wed 01 of Mar, 2017 18:43 GMT-0000 luciash d' being 🧙 Do not display the "No tabs" button toggle on the tabbed interfaces [rollback version 20] 23
Tue 14 of Mar, 2017 21:03 GMT-0000 luciash d' being 🧙 do not display the debugging error messages on search index if names entered correctly 22
Wed 01 of Mar, 2017 18:43 GMT-0000 luciash d' being 🧙 Do not display the "No tabs" button toggle on the tabbed interfaces 20
Tue 24 of Jan, 2017 11:39 GMT-0000 Xavier de Pedro restore version without spaces inside square brackets 19
Tue 24 of Jan, 2017 11:29 GMT-0000 Xavier de Pedro restore the visible value of the flags option for the file gallery handler, which was automagically lost when saving the previous edit (I hadn't removed that property, odd) 18
Tue 24 of Jan, 2017 11:20 GMT-0000 Xavi (as xavidp - admin) missing quotation at the end of the values for the option 17
Tue 24 of Jan, 2017 11:18 GMT-0000 Xavi (as xavidp - admin) adding a space between "option:" and "value" to have the new yaml library in 16.x accept the syntax (it was probably invalid yaml being tolerated only by the former yaml library and not allowed) 16
Mon 23 of Jan, 2017 11:42 GMT-0000 luciash d' being 🧙 test2 15
Mon 23 of Jan, 2017 11:42 GMT-0000 luciash d' being 🧙 test2 14
Mon 23 of Jan, 2017 11:40 GMT-0000 luciash d' being 🧙 test 13
  • «
  • 1 (current)
  • 2