.. You may want to use the usual include line. Uncomment and adjust the path. .. include:: ../Includes.txt ==================================== EXT: Synchronize fe\_users with XING ==================================== :Author: Christopher :Created: 2010-12-18T19:57:23 :Changed: 2013-02-12T12:15:20.620000000 :Classification: dix_xingsync :Description: The keywords help with categorizing and tagging of the manuals. You can combine two or more keywords and add additional keywords yourself. Please use at least one keyword from both lists. If your manual is NOT in english, see next tab "language" ---- forEditors (use this for editors / german "Redakteure") forAdmins (use this for Administrators) forDevelopers (use this for Developers) forBeginners (manuals covering TYPO3 basics) forIntermediates (manuals going into more depth) forAdvanced (covering the most advanced TYPO3 topics) ---- :Keywords: XING API, LinkedIn :Author: Jan Schreier, Markus Kappe :Email: jan-hendrik.schreier@bits-iserlohn.de :Language: en .. _img-1-img-2-EXT-Synchronize-fe-users-with-XING: |img-1| |img-2| EXT: Synchronize fe\_users with XING ==================================================== Extension Key: dix\_xingsync Language: en Version: x.y.z Keywords: XING API, LinkedIn Copyright 2013, Jan Schreier < `jan-hendrik.schreier@bits-iserlohn.de `_ >,Markus Kappe This document is published under the Open Content License available from http://www.opencontent.org/opl.shtml The content of this document is related to TYPO3 \- a GNU/GPL CMS/Framework available from www.typo3.org .. _Table-of-Contents: Table of Contents ----------------- **`EXT: Synchronize fe\_users with XING 1 <#__RefHeading__5708_1738894311>`_** **`Introduction 3 <#__RefHeading__5710_1738894311>`_** `What does it do? 3 <#__RefHeading__463_413120346>`_ `Screenshots 3 <#__RefHeading__465_413120346>`_ **`Users manual 4 <#__RefHeading__467_413120346>`_** **`Configuration 5 <#__RefHeading__31515_818911409>`_** `Installation 5 <#__RefHeading__1059_844620711>`_ `Reference 5 <#__RefHeading__31519_818911409>`_ **`Known problems 8 <#__RefHeading__31525_818911409>`_** **`To-Do list 9 <#__RefHeading__477_413120346>`_** **`ChangeLog 10 <#__RefHeading__31623_818911409>`_** .. _Introduction: Introduction ------------ .. _What-does-it-do: What does it do? ^^^^^^^^^^^^^^^^ You are running a website that needs users' data? Let your users import data from and social network site with just a few clicks. That's what this extension is made for. In its first development cycle it was created for the business network xing.com but it can be adapted easily for LinkedIn or Facebook or any other network providing users data via an API. Data can be converted either directly prior to importing data into your own database or already before it is shown to the user. To get data via the API the extension dix\_easylogin is used. Extension was developed by `www.dix-websolutions.com `_ for `www.bits-alumni.de `_ . .. _Screenshots: Screenshots ^^^^^^^^^^^ Here you see what the extension does: First the user should get an explanation which is followed by a button to initiate the API call: |img-3| As soon as the user accepted the data transfer the user is redirected to a page where he or she can select which data to import: |img-4| Users manual ------------ A video explaining what the extension does can be found here (spoken words in German only): `http://youtu.be/D4NYi1grsTw `_ The template used in the video is equipped with some JavaScript to enable the “mark all” functionality. .. _Configuration: Configuration ------------- .. _Installation: Installation ^^^^^^^^^^^^ Install the extensions smarty, dix\_easylogin (needs to be configured), then install dix\_xingsync via Extension Manager. Copy content from extension folder\static\setup.txt to Tyoscript Setup part and adapt parameters (see reference below). Copy and adapt templates (uses Smarty Templating Engine – details can be found an `http://www.smarty.net/ `_ ) Insert dix\_easylogin plugin on as content element on a desired webpage (no more action requried here) .. _Reference: Reference ^^^^^^^^^ Possible subsections: Reference of TypoScript options. .. ### BEGIN~OF~TABLE ### .. _requestProfileUrl: requestProfileUrl """"""""""""""""" .. container:: table-row Property requestProfileUrl Data type string Description Link to API at this moment should be `https://api.xing.com/v1/users/me `_ . Default .. _loginPid: loginPid """""""" .. container:: table-row Property loginPid Data type Int Description Pid of the page where easylogin plugin is located Default .. _tables: tables """""" .. container:: table-row Property tables Data type String and int Description Tables contains conversions of fields and mapping of 1:n relations. A conversion It is build with the following **syntax** : :: [table name].[convert|convert_import].[field name] = [conversion target] **Example** : In order to convert a file to fit into the field fe\_users image, it must be stored somewhere and the file name has to be written into the fe\_users.image field. This can be defined as: :: fe_users.convert_import.image = file The difference between convert and convert\_import is that convert\_import is executed only after the user finally selected which fields to import while the normal convert is executed before the user is shown the selection of fields which he may import. **Important:** The name of fields is always the name in your TYPO3 database, not the name of the source fields. A mapping consists of two mandatory and one optional rows. **Syntax:** [table name].userIDfield = [field name pointing to fe\_users] [table name].pid = [pid pointing to correct fe\_users record] [table name].sorting = [sorting as an SQL] **Example:** :: tx_wmdbbamembercareer_training.userIDfield = user_id tx_wmdbbamembercareer_training.pid = 18 tx_wmdbbamembercareer_training.sorting = begin_date DESC In this example a table called tx\_wmdbbamembercareer\_training related to fe\_users by a field called user\_id and all entries of that table must have pid = 18. When shown the table is sorted by begin\_date in descending order (if sorting is left out, uid in the respective table is used) Default .. _map: map """ .. container:: table-row Property map Data type String Description This contains the mapping of Xing (LinkedIn...) fields to your own fields. The syntax is: **Syntax:** :: [xing key].[field name] = [your TYPO3 key] or :: [xing key].[sub key] = [table name if not fe_users] [xing key].[sub key].[field name] = [table name].[field name] **Example:** :: first_name = first_name last_name = last_name private_address.street = address professional_experience.non_primary_companies = tx_wmdbbamembercareer_experience professional_experience.non_primary_companies.name = company professional_experience.non_primary_companies.url = company_site The first two lines of the example map the fields first\_name and last\_name from Xing to the respective fields in fe\_users. The third row defines that the 1:n relation stored in Xing professional\_experience.non\_primary\_companies has to be stored in the TYPO3 table tx\_wmdbbamembercareer\_experience Lines 4 and 5 are mappings towards the table tx\_wmdbbamembercareer\_experience Default .. _smarty: smarty """""" .. container:: table-row Property smarty Data type string Description The following are all parameters defining where smarty finds templates, plugins, language files. **Examples:** :: template_dir = fileadmin/templates/xingsync plugins_dir = typo3conf/ext/smarty/typo3_plugins cache_dir = typo3temp compile_dir = typo3temp #debugging = true pathToLanguageFile = fileadmin/templates/xingsync/ll_template.xml Default .. _cssFile: cssFile """"""" .. container:: table-row Property cssFile Data type String Description Location of the local css file used within the plugin. **Example:** :: cssFile = fileadmin/css/xingsync.css Default .. ###### END~OF~TABLE ###### .. _Known-problems: Known problems -------------- Can be found in forge: `http://forge.typo3.org/projects/extension-dix\_xingsync `_ .. _To-Do-list: To-Do list ---------- See and add your points at: `http://forge.typo3.org/projects/extension-dix\_xingsync `_ .. _ChangeLog: ChangeLog --------- Is in file "ChangeLog" .. ######CUTTER_MARK_IMAGES###### .. |img-1| image:: img-1.png .. :align: left .. :border: 0 .. :height: 44 .. :id: graphics5 .. :name: graphics5 .. :vspace: 57 .. :width: 161 .. |img-2| image:: img-2.png .. :align: left .. |img-3| image:: img-3.png .. :align: left .. :border: 0 .. :height: 133 .. :id: Grafik1 .. :name: Grafik1 .. :width: 562 .. |img-4| image:: img-4.png .. :align: left .. :border: 0 .. :height: 311 .. :id: Grafik2 .. :name: Grafik2 .. :width: 279