README.md
author cavaliet
Wed, 16 May 2012 14:02:51 +0200
changeset 95 5d10273e892a
parent 93 dff31c10f751
child 96 be6e1ae3965c
permissions -rw-r--r--
update configuration for document_list_profile and column names
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
55
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
     1
# WikiTagBundle
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
     2
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
     3
WikiTagBundle is a php bundle for [Symfony 2](http://symfony.com/) released by the [Institute for research and innovation](http://www.iri.centrepompidou.fr/) (IRI).
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
     4
It enables to add semantised tags to any kind of document. 
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
     5
By semantised, we mean that a tag has its label, but also a wikipedia link related to this label. Right now, for v1.0, it works with the french wikipedia.
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
     6
For a simple example, the tag "Asie" is related to the link [http://fr.wikipedia.org/wiki/Asie](http://fr.wikipedia.org/wiki/Asie).
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
     7
The tag can also be categorised, by any value in a list.
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
     8
The tag can also have an alias, which is any string value.
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
     9
When a wikipedia entry is found, the bundle also searches a [dbPedia](http://dbpedia.org/) entry for the english equivalent, for example [http://dbpedia.org/page/Asia](http://dbpedia.org/page/Asia).
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    10
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    11
A tag can have 4 kinds of wikipedia links :
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    12
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    13
* **match** - Perfect match between the label and the wikipedia entry (i.e. [Asie](http://fr.wikipedia.org/wiki/Asie)).
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    14
* **redirection** - The label exists in wikipedia but redirects to an other entry (i.e. Louis XIV to [Louis XIV de France](http://fr.wikipedia.org/wiki/Louis_XIV_de_France)).
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    15
* **homonymy** - The label leads to wikipedia homonymy page (i.e. [Abstraction](http://fr.wikipedia.org/wiki/Abstraction)).
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    16
* **null result** - The label is not related to any wikipedia entry. So we build a link leading to the search page (i.e. [art multimédia](http://fr.wikipedia.org/w/index.php?search=art+multim%C3%A9dia)).
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    17
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    18
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    19
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    20
## Install
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    21
WikiTagBundle is a php bundle for [Symfony 2](http://symfony.com/).
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    22
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    23
* Install the dependencies : [PagerFanta](https://github.com/whiteoctober/Pagerfanta) and [Mondator](https://github.com/mandango/mondator).
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    24
* Download the zipfile from the [downloads](https://github.com/) page and install it.
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    25
* Once unzipped, just copy the IRI folder in your vendor/bundles folder. The folder hierarchy will be vendor/bundles/IRI/Bundle/WikiTagBundle.
90
181bf8dc6f87 correct README to include License
ymh <ymh.work@gmail.com>
parents: 89
diff changeset
    26
181bf8dc6f87 correct README to include License
ymh <ymh.work@gmail.com>
parents: 89
diff changeset
    27
## License
181bf8dc6f87 correct README to include License
ymh <ymh.work@gmail.com>
parents: 89
diff changeset
    28
181bf8dc6f87 correct README to include License
ymh <ymh.work@gmail.com>
parents: 89
diff changeset
    29
This bundle is under the CeCILL-C license. See the complete license in the bundle:
181bf8dc6f87 correct README to include License
ymh <ymh.work@gmail.com>
parents: 89
diff changeset
    30
181bf8dc6f87 correct README to include License
ymh <ymh.work@gmail.com>
parents: 89
diff changeset
    31
    Resources/meta/LICENSE
181bf8dc6f87 correct README to include License
ymh <ymh.work@gmail.com>
parents: 89
diff changeset
    32
55
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    33
   
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    34
## Getting Started
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    35
* Install WikiTagBundle
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    36
* Register the bundle in AppKernel.php :
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    37
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    38
         ... new IRI\Bundle\WikiTagBundle\WikiTagBundle(), ...
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    39
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    40
* Register the namespace in the autoload.php :
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    41
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    42
         ... 'IRI\Bundle\WikiTagBundle'   => \_\_DIR\_\_.'/../vendor/bundles', ...
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    43
    
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    44
* Register the namespace fallbacks in the autoload.php :
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    45
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    46
        $loader->registerNamespaceFallbacks(array(
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    47
            \_\_DIR\_\_.'/../src',
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    48
            \_\_DIR\_\_.'/cache/dev/wikitag',
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    49
            \_\_DIR\_\_.'/cache/prod/wikitag',
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    50
            \_\_DIR\_\_.'/cache/test/wikitag',
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    51
            \_\_DIR\_\_.'/cache/task/wikitag',
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    52
        ));
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    53
68
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
    54
* Since WikiTagBundle builds its own document class from the host app's document class, you need to tell in config.yml what is the host app's document class and what _text_ fields will be used in this class. 
55
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    55
These fields are used for searching and to calculate the tag's weight. Example :
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    56
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    57
        wiki_tag:
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    58
            document_class: Company\BaseBundle\Entity\Document
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    59
            document_id_column: id
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    60
            fields:
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    61
                title:
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    62
                    type: string
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    63
                    length: 1024
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    64
                    accessor: getTitre
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    65
                    weight: 1.0
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    66
                description:
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    67
                    type: text
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    68
                    weight: 0.5
68
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
    69
The 'document_id_column' option is used to indicate the primary key column used by the host app's document class. We are currently limited to non composite primary keys.
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
    70
A field definition has the following format:
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
    71
<field name>:
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
    72
    type: <string or text> : field type. default : text 
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
    73
    length: <int> : the length of the field. ignored if field type is text
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
    74
    accessor: <field name or method name> : the field name in the host app's document class, or the name of the method used to access the field value. If not found it will try ta add 'get' in frint of the name. Default : the field name
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
    75
    weight: <float> : the weight used for this field to calculate the score of each tag. default : 1.0 
55
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    76
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    77
* Add the WikiTag routes to your routing.yml :
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    78
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    79
        WikiTagBundle:
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    80
            resource: "@WikiTagBundle/Resources/config/routing.yml"
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    81
            prefix:   /tag
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    82
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    83
* Run the commands :
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    84
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    85
        php app/console wikitag:generate-document-class (no need to explain)
68
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
    86
        php app/console wikitag:schema:update (also replace and runs php app/console doctrine:schema:update)
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
    87
        php app/console wikitag:sync-doc (fills the database with the datas from the host document class to the wikitag document class. this command is needed only if the database was not empty)
55
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    88
    
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    89
* Your database is ready. You can now include the table of tags in a template. Do not forget css and javascript (and php app/console assets:install). Example :
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    90
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    91
        {# example of page extending the base template #}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    92
        {% extends 'CompanyBaseBundle:Default:index.html.twig' %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    93
        
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    94
        {% block css_import %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    95
        {{ parent() }}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    96
        {% render "WikiTagBundle:WikiTag:addCss" %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    97
        {% endblock %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    98
        
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
    99
        {% block js_declaration %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   100
        {{ parent() }}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   101
        {% render "WikiTagBundle:WikiTag:addJavascript" %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   102
        {% endblock %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   103
        
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   104
        {% block content %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   105
        <!-- The beginning of your template -->
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   106
                {% render "WikiTagBundle:WikiTag:documentTags" with {'id_doc': doc.id} %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   107
        <!-- The end of your template -->
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   108
        {% endblock %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   109
  
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   110
* Great ! You can now add/remove/change semantised tags to your document ! The WikiTag template includes an autocomplete search field to add simply and fastly any wikipedia semantised tag.
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   111
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   112
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   113
## The list of all tags 
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   114
If you want to, you can add into a page the list of all tags. WikiTagBundle manages a list of all tags with the paginator PagerFanta. By default, it displays 50 tags per page.
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   115
The template includes links to quick search via a list of tags's first letter. A search field is also included. It works with the star character (\*) as a delimiter for searching.
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   116
For example "\*Peter" will return tags ending by Peter, "Peter\*" tags beginning by Peter, and "\*Peter\*" all tags including Peter. 
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   117
The list can be sorted in ascending or descending label, number of documents or popularity (integer value).
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   118
WikiTagBundle manages pagination, search, and sort with url parameters. 
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   119
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   120
Example : http://mysite.com/route\_to\_list?searched=Peter\*&num\_page=1&nb\_by\_page=50&sort=popd
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   121
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   122
Including the tag list template looks like :
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   123
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   124
        {# example of template including the all tags list #}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   125
        {% extends 'CompanyBaseBundle:Default:index.html.twig' %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   126
        
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   127
        {% block css_import %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   128
        {{ parent() }}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   129
        {% render "WikiTagBundle:WikiTag:addCss" %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   130
        {% endblock %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   131
        
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   132
        {% block js_declaration %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   133
        {{ parent() }}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   134
        {% render "WikiTagBundle:WikiTag:addJavascript" with {'tags_list': true} %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   135
        {% endblock %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   136
        
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   137
        {% block content %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   138
        <!-- The beginning of your template -->
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   139
            {% render "WikiTagBundle:WikiTag:allTags" %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   140
        <!-- The end of your template -->
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   141
        {% endblock %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   142
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   143
*IMPORTANT* : This template needs a route to be defined in configuration file. Usually, this host site's route leads the a page/document concerned by the clicked tag. 
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   144
This route is used by the list to create a link on the "nb of documents" column. config.yml looks like :
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   145
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   146
        wiki_tag:
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   147
            route_for_documents_by_tag: a_route_from_host_site
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   148
            document_class: Company\BaseBundle\Entity\Document
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   149
            ...
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   150
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   151
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   152
## More configuration 1 : tag list profile for a document
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   153
Via config.yml, you can configure which columns are displayed by default for a given user. It also concerns the button "sort tags" 
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   154
(This function orders tags depending of their presence in the text fields set in config.yml). 
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   155
Is it is very simple, you define the list of columns the user profile will see by default. In the following example, the list values are the ones to use :
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   156
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   157
        wiki_tag:
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   158
            ...
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   159
            document_list_profile:
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   160
                all:         [ 'sort_tag', 'order', 'id', 'move_up_down', 'label', 'wikipedia_link', 'wikipedia_permalink', 'dbpedia_link', 'category', 'remove_wikipedia_link', 'alias', 'remove_tag_from_list', 'alternative_label', 'alternative_wikipedia_url' ]
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   161
                editor :     [ 'order', 'id', 'move_up_down', 'label', 'wikipedia_link', 'wikipedia_permalink', 'dbpedia_link', 'category', 'remove_wikipedia_link', 'remove_tag_from_list' ]
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   162
                contributor: [ 'sort_tag', 'order', 'label', 'wikipedia_link', 'wikipedia_permalink', 'delete_wikipedia_link', 'remove_tag_from_list' ]
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   163
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   164
In these values, "sort_tag" means the sort tag button. All the other values are the available columns in the tag table.
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   165
Once this configuration set, call the profile in your template. The profile has to be called in the javascript call AND in the html call. So your template will look like this :
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   166
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   167
        ...
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   168
        {% render "WikiTagBundle:WikiTag:addJavascript" with {'profile_name': 'editor'} %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   169
        ...
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   170
        {% render "WikiTagBundle:WikiTag:documentTags" with {'id_doc': doc.id, 'profile_name': 'editor'} %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   171
        ...
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   172
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   173
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   174
## More configuration 2 : add context seach to any text part of your page
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   175
Via config.yml, you can configure a list of jquery selectors meant to let appear tag context search by selecting text. 
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   176
Once some text selected, a little div appears and displays several wikipedia entries with the entry title and a snippet. The results are the same than in an opensearch page 
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   177
(example with [découvrir](http://fr.wikipedia.org/w/index.php?search=d%C3%A9couvrir)). If you want this functionality, config.yml will look like this : 
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   178
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   179
        wiki_tag:
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   180
            ...
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   181
            reactive_selectors:
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   182
                some_divs:  [ '.left_sheet', '#p_title .sheet_title', '#p_description' ]
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   183
                only_p:     [ '#p_title .sheet_title', '#p_description' ]
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   184
                whole_page: [ 'document' ]
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   185
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   186
If you want every text on your page to be reactive, the list has to be [ 'document' ].
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   187
In the templates, you have to call a specific javascript with the wanted parameter. Your javascript calls may look like this :
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   188
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   189
        {% block js_declaration %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   190
        {{ parent() }}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   191
        {% render "WikiTagBundle:WikiTag:addJavascript" with {'profile_name': 'editor'} %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   192
        {% render "WikiTagBundle:WikiTag:addJavascriptForContextSearch" with {'context_name': 'some_divs'} %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   193
        {% endblock %}
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   194
68
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   195
## More configuration 3 : ignore wikipedia errors
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   196
This option allows to ignore wikipedia errors instead of raising an exception. The error is logged with an ERROR level and the tag is added/updated but not semantized.
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   197
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   198
        wiki_tag:
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   199
            ...    
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   200
            ignore_wikipedia_error: true
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   201
93
dff31c10f751 update readme with curl options
cavaliet
parents: 90
diff changeset
   202
## More configuration 4 : curl parameters
dff31c10f751 update readme with curl options
cavaliet
parents: 90
diff changeset
   203
This option enables to add any parameter to the curl requests, since the wikipedia request are made from the server. For example, it is useful when the server is behind a firewall.
dff31c10f751 update readme with curl options
cavaliet
parents: 90
diff changeset
   204
dff31c10f751 update readme with curl options
cavaliet
parents: 90
diff changeset
   205
        wiki_tag:
dff31c10f751 update readme with curl options
cavaliet
parents: 90
diff changeset
   206
            ...    
dff31c10f751 update readme with curl options
cavaliet
parents: 90
diff changeset
   207
            curl_options:
dff31c10f751 update readme with curl options
cavaliet
parents: 90
diff changeset
   208
            	CURLOPT_HTTPPROXYTUNNEL:  'TRUE'
dff31c10f751 update readme with curl options
cavaliet
parents: 90
diff changeset
   209
            	CURLOPT_PROXYAUTH: 'CURLAUTH_NTLM'
dff31c10f751 update readme with curl options
cavaliet
parents: 90
diff changeset
   210
            	CURLOPT_USERAGENT: 'Mozilla/5.0 Gecko/20100101 Firefox/10.0.1'
dff31c10f751 update readme with curl options
cavaliet
parents: 90
diff changeset
   211
            	CURLOPT_PROXY: 'my.proxy.url:1234'
dff31c10f751 update readme with curl options
cavaliet
parents: 90
diff changeset
   212
            	CURLOPT_PROXYUSERPWD: 'MY-DOMAIN\user:password'
dff31c10f751 update readme with curl options
cavaliet
parents: 90
diff changeset
   213
            	CURLOPT_PROXYTYPE: 'CURLPROXY_HTTP'
dff31c10f751 update readme with curl options
cavaliet
parents: 90
diff changeset
   214
68
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   215
## Services
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   216
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   217
### Document Service : wiki_tag.document - IRI\Bundle\WikiTagBundle\Services\DocumentService 
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   218
The document service gathers methods to manage tags on a given document. all these methods must be called after the host app's document(s) object has been created and flushed.
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   219
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   220
* addTags : add a tag or a list pf tags to a document. For each new tag, wikipedia will be queried.
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   221
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   222
* copyTags : copy the tags list from one document to the other.
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   223
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   224
* reorderTags : reorder a document tags. 
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   225
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   226
* getTagsLabels : get the list of tag labels from one document.
55
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   227
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   228
68
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   229
### Search service : wiki_tag.search - IRI\Bundle\WikiTagBundle\Services\SearchService
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   230
The search service allows searching documents
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   231
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   232
* getTagCloud : returns a weighted list of tag labels. The weight of the label is the number of documents tagged with this label. The list is sorted by descending weights.  
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   233
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   234
* search : search documents.
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   235
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   236
## Commands
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   237
This bundle provides a number of commans that helps in the tags management.
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   238
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   239
### wikitag:schema:create
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   240
Command to create the database schema. Equivalent to the doctrine:schema:create command.
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   241
It fully replaces the doctrine:schema:create and *must* be run instead of the doctrine:schema:create command. 
55
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   242
80a400379dd3 First version of README.md
cavaliet
parents:
diff changeset
   243
68
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   244
### wikitag:schema:update
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   245
Command to update the database schema. Equivalent to the doctrine:schema:update command.
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   246
It fully replaces the doctrine:schema:update and *must* be run instead of the doctrine:schema:update command.
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   247
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   248
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   249
### wikitag:create-fulltext-indexes
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   250
Generate the sql to create the full text index on the database. This command is not destined to be directly called.
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   251
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   252
### wikitag:generate-document-class
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   253
Generate the WikiTagBundle document class. This command should not be directly called.
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   254
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   255
### wikitag:purge-tags
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   256
Removes tags associated to no documents.
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   257
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   258
### wikitag:query-wikipedia
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   259
Query wikipedia for informations on tags.
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   260
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   261
### wikitag:reorder-tags
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   262
Automatically reorder documents tags. For each documents treated, each tag of the document is scored according to the fields definition in the bundle configuration. The sorting of the tags is done document by document according to these scores. 
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   263
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   264
### wikitag:sync-doc
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   265
Synchronize the wikiTag Bundle documents with the host bundle. This synchronization is made according to the fields defined in the bundle configuration.
e7384fb35f7a improve search test and documentation
ymh <ymh.work@gmail.com>
parents: 55
diff changeset
   266
87
499d7998d6ad update readme
ymh <ymh.work@gmail.com>
parents: 68
diff changeset
   267
### wikitag:load-fixtures
499d7998d6ad update readme
ymh <ymh.work@gmail.com>
parents: 68
diff changeset
   268
Allow loading of fixtures to populate the database.
89
738cc74f9f7f improve documentation
ymh <ymh.work@gmail.com>
parents: 87
diff changeset
   269
87
499d7998d6ad update readme
ymh <ymh.work@gmail.com>
parents: 68
diff changeset
   270
The wikitag document table must exist and be synchronized. There fore the following commands must have been executed:
89
738cc74f9f7f improve documentation
ymh <ymh.work@gmail.com>
parents: 87
diff changeset
   271
  
738cc74f9f7f improve documentation
ymh <ymh.work@gmail.com>
parents: 87
diff changeset
   272
  +  php app/console wikitag:generate-document-class
738cc74f9f7f improve documentation
ymh <ymh.work@gmail.com>
parents: 87
diff changeset
   273
  +  php app/console wikitag:sync-doc
738cc74f9f7f improve documentation
ymh <ymh.work@gmail.com>
parents: 87
diff changeset
   274
87
499d7998d6ad update readme
ymh <ymh.work@gmail.com>
parents: 68
diff changeset
   275
The wikitag\_document.external\_id field must match the datasheet field fo the taggedsheet table.
499d7998d6ad update readme
ymh <ymh.work@gmail.com>
parents: 68
diff changeset
   276
This command import in order categories, tags and documents\_tags.
499d7998d6ad update readme
ymh <ymh.work@gmail.com>
parents: 68
diff changeset
   277
you may have memory problem. In this case you can import data by slices. Here is an example:
499d7998d6ad update readme
ymh <ymh.work@gmail.com>
parents: 68
diff changeset
   278
89
738cc74f9f7f improve documentation
ymh <ymh.work@gmail.com>
parents: 87
diff changeset
   279
  +  all categories : php app/console wikitag:load-fixtures -C /path/to/data.json
738cc74f9f7f improve documentation
ymh <ymh.work@gmail.com>
parents: 87
diff changeset
   280
  +  all tags : php app/console wikitag:load-fixtures -T /path/to/data.json
738cc74f9f7f improve documentation
ymh <ymh.work@gmail.com>
parents: 87
diff changeset
   281
  +  20000 first doctags: php app/console wikitag:load-fixtures -D -E 20000 /path/to/data.json
738cc74f9f7f improve documentation
ymh <ymh.work@gmail.com>
parents: 87
diff changeset
   282
  +  20000 other doctags: php app/console wikitag:load-fixtures -D -B 20001 -E 40000 /path/to/data.json
738cc74f9f7f improve documentation
ymh <ymh.work@gmail.com>
parents: 87
diff changeset
   283
  +  last doctags: php app/console wikitag:load-fixtures -B 40001 /path/to/data.json
738cc74f9f7f improve documentation
ymh <ymh.work@gmail.com>
parents: 87
diff changeset
   284
738cc74f9f7f improve documentation
ymh <ymh.work@gmail.com>
parents: 87
diff changeset
   285
The -B (index Begin) and -E (index End) works alson on the tags. Therefore you cans import tags also in slices.
87
499d7998d6ad update readme
ymh <ymh.work@gmail.com>
parents: 68
diff changeset
   286