typo3
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
typo3 [2012/03/04 19:24] – [Extensions] skipidar | typo3 [2020/12/27 20:35] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ===== TYPO3 usage and configuration ===== | ||
+ | ==== Where is the TYPO3 Documentation? | ||
+ | * The real english documentation is available as an Extension [[ http:// | ||
+ | * The official documentation, | ||
+ | * The more usable documentation in German language as one .pdf File is [[ http:// | ||
+ | |||
+ | |||
+ | ==== How to enable Typo3 Admin Panel for frontend editing? ==== | ||
+ | |||
+ | {{youtube> | ||
+ | \\ | ||
+ | Add the following code to TSconfig of the user or user-group, which should see the Administration Console after logging in. | ||
+ | |||
+ | < | ||
+ | admPanel { | ||
+ | enable.edit=1 | ||
+ | module.edit.forceDisplayFieldIcons=1 | ||
+ | hide=0 | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | or just add the following line into the | ||
+ | // Template > Info/Modify > Edit the whole template record > Setup-form // | ||
+ | < | ||
+ | config.admPanel = 1 | ||
+ | </ | ||
+ | ==== How to allow recursive deleting of a page Tree in the List module? ==== | ||
+ | |||
+ | Add the following customization to the current user' TSConfig: \\ | ||
+ | < | ||
+ | setup.override{ | ||
+ | recursiveDelete=1 | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== RTE - RichTextEditor ===== | ||
+ | The RTE is configurated in the pages TS-Config. To decide which Buttons should be displayed and in which order write the following into the root-page TS-Config. | ||
+ | < | ||
+ | # Buttons die gezeigt/ | ||
+ | RTE.default.showButtons = textstyle, textstylelabel, | ||
+ | | ||
+ | RTE.default.hideButtons = fontstyle, formatblock, | ||
+ | |||
+ | # Buttons Reihenfolge | ||
+ | RTE.default.toolbarOrder = textstyle, textstylelabel, | ||
+ | </ | ||
+ | You can see all buttons by entering | ||
+ | < | ||
+ | showButtons = * | ||
+ | </ | ||
+ | |||
+ | The TSConfig can be entered as following: | ||
+ | |||
+ | {{ http:// | ||
+ | {{ http:// | ||
+ | |||
+ | |||
+ | ===== TypoScript ===== | ||
+ | |||
+ | * TypoScript is case sensitive. | ||
+ | * The names of object types must have all letters in upper case: mypage = PAGE | ||
+ | * The names of properties must always start with a small letter and must not contain any special character: OBJECT.property NOT OBJECT.Propert&# | ||
+ | |||
+ | == Functions == | ||
+ | TypoScript has some functions, predefined in the file class.tslib_content.php like PAGE, HMENU etc. \\ | ||
+ | In the code they are written in capital letters and used to retrieve DOM objects, render html items like lists... | ||
+ | |||
+ | < | ||
+ | //page object has all integers as properties. Integers are not line numbers - they determine the order in which the content will be displayed on the page in ONE LINE | ||
+ | page.10 = TEXT | ||
+ | </ | ||
+ | |||
+ | == Objects == | ||
+ | Typo uses objects with predefined properties. The syntax to get or set the properties is. | ||
+ | < | ||
+ | page.10.value = TEXT | ||
+ | |||
+ | //to set more than one property of object at once | ||
+ | object{ | ||
+ | | ||
+ | | ||
+ | } | ||
+ | |||
+ | |||
+ | myObject = TEXT | ||
+ | //reference object | ||
+ | 10 =< myObject | ||
+ | //copy object | ||
+ | 10 < myObject | ||
+ | //delete object | ||
+ | 10 > | ||
+ | |||
+ | </ | ||
+ | |||
+ | Page has all integers as properties. Integers mean the output order, in which the assigned values will be displayed on the page **(order - not rows!** \\ | ||
+ | E.g. | ||
+ | < | ||
+ | # Default PAGE object: | ||
+ | page = PAGE | ||
+ | page.10 = TEXT | ||
+ | page.10.value = HELLO WORLD10! | ||
+ | |||
+ | page.20 = TEXT | ||
+ | page.20.value = HELLO WORLD20! | ||
+ | |||
+ | page.21 = TEXT | ||
+ | page.21.value = HELLO WORLD21! | ||
+ | |||
+ | page.30 = TEXT | ||
+ | page.30.value = HELLO WORLD30! | ||
+ | </ | ||
+ | |||
+ | results in : "HELLO WORLD10!HELLO WORLD20!HELLO WORLD21!HELLO WORLD30!" | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | == Branch== | ||
+ | Typo uses objects with predefined properties. The syntax to get or set the properties is. | ||
+ | < | ||
+ | |||
+ | [browser = msie] && [system = mac] | ||
+ | //here is the true code | ||
+ | [ELSE] | ||
+ | //here is the else code | ||
+ | [GLOBAL] | ||
+ | |||
+ | //rest | ||
+ | </ | ||
+ | |||
+ | Own branches can be defined in // | ||
+ | |||
+ | == Constants == | ||
+ | Constants can be defined in the **Constants** field of the **Template** area.\\ | ||
+ | |||
+ | {{ http:// | ||
+ | |||
+ | Constant can be retrieved as following | ||
+ | < | ||
+ | 10.value = {$myCOnstant} | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Design Templates ===== | ||
+ | \\ HTML documents, where some some places can be marked by **subparts**. Typo3 will then dynamically replace those subparts by content. \\ | ||
+ | |||
+ | ==markers== | ||
+ | **CAN' | ||
+ | Markers look like that | ||
+ | < | ||
+ | ### | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==subparts== | ||
+ | * **CAN** be embedded into HTML comments, composed of two parts. | ||
+ | * Subparts **can' | ||
+ | * Subparts | ||
+ | Markers look like that | ||
+ | < | ||
+ | <!-- ### | ||
+ | Default input | ||
+ | <!-- ### | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Templates ===== | ||
+ | // Written in Typoscript in **Backend Template> | ||
+ | |||
+ | ==Including CSS or Javascript in typoscript == | ||
+ | {{ http:// | ||
+ | |||
+ | ==Include any Code into the header== | ||
+ | Sometimes you may need to include a < | ||
+ | |||
+ | < | ||
+ | page = PAGE | ||
+ | page.headerData.10 = TEXT | ||
+ | page.headerData.10.value ( | ||
+ | <script type=" | ||
+ | MathJax.Hub.Config({ | ||
+ | config: [" | ||
+ | jax: [" | ||
+ | }); | ||
+ | </ | ||
+ | ) | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | === Use MySQL from TypoScript === | ||
+ | |||
+ | == Retrieving page properties from page table == | ||
+ | |||
+ | E.g. to read the **title** field from the database, wether the name of the DB Table, not the Database has to be specified. The value of the title-DB-field for the current page can be retrieved as following: | ||
+ | |||
+ | < | ||
+ | page.10.marks.OUTPUT= TEXT | ||
+ | page.10.marks.OUTPUT{ | ||
+ | field = title | ||
+ | } | ||
+ | </ | ||
+ | or | ||
+ | < | ||
+ | page.10.marks.RIGHT = TEXT | ||
+ | page.10.marks.RIGHT.data = field:title | ||
+ | </ | ||
+ | |||
+ | which will result in the following SQL statement | ||
+ | |||
+ | < | ||
+ | SELECT title FROM pages WHERE uid=23 | ||
+ | </ | ||
+ | |||
+ | ==Retrieving properties from other tables == | ||
+ | To specify more complicated queries use the //CONTENT// object, e.g. | ||
+ | < | ||
+ | 1 = CONTENT | ||
+ | 1.table = tt_content | ||
+ | 1.select { | ||
+ | pidInList = this | ||
+ | orderBy = sorting | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===Menu generation=== | ||
+ | \\How to generate a menu dynamically, | ||
+ | |||
+ | ==HMENU== | ||
+ | Is not a renderable Typo3 objects, but one which contains menuitems by levels 1,2,3 ... | ||
+ | To each level a concrete menu like TMENU or GMENU can be attached. | ||
+ | |||
+ | ==IFSUB== | ||
+ | There are items, which | ||
+ | |||
+ | |||
+ | === Change Menu entries, add custom tags === | ||
+ | //To do this write a php function function($I, | ||
+ | |||
+ | ==1. Creating the function is described below== | ||
+ | |||
+ | ==2. Including of the created file with the function from the Backend works as following== | ||
+ | < | ||
+ | # lib to sort out emty-pages menu-links. | ||
+ | includeLibs.noemptymenuitems = fileadmin/ | ||
+ | </ | ||
+ | |||
+ | ==3. The defined function will be used inside of the menu objects as folowing== | ||
+ | < | ||
+ | FIRSTNAV = HMENU | ||
+ | FIRSTNAV.TMENU.1.IProcFunc = user_function_skipMenuLinksToEmptyPages | ||
+ | FIRSTNAV.TMENU.2.IProcFunc = user_function_skipMenuLinksToEmptyPages | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ==Example of the menu changing function:== | ||
+ | checks whether there is any content on the site | ||
+ | * if yes - menuentry is displayed with a link to thesite | ||
+ | * if not - then | ||
+ | | ||
+ | | ||
+ | |||
+ | < | ||
+ | <?php | ||
+ | /** | ||
+ | * Used in the menu item state example of the " | ||
+ | * | ||
+ | * @param array The menu item array, $this->I (in the parent object) | ||
+ | * @param array TypoScript configuration for the function. Notice that the property " | ||
+ | * @return array The processed $I array returned (and stored in $this->I of the parent object again) | ||
+ | * @see tslib_menu:: | ||
+ | */ | ||
+ | function user_function_skipMenuLinksToEmptyPages($I, | ||
+ | $muid = $I[' | ||
+ | $firstLinkTag = $I[' | ||
+ | $wraper = $I[' | ||
+ | |||
+ | //check whether the site with the current pid is not empty | ||
+ | $query = " | ||
+ | $res = $GLOBALS[' | ||
+ | $rowarr = mysql_fetch_array($res); | ||
+ | | ||
+ | //if the page, which current menuitem links is empty | ||
+ | if($rowarr==false){ | ||
+ | //the current page is empty - hide its links | ||
+ | |||
+ | //check if the link has a class=" | ||
+ | if( strpos($firstLinkTag, | ||
+ | // | ||
+ | $I[' | ||
+ | $I[' | ||
+ | |||
+ | }else if(strpos($wraper, | ||
+ | //exchange link by span, for this empty menuitem with subitems in the second menu | ||
+ | $I[' | ||
+ | $I[' | ||
+ | } | ||
+ | } | ||
+ | return $I; | ||
+ | } | ||
+ | ?> | ||
+ | </ | ||
+ | ===== Extension development ===== | ||
+ | |||
+ | * Placing custom modules - and customized material in general! - in the **typo3conf/ | ||
+ | * Always prepend your user defined modules with a “u” like in “uPhotomarathon” | ||
+ | |||
+ | ==Including something into the head of a plugin page, like CSS or JS == | ||
+ | |||
+ | **$this-> | ||
+ | < | ||
+ | $GLOBALS[' | ||
+ | </ | ||
+ | |||
+ | == API for extension development == | ||
+ | |||
+ | ^Command used in class.tx_bibtexbrowser_pi1.php ^ what id does^ | ||
+ | |t3lib_extMgm:: | ||
+ | |t3lib_extMgm:: | ||
+ | |t3lib_extMgm:: | ||
+ | |function isLoaded($key, | ||
+ | |$GLOBALS[" | ||
+ | |$GLOBALS[' | ||
+ | |$GLOBALS[' | ||
+ | |||
+ | == Flexfields == | ||
+ | Flexfields define the backend-GUI, | ||
+ | Flexfields are html fields, defined in an xml file which is normally named // | ||
+ | ===== Localization (l10n) ===== | ||
+ | |||
+ | 1. First install new website language by choosing the page-root (earth or typo3 symbol) in the **Web > List** module and clicking the **add new record > Website Language**. | ||
+ | Do not add the default language. | ||
+ | |||
+ | |||
+ | {{ http:// | ||
+ | |||
+ | {{ http:// | ||
+ | |||
+ | 2. Add the following to the localconf.php file to enforce utf-8 encoding in the backend. | ||
+ | |||
+ | < | ||
+ | // For backend charset | ||
+ | $TYPO3_CONF_VARS[' | ||
+ | </ | ||
+ | |||
+ | 3. add something like that to the typoscript template: | ||
+ | < | ||
+ | # language | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | # | ||
+ | |||
+ | # deutsch | ||
+ | | ||
+ | | ||
+ | #typo internal code | ||
+ | language = de | ||
+ | | ||
+ | #country code, win:" | ||
+ | locale_all = de_DE | ||
+ | | ||
+ | #set xml:lang manually | ||
+ | htmlTag_langKey = de | ||
+ | | ||
+ | #internal id of this language, 0 default | ||
+ | sys_language_uid = 0 | ||
+ | } | ||
+ | | ||
+ | |||
+ | # english | ||
+ | | ||
+ | | ||
+ | language = en | ||
+ | locale_all = en_US | ||
+ | htmlTag_langKey = en | ||
+ | sys_language_uid = 1 | ||
+ | treeLevel = 1 | ||
+ | } | ||
+ | | ||
+ | </ | ||
+ | |||
+ | and the following to generate a language menu | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | # deutsch und englisch | ||
+ | special = language | ||
+ | special.value = 0,1 | ||
+ | 1 = TMENU | ||
+ | 1 { | ||
+ | NO = 1 | ||
+ | NO.stdWrap.cObject = TEXT | ||
+ | NO.stdWrap.cObject { | ||
+ | value = Deutsch || Englisch | ||
+ | | ||
+ | } | ||
+ | ACT < .NO | ||
+ | ACT.doNotLinkIt=1 | ||
+ | ACT.stdWrap.cObject { | ||
+ | value = DEUTSCH || Englisch | ||
+ | | ||
+ | } | ||
+ | USERDEF1 < .NO | ||
+ | USERDEF1.stdWrap.cObject { | ||
+ | value = DEUTSCH || - | ||
+ | | ||
+ | } | ||
+ | USERDEF2 < .NO | ||
+ | USERDEF2.stdWrap.cObject { | ||
+ | value = (DEUTSCH) || Englisch | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | 4. Add the following to the **User TSConfig** for default language to be named and displayed with a flag and a name (here " | ||
+ | |||
+ | < | ||
+ | #default language label in backend | ||
+ | mod.SHARED.defaultLanguageLabel=Deutsch | ||
+ | |||
+ | #default language flag file in gfx/flags/ | ||
+ | mod.SHARED.defaultLanguageFlag=de.gif | ||
+ | </ | ||
+ | |||
+ | {{ http:// | ||
+ | |||
+ | {{ http:// | ||
+ | |||
+ | |||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | ** If there are double content entries, after localization - add the following to the CONTENT TypoScript, to filter thecontent: ** | ||
+ | < | ||
+ | select.languageField = sys_language_uid | ||
+ | </ | ||
+ | e.g | ||
+ | < | ||
+ | |||
+ | | ||
+ | | ||
+ | table = tt_content | ||
+ | select.orderBy = sorting | ||
+ | select.where = colPos = 0 | ||
+ | select.languageField = sys_language_uid | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | 5. To activate the browser-language detection install the extension [[http:// | ||
+ | |||
+ | When both extensions **rlmp_language_detection** and **static_info_tables** are installed, configure the default language in the Teplate Setup (e.g. german): | ||
+ | < | ||
+ | # language in rlmp_language_detection plugin | ||
+ | plugin.tx_rlmplanguagedetection_pi1 { | ||
+ | | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | **ATTENTION: | ||
+ | |||
+ | {{ http:// | ||
+ | |||
+ | ===== Speaking URL ===== | ||
+ | The URL can be configured to be more human and search engine friendly by using the **realurl** extension. | ||
+ | The following configuration is for multiple languages: Language 0 is German, Language 1 is English. | ||
+ | |||
+ | ==1. Extension == | ||
+ | Install the **realurl** extension | ||
+ | |||
+ | ==2. Typoscript template == | ||
+ | Add the following typoscript to the template. | ||
+ | < | ||
+ | ## REALURL ## | ||
+ | config { | ||
+ | simulateStaticDocuments = 0 | ||
+ | tx_realurl_enable = 1 | ||
+ | } | ||
+ | config.baseURL = http:// | ||
+ | [globalString = ENV: | ||
+ | config.baseURL = http:// | ||
+ | [globalString = ENV: | ||
+ | config.baseURL = http:// | ||
+ | [global] | ||
+ | </ | ||
+ | |||
+ | ==3. Edit ext_localconf.php== | ||
+ | Configure the extension in the **\typo3conf\ext\realurl\ext_localconf.php** | ||
+ | < | ||
+ | $TYPO3_CONF_VARS[' | ||
+ | ' | ||
+ | ' | ||
+ | ), | ||
+ | ' | ||
+ | array( | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ), | ||
+ | ' | ||
+ | # ' | ||
+ | ), | ||
+ | array( | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ), | ||
+ | ' | ||
+ | ), | ||
+ | ), | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ) | ||
+ | ), | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ) | ||
+ | ), | ||
+ | ), | ||
+ | ), | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | array( | ||
+ | ' | ||
+ | ), | ||
+ | array( | ||
+ | ' | ||
+ | ), | ||
+ | ), | ||
+ | ' | ||
+ | array( | ||
+ | ' | ||
+ | ), | ||
+ | ), | ||
+ | ' | ||
+ | array( | ||
+ | ' | ||
+ | ), | ||
+ | ), | ||
+ | ), | ||
+ | ), | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ), | ||
+ | ); | ||
+ | </ | ||
+ | |||
+ | ==4. htaccess== | ||
+ | Add the following configuration to the **.htaccess** in the root folder of typo3. | ||
+ | |||
+ | < | ||
+ | RewriteEngine On | ||
+ | |||
+ | RewriteRule ^typo3$ - [L] | ||
+ | RewriteRule ^typo3/.*$ - [L] | ||
+ | RewriteCond %{REQUEST_FILENAME} !-f | ||
+ | RewriteCond %{REQUEST_FILENAME} !-d | ||
+ | RewriteCond %{REQUEST_FILENAME} !-l | ||
+ | RewriteRule .* index.php | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== Backend customization by TYPOSCRIPT ===== | ||
+ | Here the Backend customizations are done for a specific user inside of the TSConfig: | ||
+ | |||
+ | {{ http:// | ||
+ | |||
+ | {{ http:// | ||
+ | |||
+ | == Hide columns == | ||
+ | Left 1 | ||
+ | Normal 0 | ||
+ | Right 2 | ||
+ | Border 3 | ||
+ | |||
+ | < | ||
+ | #shows only columns Normal and Right | ||
+ | mod.SHARED.colPos_list = 0,2 | ||
+ | </ | ||
+ | |||
+ | == Language == | ||
+ | If multiple languages are used on the side - cusomize the default language | ||
+ | |||
+ | < | ||
+ | #default language label in backend | ||
+ | mod.SHARED.defaultLanguageLabel=Deutsch | ||
+ | |||
+ | #default language flag file in gfx/flags/ | ||
+ | mod.SHARED.defaultLanguageFlag=de.gif | ||
+ | </ | ||
+ | |||
+ | == Allow recursive deleting of pages== | ||
+ | If multiple languages are used on the side - cusomize the default language | ||
+ | |||
+ | < | ||
+ | setup.override.recursiveDelete=1 | ||
+ | </ | ||
+ | |||
+ | ===== Backend customization by BACKEND LAYOUT ===== | ||
+ | |||
+ | Since Typo 4.5 it is possible to customize the column names and positions in the backend: | ||
+ | |||
+ | 1. First create a new Backend column Layout: | ||
+ | |||
+ | by choosing the root page **Web> | ||
+ | |||
+ | {{ http:// | ||
+ | |||
+ | and adding a new **Backend Layout** | ||
+ | |||
+ | {{ http:// | ||
+ | |||
+ | by choosing a Title and clicking the Wizard button | ||
+ | |||
+ | {{ http:// | ||
+ | |||
+ | and creating a custom column layout, | ||
+ | by using the following column numbers: | ||
+ | |||
+ | ^Column^ Column Number^ | ||
+ | |NORMAL|0| | ||
+ | |LEFT|1| | ||
+ | |RIGHT|2| | ||
+ | |BORDER|3| | ||
+ | |||
+ | {{ http:// | ||
+ | |||
+ | finally add th layout to the chosen page in the **web> | ||
+ | |||
+ | {{ http:// | ||
+ | |||
+ | {{ http:// | ||
+ | |||
+ | so that the backend will look as following, if you defined a top column and a bottom column | ||
+ | |||
+ | {{ http:// | ||
+ | |||
+ | |||
+ | |||
+ | ===== localconf.php ===== | ||
+ | In the file localconf.php, | ||
+ | |||
+ | ==Set the encoding== | ||
+ | < | ||
+ | // For backend charset | ||
+ | $TYPO3_CONF_VARS[' | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Search ===== | ||
+ | |||
+ | |||
+ | |||
+ | === Indexed Search (indexed_search) === | ||
+ | Indexed search is an extension, which can check the site content and provide a searchbox. It needs severalt extensions to work fine: | ||
+ | - // | ||
+ | - //crawler// | ||
+ | - // | ||
+ | Install them all and configure them as given below. | ||
+ | |||
+ | |||
+ | == 1. Search results site == | ||
+ | Create a special page, where the search results will be displayed. | ||
+ | Check it's pid. | ||
+ | Assuming the pid is 133. | ||
+ | You wil need this below. | ||
+ | Hide the result page in the menu, so that it is not listed as a menu entry. | ||
+ | |||
+ | == 2. Add the results plugin to the results site == | ||
+ | |||
+ | Add the **general plugin** | ||
+ | |||
+ | {{http:// | ||
+ | |||
+ | {{http:// | ||
+ | |||
+ | == 3. new search results template == | ||
+ | Create a new search results template. Examples can be found in // \typo3\sysext\indexed_search\pi\ // | ||
+ | Assuming that a new template is named \\ fileadmin/ | ||
+ | You wil need this below. | ||
+ | |||
+ | |||
+ | |||
+ | == 3. Entry into the main template== | ||
+ | Use the pid and the path to the template. | ||
+ | |||
+ | < | ||
+ | # search - enable indexed search | ||
+ | | ||
+ | # search - set the search-result page id | ||
+ | | ||
+ | # set a new template for search results | ||
+ | | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | == 3. Retrieve the information from your site by using crawler== | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === Site crawler (crawler) === | ||
+ | |||
+ | == 1. Create an index configuration == | ||
+ | Use the **List** module on the root page. Click "Add new record" | ||
+ | {{http:// | ||
+ | |||
+ | {{http:// | ||
+ | |||
+ | == 2. Crawl the site == | ||
+ | Use the **Info** module on the page you want to crawl (root? | ||
+ | Choose the **Site crawler** in the upper dropdown. | ||
+ | Choose the crawler configuration, | ||
+ | Click crawl site to start crawling. | ||
+ | |||
+ | {{http:// | ||
+ | |||
+ | == 3. Add a backend user == | ||
+ | The crawler needs a backend user named " | ||
+ | Add the user by using the **User Admin** module. | ||
+ | The password is not important. | ||
+ | |||
+ | == 3. Add searchbox == | ||
+ | The searchbox can be added by using the **macina_searchbox** extension. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === Searchbox (macina_searchbox) === | ||
+ | To add the searchbox somewhere into the design template. | ||
+ | |||
+ | == 1. Add a new section somewhere into the template == | ||
+ | < | ||
+ | <!-- ### | ||
+ | </ | ||
+ | |||
+ | == 2. Edit the the template to replace teh section by the searchbox == | ||
+ | < | ||
+ | | ||
+ | | ||
+ | </ |