From 4eb6b37363da2c1597bf7bfb7de943543715b45f Mon Sep 17 00:00:00 2001 From: Oldperl <44996956+oldperl@users.noreply.github.com> Date: Fri, 13 Jan 2017 12:56:28 +0000 Subject: [PATCH] remove deprecated docs folder --- docs/techref/backend/backend.autoloader.html | 213 ------- .../techref/backend/backend.customizing.1.gif | Bin 3358 -> 0 bytes docs/techref/backend/backend.customizing.html | 537 ------------------ docs/techref/backend/backend.localconfig.html | 60 -- docs/techref/backend/backend.plugauth.html | 85 --- docs/techref/backend/conlogo.gif | Bin 1325 -> 0 bytes docs/techref/frontend/conlogo.gif | Bin 5334 -> 0 bytes .../frontend/frontend.customizing.html | 120 ---- .../frontend/frontend.permissions.html | 118 ---- .../frontend.protectedcategories.html | 104 ---- docs/techref/frontend/frontend.session.html | 118 ---- docs/techref/modules/conlogo.gif | Bin 5334 -> 0 bytes docs/techref/modules/module.login.html | 148 ----- docs/techref/modules/output-gen.jpg | Bin 14270 -> 0 bytes docs/techref/modules/writing.modules.html | 172 ------ .../plugins/Contenido Extension Chainer.pdf | Bin 57226 -> 0 bytes docs/techref/plugins/conlogo.gif | Bin 5334 -> 0 bytes docs/techref/plugins/plugin.config.html | 119 ---- docs/translators/translating.doc | Bin 46080 -> 0 bytes 19 files changed, 1794 deletions(-) delete mode 100644 docs/techref/backend/backend.autoloader.html delete mode 100644 docs/techref/backend/backend.customizing.1.gif delete mode 100644 docs/techref/backend/backend.customizing.html delete mode 100644 docs/techref/backend/backend.localconfig.html delete mode 100644 docs/techref/backend/backend.plugauth.html delete mode 100644 docs/techref/backend/conlogo.gif delete mode 100644 docs/techref/frontend/conlogo.gif delete mode 100644 docs/techref/frontend/frontend.customizing.html delete mode 100644 docs/techref/frontend/frontend.permissions.html delete mode 100644 docs/techref/frontend/frontend.protectedcategories.html delete mode 100644 docs/techref/frontend/frontend.session.html delete mode 100644 docs/techref/modules/conlogo.gif delete mode 100644 docs/techref/modules/module.login.html delete mode 100644 docs/techref/modules/output-gen.jpg delete mode 100644 docs/techref/modules/writing.modules.html delete mode 100644 docs/techref/plugins/Contenido Extension Chainer.pdf delete mode 100644 docs/techref/plugins/conlogo.gif delete mode 100644 docs/techref/plugins/plugin.config.html delete mode 100644 docs/translators/translating.doc diff --git a/docs/techref/backend/backend.autoloader.html b/docs/techref/backend/backend.autoloader.html deleted file mode 100644 index 3fd1966..0000000 --- a/docs/techref/backend/backend.autoloader.html +++ /dev/null @@ -1,213 +0,0 @@ - - -
- -Contenido provides autoloading for source files of classes/interfaces which are
-delivered by a Contenido package.
-The main goal of autoloading is to reduce the list of needed includes which is usually
-at the beginning of scripts. By implementing a autoloader, the PHP engine has the
-possibility to load the file while trying to use a class/interface.
The Contenido autoloader will be initialized during the application startup process. -The autoloading solution in Contenido uses the class map strategy. It uses a generated -class map configuration file, which is available inside contenido/includes/ folder.
-contenido/includes/config.autoloader.php-
Each class type name is pointed to a file which contains the implementation of the
-required class type. By trying to use a class type, the autoloader will load the
-needed file if not done before.
-
-Example:
-Usually you have to ensure that a class file is already loaded by using include/require
-statements or by using Contenido's cInclude function:
-cInclude('classes', 'class.article.php'); -$oArt = new Article(); -- -
With a autoloader the manually loading is not required anymore.
--$oArt = new Article(); --
At the moment all available classes/interfaces inside following directories -of a Contenido installation:
--contenido/classes/ --
NOTE:
-The autoloader doesn't handle loading of files which don't belong to the Contenido package.
-This means, additional added files (e. g. user defined classes/libraries) aren't
-automatically available for the autoloader. Read the section below, if you want to
-provide autoloading of additional class type files.
Don't edit the class map configuration manually, the next update could overwrite -your changes. The autoloading is extendable by adding a additional user defined class map -file inside the "includes" folder, which could contain further class map settings or -could overwrite settings of main class map file.
-contenido/includes/config.autoloader.local.php-
This file will not be overwritten during a update.
-
-The content of the user defined file should have the following structure:
-<?php -return array( - '{classname_1}' => '{path_to_classfile_1}', - '{classname_2}' => '{path_to_classfile_2}', - '{classname_3}' => '{path_to_classfile_3}', -); --
Where {classname_X} is the name of the class/interface and {path_to_classfile_X} is the -path (from Contenido installation folder) to the file which contains the implementation of the class/interface.
- -
Example:
-Let's assume that Contenido is installed in folder /var/www/ which contains a
-additional library "myLib" (full path: /var/www/myLib/) with a class "myFoobarClass"
-in file "class.myfoobarclass.php" (full path: /var/www/myLib/class.myfoobarclass.php).
-Then the user defined class map file should contain a entry for this like:
-<?php -return array( - ... - 'myFoobarClass' => 'myLib/class.myfoobarclass.php', - ... -); --
If you don't want to maintain the user defined class map configuration manually, then
-you may let a copy of the command line script (which is adapted to your requirements)
-contenido/tools/create_autoloader_cfg.php
-to do the job.
-
-Do following steps to achieve this:
$context->pathsToParse = array( - $context->contenidoInstallPath . '/my_path/', - $context->contenidoInstallPath . '/my_other_path/', -); --
// class type finder options -$context->options = array( - // list of directories which are to exclude from parsing (case insensitive) - 'excludeDirs' => array('.svn'), - // list of files which are to exclude from parsing (case insensitive), also possible regex patterns like /^~*.\.php$/ - 'excludeFiles' => array(), - // list of file extensions to parse (case insensitive) - 'extensionsToParse' => '.php', - 'enableDebug' => false, -); --
By using the Contenido autoloader it's possible to extend/overwrite Contenido core classes - (except classes inside conlib directory) without changing the core files.
-Let's assume, you want to use your own Template class in Modules, but everything should
- still be downwards compatible.
-
-Do following steps to achieve this:
-NOTE:
-There is one main disadvantage by using this way of extending the Contenido core.
-Each time after an update of your Contenido installation it's strongly recommend
-to check your user defined implementations against changes in original Contenido
-core files and, if applicable, to adapt your files to those changes.
41ej5C38fRTBE0hN}Qn3jJ(CJ>smY61tQD|m3=E?o*2 zMr=4ST| 9|~&!P{9{=`}INXcBUJ_>yK>Ekh$R54+-v{h@?uV697qzUvV&n8UE`ZTID zZCagY&9YtE7Vg}*NuG91wRLaUOMO@Vt+dxK;lYSqj)f~yDpHVbKL%ZERI*wnZtYS| z+VO4Wju)K<0(|%|)Bp(qPbJNjHEPqR39r5v`1R@3u=~zFDV29?m$gyvE=?SF;^W>H z%f)M#EOWD)n?> Sv-c{Dn4>P)DKV5J4^8)t^WgO=B5$pxsE(a*(a)V<4lIsGD(CP1qHP6xvs$ zJxhkiVSPoSha_+t;`ZcwOP;7@EGbGdhCI~O;b4>)CJ7;hwplnKK7KhVq$X0LsnU}V zYPjW{vUKSsHQ3k@OkrkrC@6+*2FfIy;$5j|iDk}ND4mPqDd{SD?rA9+e`YeJaItZE zo2H<0Wt^w^w5io@qY`;)dtY_xDWph_I_a#XRC?*HW0d5Ie2LO3Cn~)9D(tYK*oy11 zUg*k7utxgIY$(qXEA6ziJc8{1wYdgK?Y7)@dz`V@h6{|g-j-|bx%+@C?z-~;$?m)G z#w+i o33R{(G#x0vBxX!3f7gBX@lyj4i V1fuv z?U{cCO1CzEbff*B+1U1WqsL*(p)=8duNBf!fmd`bLz%spQDdP=HaOFWd$f3u8WoLY@EocfBjDkcD?3pp0f0JmH08UAQ9(_^gP- z-%SyH>wBLRgy_5flL1kPMg$^)=Ej&I;xArG?4R`j_(Uj*$%RFW+5 Q~s$&m#eLlMJ04Ss3~B;y?TIDx5d09^xR69Z_+GC-`9 za73jl0im~vkaCq^I3+BR1-)6?(sgyb )~4KARBFdzKB0@}wu(4hP9YhOjBMbf_gS8Bs!3?S2o1 zBi6Q-wNSGEZlKF_Vfzj$u9Derq_phf7dN*-BKi=FHq>A9Dw0nVwlX5()aKtF$ T CH@r}M+t{M{@+ZUQjqGy@wc6=Yw}4T)6Qm3yh)jK2 z#mXo!Z=&lV`v}ycwe8T1Z75?*KPW~wQZ<8CrQuaCYBj9MF@+xmD?vp%Rvf)gt~H$l z+| )-+1$UKxGaY1mE*9n zuJpJ6hox&8>-xvYp7CFCM4?xWdt4<*v5bNYqjD$U&~utv-?NTmL8qGG?|Nz-2Ce z?>aj7TGzYq3NLX(o4xX4?`T2wqk3}`p!CkLwMTVu9u;ZYyHGHrWT0e(gX$tpMzS+} zoiGC_%3DdY7mi&OrHTnGPy>_Gz`=#FH*d;f857vX2*k0D18d_K@A$_q{;FVo4CEq% zHK*4kvXPg3P9$4X$xM#&IE8# cgIwAL%hqUBOm#&sWx$3mlBEt=st%i~SQA(9 zM~OpfQhCZ@1k+D;yk1&r*SL{h6BUhTFdYL>w}4O9SjPl>D`j*Tw;DQED207BM%(ya zJxJGkj)l&A7uy^LwpG8Kp3zy?9b; R n{YGA(1#dy_h$k7=pCOD;7oyB=m5T4_l_?{Gh!UaQ4R8Y^Td$_ zkBqJ>8C`@|uqP`gbZ%{3L!s`D<{n@3P2N3VJ;V6o`K}4MJz{dAd%V&F$DO_Z;|Igq zVb-ah>u $KIYg {*>r(mBWWMvKze?yoQ~K1;J`}C*Ozdm_`+ehnGYMvZ z@|*ws=uf};*U$d;yZ`<0kN^4$fCTy5|Ni*Tzy9Z6|NZ;_{{R?(0yu#G1o(dRmj&Xd zOyq|E4A_7U_<#@?ff6`@6j*^4c!3xQfd_DaMqmIL_< Qgk%_nY1oEt_=a#e zh9 9Uxg==VrdDw?kxQBiih=MqXe>jKZLS8-QE^J7MjQE3q*octWgO3=A zlvs&@NQQKXh 3?dc%yZPrZ|ZIqu7dm_=>PNi?pbQ zhR6+d_)e@?i+CuDyy%9$_>00gi>Qc;n)q{^IE=jrg`KF3z{rfw7>&eui&4;p#k7mk zD2Bn9jd}=;-1v=^Sd7(}i%ph{;HZt>c#dGWjq2Er&p3nRXinJZj#J2v^r(dPc#rzn zjqrGkV%LGqxQ|Ylj{<3n^%sx@nUGc}jv?iby%z_IsF3)WjuJVM2U(FAS&!7%kg7Oj z=9rO0NRS|TgCaSSCdrUbV2#2wk0!~3B?*!**^(HElBCs nUqSoluX%_PWhBj8I@8wl~mc3P*|0lSecbtxs_aLmG#$^U>TNT zIhJHumS!oH8<~>vSWW~}0B-q~a2c0!IhS- fo oYxzx(rkSjXN|1SGtr?q@d789Yo3?qIxS5-}xtqMH10etaI~C`LssI20 diff --git a/docs/techref/backend/backend.customizing.html b/docs/techref/backend/backend.customizing.html deleted file mode 100644 index 91ad0f8..0000000 --- a/docs/techref/backend/backend.customizing.html +++ /dev/null @@ -1,537 +0,0 @@ - - - - - Contenido - Backend customizing - - - - -- --Backend customizing (V. 4.8.x)
-
- -Introduction
-Backend customizing is a mechanism to customize various parameters of -the backend. There are not many settings you can do, as this mechanism -is relatively new. However, this mechanism will be used more and more -in the future.
-
-How it works
-Customizing Contenido settings is very easy and can be done via the -group or user customizing settings. Here's an example for the user -customizing:
-
-
-
-Important: User settings have precendence before group settings. User -settings always override group settings. If the user is added to more -than one group, the result is undefined. Make sure that your groups -don't override each other.
-
-Common parameters
-- -
-- -Area/Type -Property -Value (Description) -Applies to -- -backend -currentlogintime -Date and Time when this session has been started (automatically set by the backend) -Users -- -backend -lastlogintime -Date and Time when the last session was started (automatically set by the backend) -Users -- -backend -preferred_idclient -ID of the client which should be selected after backend login -System, Clients, Groups, Users -- -backend -leftframewidth -Defines the width of the left frame. Standard - value is 250. -System, Clients, Group, Users -- -backend -small-navigation -(true, false): If true, a small navigation is shown. Default: false -System, Clients, Groups, Users -- -articles -show-new-window-checkbox -- (true, false): If true, show "new window" checkbox for redirects in article properties. - Note: If a redirect has been specified, the page is redirected to the new URL using an html - page header. As header redirects can't open new windows, this setting is only useful, - if a navigation module is used, which mentions the "open in new window" setting and - adds a ′target="_blank"′ to the link, if necessary. Default: false - -System, Clients, Groups, Users -- -cms_img -directory-height -Height of the directory lister in rows, default 5 -System, Groups, Users -- -cms_img -directory-width -Width of the directory lister in pixels, default 300 -System, Groups, Users -- -cms_img -file-height -Height of the file lister in rows, default 5 -System, Groups, Users -- -cms_img -file-width -Width of the file lister in pixels, default 300 -System, Groups, Users -- -cms_img -description-height -Height of the description box in rows, default 5 -System, Groups, Users -- -cms_img -description-width -Width of the description box in characters, default 70 -System, Groups, Users -- -cms_img -preview-height -Height of the preview area in pixels, default 400 -System, Groups, Users -- -cms_img -preview-width -Width of the preview window in pixels, default 600 -System, Groups, Users -- -imagemagick -available -Set "1" if ImageMagick is available on your server to receive best results when resizing images -System, Groups, Users -- -modules -java-edit -Enable the java module editor -System, Groups, Users -- -modules -edit-with-tabs -(true, false) If set to "true" you can use the <tab> key to insert tabs in the input and output code areas (IE 6/7, FF 1.5/2). Default: false -System, Clients, Groups, Users -- -modules -disable-history -(true, false) If true, don't use the module history. Default: false -System, Clients, Groups, Users -- -modules -storeasfiles -Defines if Contenido should store modules as text files. THIS IS HIGHLY EXPERIMENTAL, ONLY USE IF YOU KNOW WHAT YOU ARE DOING! Default off. -System -- -modules -loadfromfiles -Defines if Contenido should load modules as text files. THIS IS HIGHLY EXPERIMENTAL, ONLY USE IF YOU KNOW WHAT YOU ARE DOING! Default off. -System -- -modules -force-menu-check -If system/modulecheck is enabled, force module check while module list will be generated (instead of using database information). Default $quot;false$quot;. -System, Clients, Groups, Users -- -system -modulecheck -if set to "false" (as string), modules aren't tested for syntax errors (needed for older PHP versions) -System -- -system -languageorder -If set to "name", languages in the drop-down (top right) will be shown ordered by name, - if not specified or set to something else, languages will be ordered by language id (default) -System, Clients, Groups, Users -- -system -multiassign -If false, don't allow multi assignments for articles. -System, Clients -- -layout -htmlvalidator -(true, false): If true, use the HTML validator. Default: true -System, Groups, Users -- -newsletter -option-cronjob-available -(true, false): If true, then a newsletter - option can be activated to send the newsletter using cron jobs. Note, that - this option should only be used, if a real cron service is available - (do not use the Contenido built-in pseudo cron service). Additionally, - note, that there is a send job file available in the contenido/cronjobs - folder, but it hasn't been added to the cron job list - just generate - a real cron job on your server running this file. Default: false -System, Clients, Users -- -newsletter -disable-rn-replacement -(true, false): If true, "\r\n" will not - be replaced by just "\n" to prevent double lines in mails. This may be - a good idea on Windows-Servers. Usually, use the default setting. Default: false -System -- -newsletter -remove_base_tag -(true, false): Usually every article contains a "e;base href"e; - tag. This is nice, as all links, URLs and sources can be relative and we can - move the client around, as we like. -
But there is a problem with anchors: They - only work, if the link to the anchor (on the same page) contains the URL of the - current article (e.g. "front_content.php?idart=77#MyAnchor"). This works - fine, if you are on the website, but not, if you use anchors in html newsletter - articles (as the mail doesn't has this URL).
If you like to use anchors in html - newsletters, set this setting to "true" and check everything twice, as - also all URLs and source path will be changed by Contenido code. Default: falseClient -- -newsletter -html_username -
html_passwordIf the frontend (the website) is proteced - using .htaccess (username/password), you have to specify html_username and - html_password to be able to send html newsletters (as html newsletters - are just usual articles). Default: empty or not specified -Client -- -frontendusers -pluginsearch -(true, false): If true, the frontend users - menu also searches trough plugins. However, searching trough plugins - have a huge performance inpact on the list. If you have alot of frontend - users, set this to false to disable this function. Default: true -System, Clients, Users -- -frontendusers -pluginsearch_valid_plugins -If pluginsearch is set to true, you can hereby - limit the plugins to search over. This property must be a comma-separated list - (no whitespaces) of all plugins that should be used for pluginsearch. - All other plugins will be skipped to improve performance. -System, Clients, Users -- -generator -xhtml -(true, false): Defines if the tags generated by Contenido - should be XHTML compliant. WARNING: This does not alter the HTML code - in your layouts and modules! You have to revise your modules and layouts - to be XHTML compliant. Default: false. -System, Clients -- -generator -basehref -(true, false): Defines if Contenido should automatically - insert a base href tag. Default: true. -System, Clients -- -edit_area -activated -(true, false): Defines if syntax highlighting editor is used in backend for modul, js, css and html code Default: true. -System, Clients, Groups, Users -- -system -insight_editing_activated -(true, false): Defines if insight editing is used in article editor -System, Clients, Groups, Users -- -maintenance -mode -(disabled, enabled): In maintenance mode, only sysadmins are allowed to login into contenido backend. Default: disabled -System -- -pw_request -enable -(true, false): Property definies if contanido is allowed to generate new passwords for backenduser and submits them via mail. Default: true -System -- -system -mail_host -Host which is used for sending system mails (PW-Request). Default: localhost -System -- -system -mail_sender -Sender mail-adress of Contenido Systemmails. (PW-Request). Default: info@contenido.org -System -- -system -mail_sender_name -Sender name of Contenido Systemmails. (PW-Request). Default: Contenido Backend -System -- -update -check -(true, false): Update checker notifies sysadmins, if there are new updates for contenido on contenido org. Default: false -System -- - -update -news_feed -(true, false): Update RSS News notifies sysadmins, about news on contenido org and security issues. Default: false -System -
- -tinyMCE-related Parameters
-Starting with Contenido V4.6.16 all tinyMCE settings which may be specified for tinyMCE -and the plugins may be specified as system, client, group or user setting. Use "tinymce" -as type and as name the name of the parameter according to the tinyMCE documentation.
-
-These parameters can't be set using a setting: document_base_url, file_browser_callback
-
-- -
-- -tinymce -content_css -Defines the stylesheet to - include within tinyMCE (<= V4.6.15: wysiwyg/tinymce-stylesheet-file). -System, Groups, Users -- -tinymce -theme_advanced_styles -Defines the available styles in the tinyMCE style - dropdown (<= V4.6.15: wysiwyg/tinymce-styles) -System, Groups, Users -- -tinymce -width -Defines the width of tinyMCE (<= V4.6.15: wysiwyg/tinymce-width, - default 100%) -System, Groups, Users -- -tinymce -height -Defines the height if tinyMCE (<= V4.6.15: wysiwyg/tinymce-height, - default 480px) -System, Groups, Users -- -tinymce -contenido_height_html -Overrides the tinyMCE height when editing - the CMS_HTML element (<= V4.6.15: wysiwyg/tinymce-height-html) - -System, Groups, Users -- -tinymce -contenido_height_head -Overrides the tinyMCE height when editing - the CMS_HTMLHEAD element (<= V4.6.15: wysiwyg/tinymce-height-head) -System, Groups, Users -- -tinymce -contenido_gzip -If set to "true" use gzip compression. - The server has to provide the compression method. Default: "false" -System, Groups, Users -- -tinymce -contenido_toolbar_mode -Defines the tinyMCE toolbar mode (default - "full"). Available choices: full, simple, mini, custom (<= V4.6.15: wysiwyg/tinymce-toolbar-mode) -System, Groups, Users -- -tinymce -theme_advanced_buttons1 -
- theme_advanced_buttons2
- theme_advanced_buttons3Defines which items should be shown on - the first/second/third toolbar. Please have a look at the tinyMCE documentation to - find out which items you can use (<= V4.6.15: wysiwyg/tinymce-toolbar1/2/3). - Only used if the toolbar mode is "custom". -System, Groups, Users -- -tinymce -plugins -Defines which plugins should be loaded - (<= V4.6.15: wysiwyg/tinymce-plugins). Only used if the toolbar mode is "custom". -System, Groups, Users -- -tinymce -valid_elements -Defines which elements are allowed. See - tinyMCE documentation for more information (<= V4.6.15: wysiwyg/tinymce-valid-elements). -
- Default: +a[name|href|target|title],strong/b[class],em/i[class],strike[class],u[class], - p[dir|class|align],ol,ul,li,br,img[class|src|border=0|alt|title|hspace|vspace|width|height|align], - sub,sup,blockquote[dir|style],table[border=0|cellspacing|cellpadding|width|height|class|align], - tr[class|rowspan|width|height|align|valign],td[dir|class|colspan|rowspan|width|height|align|valign], - div[dir|class|align],span[class|align],pre[class|align],address[class|align],h1[dir|class|align], - h2[dir|class|align],h3[dir|class|align],h4[dir|class|align],h5[dir|class|align],h6[dir|class|align],hrSystem, Groups, Users -- -tinymce -extended_valid_elements -Defined which elements are allowed. These - elements are added to valid_elements (<= V4.6.15: wysiwyg/tinymce-extended-valid-elements). -
- Default: form[name|action|method],textarea[name|style|cols|rows],input[type|name|value|style|onclick], - a[name|href|target|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name], - hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]System, Groups, Users -- -tinymce -contenido_background_color -Defines the tinyMCE background color (any - valid CSS color value can be used). If you use an HTML hex color code, - also include the # sign before the color (e.g. #ffffff). Default is - "white" (<= V4.6.15: wysiwyg/tinymce-backgroundcolor). -System, Groups, Users -- -tinymce -convert_urls -(true, false): Defines, if URLs will be converted (e.g. to relative URLs) - at all. Please note, that URLs should be converted (e.g. for the time you may have to - change the domain or server path). Default: true (<= V4.6.15: wysiwyg/tinymce-convert-urls) -System, Clients, Groups, Users -- -tinymce -relative_urls -(true, false): If convert_urls is true, then - this setting specifies, if URLs will be converted to relative or absolute URLs. - Please note, that relative URLs should be used (e.g. for the time you may have to - change the domain or server path). Default: true (<= V4.6.15: wysiwyg/tinymce-relative-urls) -System, Clients, Groups, Users -- - -tinymce -contenido_lists -If specified, adds dropdown lists with links - for all articles (Insert Link popup window), images (Insert Image popup window) and/or - all media/flash files (Insert Media/Flash popup window). Valid values are: link, image, - media, flash. - Values have to be separated by a comma, e.g. "link,image". -
- Do not specify, if you have a lot of articles, images and/or media files - (<= V4.6.15: wysiwyg/tinymce-lists). -System, Groups, Users -
-Style-editor, Script-editor and HTML-editor related Parameters
-- -
-- -style_editor -wrap -{on, off} Default off. Defines the wrap attribute of the textarea to edit the CSS file. In case of 'on' the lines will be wraped. -System, Clients, Users -- -script_editor -wrap -{on, off} Default off. Defines the wrap attribute of the textarea to edit the JS file. -System, Clients, Users -- - -html_editor -wrap -{on, off} Default off. Defines the wrap attribute of the textarea to edit the HTML file. -System, Clients, Users -- - \ No newline at end of file diff --git a/docs/techref/backend/backend.localconfig.html b/docs/techref/backend/backend.localconfig.html deleted file mode 100644 index 39db568..0000000 --- a/docs/techref/backend/backend.localconfig.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - -
Contenido - Preserving local settings - - - - -- --Preserving local settings (V. 4.8.x)
-
-Introduction
-In the past, all modifications to Contenido's config.php file were lost -during an upgrade.
-
-Where? What? How?
-Contenido now includes a local config file - config.local.php. This -file isn't overwritten during an upgrade, so you can make your changes -there (recommended by now). It is included in the main config.php file. -Remember that the config.php file is usually the first file included; -don't do any tricks like database queries there.
-
-
-Frontend config?
-Yep, that's also possible. Just create a file "config.local.php" in the -frontend directory. The file will be executed just after the -front_content.php's init code (so you've got all variables and database -available), but just before the magic starts (like executing the -content code etc). Note that everything is available from the backend's -config.local.php also.
-
- - diff --git a/docs/techref/backend/backend.plugauth.html b/docs/techref/backend/backend.plugauth.html deleted file mode 100644 index 3770a59..0000000 --- a/docs/techref/backend/backend.plugauth.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - -Contenido - Pluggable Authentification for the Contenido -Backend - - - - -- --Pluggable Authentification for the Contenido Backend (V. 4.8.x)
-
- -Introduction
-Contenido introduces a new system to authenticate against external -sources (LDAP directories, for example).
-
-What does it do?
-Contenido Pluggable Authentification Modules (don't swap them around -with Linux PAM) makes it possible to authenticate via external sources -- and just authentification.
-How it works (authentification handler)
-To write your own authentification handler, you have to write a single -function which looks like this:
-
-
-function active_directory_auth ($username, $password)-
{
global $cfg;
if ($cfg['ldap']['server'] != "")
{
$ad = ldap_connect($cfg['ldap']['server']);
if ($ad)
{
ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3);
$bd = ldap_bind($ad, $username . $cfg['ldap']['suffix'], $password);
if (!$bd)
{
return false;
}
}
}
return true;
}
-If that function returns true, the mechanism knows that the login was -successful. After that, you have to register the function:
-
-register_auth_handler("active_directory_auth");-By registering the function, the login mechanism knows that it should -call "active_directory_auth" for certain users. Finally, you have to -include your new handler file (the recommended place is -config.local.php).
-
-The login mechanism knows that you want to use a registered auth -handler if the entry in the password field of the user equals a -registered auth handler; e.g. the user "test" has -"active_directory_auth" in his password field, thus the login mechanism -would use the "active_directory_auth" function to validate. The -password field has to be set using the sync script.
-
-Syncing with a remote source
-To make the authentification handler working, you have to "sync" your -users to Contenido. This means that each user needs to be created -and/or updated by a sync script (it's preferred to automate this using -a cronjob to ensure regular updates). The active directory example has -a sync script; you can modify it to fit your own needs.
-
-Remember that if you want your permissions syncronized using the sync -script, you are on your own - we recommend that you only sync users, -user-to-group relationships and groups and apply all rights to groups -to keep it simple.
-
- - diff --git a/docs/techref/backend/conlogo.gif b/docs/techref/backend/conlogo.gif deleted file mode 100644 index dd6bdf655293d82c54335f730f69e5e3f054b76a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1325 zcmV+|1=9LQNk%w1Vfp}20K@F%YarD|$w zOiWC~*yq#X>yNzMA^8LV00000EC2ui0Qvw>000I5ARvxpX`X1Ru59bRa4gSsZQppV z?|kq7z@TtQEE41ejEzhk3 4d03DO7v<4lprLwfOx44=fv%8_TzMHASp&vvK3C+$ACKDJ42oe!15!2KYB@xcw z;0Y(;3D+eP)YaxB-pwNI;VtOY63`_Q2;yBI$f^fJ5-bE5NHBmt5eY6790*|@i3b!G z27tg#1OkZ|NoWv=5dn#W5;xehNRTAP02~hgme8PZA%&3$EI_c}Fp7sr0t_@z7Hrkd z0Sp>YB88#=0R;*OEN~Fx0fdtVM@WELq2h=K93@sY33cFzh)_L>n0nFz%#r{ucHLkC zEXJ(>AW%S{L97&hs(OYxkck8&6b_Ce9ju@LjI0>-k)>)C0Aj7z)OHOZ!tF`16DD&Q zA(<;wwj(x7t`M061q+Rz;O+P69}L2<3%igUfPw^Y&>~bI$f4p!f)=C_tRMklRtf;% zC2$K4z~b5(!kK$I5VZ&ly9es)oR;7>4AiwFEJ(qegq9PpbI>pa80$|4T)kKj8+MBa z*#i_uA$lP4hgq@b7(tCafZj-4nSkE^ekf#C-AcSA*qv7;NCtrj91w&-2?i2)1q1JW z!axl5!DiSB8W3dH2`yc4LIeaM_dtv$EG8glXpP`t04tt=fp;c^Cn0wwga-{l7n+cO zidP)-9#Jk7P$FRjupn7Y4>5THb-^tu9*0`uNZ|-SLZuRsB$OEdG~A&%LW p&qZt18Mc=n?w3sUx( zl$DZ3LlA={fK>qim6nj`gp?K9Rio)C2`O5EqDm={md09zP$3GS%nJ^9s=xv)s7a~` zG_vSuswAxHrkopugP>Y=PAXpiq+^oMUjP%pI1p%H`gg?uz2+2yU{f-M4M7(mSfqy~ zsJS7tBRCr>egn0u0=17`OKYeA?C2r@Es rW1K4RP8BJ*p=k64!l-n=~n~u Q;!M~gm*!CXOP?L0b>`_NZ}ziVErc8zt_t4j(mW6Ej5FWhzAP` z^S$}MV7 T5RaRDtL?Rcf+>-njk|ZlCDojjFvXdKc+_ ot<^Rb*^8XbNlw~@$vELm;d7S`6VSK8`csLyvnGksB`Ded3$>& zCnpya6gXSvW@cvc`TR8onf&0B5fKqMj-NVpDkCGKr>CdBzMg~qoX9`zxN6_)X$6zX z92gjQHumcK@4r`5Q{!^EvO)QY6DP(-{w~PAxMRl-U#Fsd`}W1f#jRhx&)3&?@!QhT zqeuHX$9X*7rAwCr+zve)nhXpK{Cn!{K+p4S+qSJU-}}=~Kh4j7i3$-XM@!gj_R`|= z{{8!ZPHgz}@ymy~g|6FUZ)V ;N%r9b&6k?`)8gu!EOOqy z`Ot8>i|btEzUDw|_^B(Ghot8QzQ;?>NV=`{(u;B~JsX`aFTU!vPPo=MtL6M)j-aWc z ={r%)*V`RAYK&!5lE&c1v1 z?!$)g_ZTfc7o0RVs?fUq6XD&R_QQ(so9$$&`B1f+$R+)sS(m`Ax3!~bMN{5~?r+$c zQDNN>9c6q+cZuw3aoEH@QXSfw@ZINz>a$K!g2_{r)<;VA$2~f?{k-WGYj<+K!5*Cn zz7hH3hkqtQ?R*R~)&&j*w6;qp?^>_^RRT5MKWmy}wmG>t4!RuLFjMcAbFKB&m3ZPl z2lM;$<)fzF_0r0FT{niM(dVn%)@oY&H>IaEOu{2&+p2b{9;>Dq==@NhVbkl{z~s1f z9NK)Sx`ZXR{qw}0VauUlo0&& eqbT^srx4?Q3$>LxU{vT@hVKEz7Z9 z$sM)(n=Jm*Fl4YI%CjW(L4e^G6f5(ccwA6uGb77atqiI?es4{!d{;x-_aA|>BkKm` zq}^%Xpcj5GbIVKZ_+m1)a+Q<)aMktdmLc=_`}|_c` o#a@!1wj`kYSVfkLQ}S=VzyoBLRvO{}Q5ktM!k(KO$V$4z8%qUM-nZ za7A4Xo6T6yf2P=4nl^PJM!8jN>pNW)YGsXaWtjG4;AD$mfJ|e67LvAt!O`DJ4>Tm- z8I+r4Nb2ZyexWVuxz@7gp}m`YV20ZTz}DJ4+R`J!nhd2BTn+QgVA}1^-CUycMs0_R z_O`NL=Y15?f=^djZOYn !PJ)jTtLts9e;nK6aW?sD4(J=?l0h0iqtJ`_Tx zJ*!ww=4Br3js>ch)q*?skKYYUJ?c{;^|lGbZ|z4LlfG@1dzMguh(bvF$88k5kQ#F7 zBG llxaYh98;0=IQch`20_KVL|n^=%tQY5Ob}#juB*&|tpOpD&*DF04Uf zuxP!J;^GNqmV>&w1Tskdg=P1X#HYxT0PTuRRdu4u)`?9h2nmJ+JYZ-DOgvUyI4*2T zEz+oz!@cA^=3)oe!&hi>Ujphcl`}5j-pKzDb?s1g5&doCQ94cwdCc)wF&CQb5Z8Go z5L$X=lWC70@D^w55S76oR;US=y66QTxK?B0AvQC16dl)=dwawO+=UG)SssJU@UIsN z7%wG7RF1DsiZ~i<>pa@MW%sV@ykgD;HfuKwP M+O?DTk6cA0RX! zmOI5h|C)$aWn8DxjZ7d9G@p^%gzGd$qHsNlxCtzM)v>}HwHQhsAAklG0Bq1f)jLi> z-%NK1rEY99tQR*X442=!^;>#F2nb=!~a0 zUs$(6Q==3oK)3#$1~pjEg|yseO9*56FtCd~yrEuzimc}@R`gBdrzOIx)^h+uhoLrY zDYUpoURuWPdY+!#M9%%9PX*TKN8|Sn1VW98YbYqNxzI|bi vaceJZB+gF121DZ(wWQhCE_qr?ko+o>tBJXn{LF!aclvwaH)afHw;uzHV6PjA z<`lOeNq~nr#_%B4T9_%+qh_8M+e^LB6}(WVcYxl8P@yUHLBUD{Yfdx=Ap$6Z1tZ38 zedh&Q{q&7+2kp+TXsU$C+HiBuxRc=M+m{n&;u XCc0gocuONz$NCOnN6)q$jel> zYjVu1Pts@D$JD)^_!nR*30P4^U^P{LrL*}{t`7OtN`8T9(l_<5Ll0U~dG#yl-hHl} zlg4pzbIw%L0###7S?rix2QE{ney1oP^qMSM>L@($Tz)A l-_m6)i6+kUF<0IX)((TTrT|m@-*b?23qd$3FMkCXT^g z^Y^&cF?E m>iVcX9sLT09$ssk^+t@m_6Yq~ja`;F4-p(0hDv0G3Q1wuI zi<8RY#sUxEVVm8-)TPwo0|LC lULK=?1A@f`K0AGOLO7!F)W}-~r?^ z@%lvI4Mx{aRL9amRY}r@4~S-6dq}+%Th}|UZ2tGLT9;nyTcMwUm5!UiE}HciYGWWf zxY<0CIxp(B@t9;Vo2IP6FrYq2B8tYH9@3dE`sL>nos2rLb-T@;C_7#=?tIf3r>^b3 zHMo(jX+Bg{-{UzrF+$fIlhI7v^$+1?5yoArRJ%gI!ANFEsJHgEVt;o{dn$A0FN5EI zWV~AHcu`m;Aw69B3^c o!{rCFn95_mS^D})Nl#G(p8qcA#W#DGE+vOIk<_Xb zE-ni?)-RU}^K69u>Gknm)?YR~8ct= ~=Z^l}&Zwf7d*Tz6-j%AR9iDyy!NiEtsi0FLaP&v#o&5V3)b;wf8x{oV zzIkvBb*CRZ3?#h&8MWquhbr~e`!-UDf&wzn0cWxWkv0M7dLUlxo3TvLUvSY~)9PZ; zj$Sk~e|>a~RveS kA&=kIsP8$W zE_F;O`3TG8vGI;5gDA>YY+-Wz5p*k<8o#VyfXbTeWl6@!lS9;Ih$&?p! 0!O;wzB;6u078h16C^3s~7>A>rr( z5_R$y)g7t0|h&-AqE;c1GPJ6a{D0wM2o12kA?z6I1+PwOu=++mEnAL@j3w+ZmyB zvZz}UMfg#9SipYe%J5+xx)s}0r$x&u+Q|W;SLwp%vsmNQJ&?)4bo0 =CM;)P3z-ny>gC-&0v(OGX)kk|cH?i 4?YN^4!c%4@v3(4e%DWB`lctDSzveG zv-~ND FRF4gsf&rc1D9GRrAx(KTD{I U$Z zQ2-&B9EJKQzphk7O~&_lg#&v<^gsnvKmgD95EK7ljf@^Ahwcg>rUDuO=%*y`VS-wr z*y5s~g%^TW7}G!j=L&$Og9t98TPY=g7YBd{8idlB1Q<>*=~Bd K1D^ zgHjEnb$n*WNw%2;+9ZK^1f(UQ1@pi>988r!Y#dAhsCEh{SOEExfD=hKkb`;hA1D~) zC4tOIC>UiW^B9^ufJf4CIT%J#D&(|QYiJKn$>TwGBqZk5$4X!^2X^B_3BYzY46v8L zc{t_cu1X~V(Q!ts02E_@3r_PQfj~aZm7sf(Frt7QcvLqYpov001an6`JBah0!6Q{8 zHhjz o6YB`gO5 z(iE{02qr>OD8zZOg0=^RLPe2G0j*mO(!$vQpYEQJL=rBBH88FK0`XrdBuJNE(IY8z z1;ri(=m6CKfDLg O~k`=cI?0jLKZw{PIln53{2rzQw~w@}cu2v7?Jb9tbZ zfNCY9_sPLkN|LenFnb&CT)C#oFKuiKlI}o&Pb6@zqRm2{o-C!Q5X?Y;8Y}=-$)SWZ zv<;lh#X{uCZ*+TtwMjq=&VlJXDuN@X(#vi*O^X9ZU{EYcPZNQI`yflj&OLtsu_VHj zKnMmVh3~PDLfP`YeSDfG3H*?8v6} nrV0K z^`g4iopS1ik^iX(w)O&9gCt8y0Aswnd#@lLSF`S6h@O z$1Eh~CNL&J)B)I1K-0uihUGtu65SAw)rIz|NcZ2z0>=4BpHd3!?`O?B?pulHJ;7NE zzKAM^)h_{J8(953)_o2#fbCf6rBcKHsW}pqUU9uEhc*G!pg#6p5_XrRhBvF8(KI>> z(6(ySwnw>)tTaAJ4h+<)*oai9S8A>)>^g6*DdExgIvDH}s6K5S957XF#!qdEQF*+$ zwi;EBCR9tZbk1V5{^tA2DOP|C`lc9&_o9dJhwSQ993Ab8g4QpC!*(B-wLDADQT1DM zo}X{7TS34_Fm2jn6^5p4lMnD4s(!3ie-LKvxlH#XC)(WZaOc zl%o%xnIOpoJ(r;CH3axyK#KuzOX9 ^2quPS~DOVsj*4l@P|GnNF;<;q| zXOoy_k96}`{ltGMob$VAI3hTh*tI7TXYRom#{`V6nE=n1GPrW&S#x2!X6oAb9luzN z&e(@7OR{!}kC*sTpPe0jHc1V};Rp`89Xq*=&_)+oIPeVH4V082}%S=_iy)JLOsd{`?0|ngw50@&= ANB{r; diff --git a/docs/techref/frontend/frontend.customizing.html b/docs/techref/frontend/frontend.customizing.html deleted file mode 100644 index 1ca82c4..0000000 --- a/docs/techref/frontend/frontend.customizing.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - Contenido - Frontend customizing - - - -- -
-- - -- -Backend customizing
-- -
-- -Author -Björn Behrens (HerrB) -- -Created -20th September 2006 -- -Audience -Site Administrators -- - -Applies to -Contenido 4.8.4 or later -
-Introduction
-Frontend customizing is a mechanism to customize various parameters of -the frontend. There are not many settings you can do, as this mechanism -is relatively new. However, this mechanism will be used more and more -in the future.
-
-How it works
-Customizing Contenido settings is very easy and can be done via the -system or client customizing settings.
-
-Important: User settings have precendence before group settings. User -settings always override group settings. If the user is added to more -than one group, the result is undefined. Make sure that your groups -don't override each other.
-
-Common parameters
-- -
-- -Area/Type -Property -Value (Description) -Applies to -- -login_error_page -idcatart -If specified, then a user who is logged out or tries to open a protected - category if not logged in will get redirected to the page specified by idcatart. This setting overrides other - login_error_page settings. -Clients, System -- -login_error_page -idcat -If specified, then a user who is logged out or tries to open a protected - category if not logged in will get redirected to the category specified by idcat. You can specify idcat - and/or idart (see next setting). -Clients, System -- - -login_error_page -idart -If specified, then a user who is logged out or tries to open a protected - category if not logged in will get redirected to the article specified by idart. You can specify idcat - and/or idart (see previous setting). -System, Clients -- - diff --git a/docs/techref/frontend/frontend.permissions.html b/docs/techref/frontend/frontend.permissions.html deleted file mode 100644 index bf2f93a..0000000 --- a/docs/techref/frontend/frontend.permissions.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - -
Contenido - Frontend Session Information - - - -- -
-- - -- -Frontend Permissions
-
-- -
-- -Author -Timo A. Hummel -- -Created -20th May 2005 -- -Audience -
-Site Integrators, Module Developers -
-- - -Applies to -
-Contenido 4.6 or later -
-
-Introduction
-Using Contenido's Frontend Permissions, Site Integrators and Module Developers -can check individual "objects" for access permissions.
-Concept
- -Contenido 4.6 introduces so-called frontend users. These users are splitted - apart the regular backend users, because they should be seen and handled completely - different as backend users. Frontend users themselves can't have permissions, - all permissions are assigned to groups.
-Defining objects and permissions
-Frontend objects and permissions are designed to be very generic. Basically, -the developer has to define:
-- A class which defines how the object works
-
- - Checks to make the permissions effective
-
-Step by Step manual:1. Think of a name for the object you're going to use. The name should be - lowercase. In this example, we're going to use "object".
-
- 2. If the folder "frontendlogic" in the plugins directory doesn't exist, create - it
- 3. Create a folder with the object name you're going to use in the folder "frontendlogic"
- 4. Create a file with the objectname and ".php" as extension. In our example, - you would have the path "plugins/frontendlogic/object/object.php".
- 5. Extend the class FrontendLogic. Your class name must have the name "frontendlogic_" - plus your object name, in our example it would be "frontendlogic_object".
- 6. Override the methods getFriendlyName(), listActions() and listItems(). -You can find descriptions for these methods in the FrontendLogic phpDoc.
-7. Define the object name in the variable $cfg['plugins']['frontendlogic'], e.g. -$cfg['plugins']['frontendlogic'][] = "object". You should place this in the file -config.local.php, so your changes are preserved during updates.Test your object:
-Login into Contenido. Go to the frontend groups, create a new group (or edit - an existing). In the subnavigation beneath "Overview", you should see your - object name which you defined in the method "getFriendlyName()". Click on it. - In the list, you should see all actions you defined, and all items you return. - Your administrators can now start to apply permissions to the items.
-Checking permissions:
-This is actually pretty easy. Create a new FrontendPermissionCollection-Item - and use the method checkPerm() to query if a specific permission is set:
-$myPermissionCheck = new FrontendPermissionCollection;
-
- var_dump( -$myPermissionCheck->checkPerm(2, "object", "permissionname", "itemid"));If you want to check for a global right, replace "itemid" with "__GLOBAL__".
-- - diff --git a/docs/techref/frontend/frontend.protectedcategories.html b/docs/techref/frontend/frontend.protectedcategories.html deleted file mode 100644 index b44f241..0000000 --- a/docs/techref/frontend/frontend.protectedcategories.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - -
Contenido - Frontend Session Information - - - -- -
-- - -- -Protected frontend categories
-
-- -
-- -Author -Timo A. Hummel -- -Created -20th May 2005 -- -Audience -
-Site Integrators, Module Developers -
-- - -Applies to -
-Contenido 4.6 or later -
-
-Introduction
-Contenido 4.6 introduces a updated concept for protecting frontend categories -and enabling access to them.
-Installation and configuration
-Download the plugin "Frontend Category Permissions" from the Contenido website. - Extract the archive to your plugins directory. Open (or create) the file config.plugin.php in the directory contenido/plugins/chains/includes/ - and add the necessary includes and chain entries (see below). Afterwards, open - the file config.local.php in your contenido/includes directory (create the - file - if it - doesn't exist) and add the following line at the end:
-$cfg['plugins']['frontendlogic'][] -= "category";
-Example config.plugin.php:
-<?php
-
- global $_cecRegistry;
- cInclude("plugins", "chains/includes/include.chain.frontend.cat_backendaccess.php");
-cInclude("plugins", "chains/includes/include.chain.frontend.cat_access.php");$_cecRegistry->addChainFunction("Contenido.Frontend.CategoryAccess", "cecFrontendCategoryAccess");
-
- $_cecRegistry->addChainFunction("Contenido.Frontend.CategoryAccess", "cecFrontendCategoryAccess_Backend");
- ?>The chain Contenido.Frontend.CategoryAccess is - called everytime a protected category is accessed. If the chain functions return - true, access is granted. The function cecFrontendCategoryAccess validates - frontend users and their permissions, and cecFrontendCategoryAccess_Backend does - the same for the backend user counterparts. If you wish to disable backend - users for access frontend categories, remove the line which contains cecFrontendCategoryAccess_Backend. - You can also define chains for more custom checks, please refer to the chains - documentation for more information.
-- - diff --git a/docs/techref/frontend/frontend.session.html b/docs/techref/frontend/frontend.session.html deleted file mode 100644 index c1076cc..0000000 --- a/docs/techref/frontend/frontend.session.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - -
Contenido - Frontend Session Information - - - -- -
-- - -- -Frontend Session Information
-
-- -
-- -Author -Timo A. Hummel -- -Created -20th October 2003 -- -Audience -
-Module Developers -
-- - -Applies to -
-Contenido 4.4 or later -
-
-Introduction
-In order to identify a website visitor, the default Contenido Frontend -delivers a session mechanism.
-Concept
-The frontend automatically stores a cookie including the session ID. As -the contenido frontend is based on the PHPLIB session management, the -session ID can always be retrieved by calling $sess->id as long as -the $sess object is made global.
-Why Cookies?
-This has several reasons. The most important ones are:
-
-- Module developers don't need to care about session ID's, as this is -managed transparently by the system.
-- There's no need to re-process links that were inserted using the -WYSIWYG.
-- Users tend to copy'n'paste interesting web sites from the location -bar. As this usually includes the session, we would no longer be able -to identify a visitor uniquely.
-
-Drawbacks:
-
-- Some browsers and/or visitors don't like cookies. That makes it -impossible for us to identify them. However, this is only the minority, -and I guess we can expect that a visitor has cookies turned on in these -days, since almost no web application (like shop systems, bulletin -boards etc) will work without cookies.
-
-Also note that the site will still be browsable - you just can't use -the session to store data for the frontend.
-
-Is there some way around cookies?
-Yes, you can modify the file "local.php" in the conlib directory. Look -for the class "Contenido_Frontend_Session" (currently on line 137, but -this might change or has already been changed):
-
-class Contenido_Frontend_Session extends Session {-
var $classname = "Contenido_Frontend_Session";
var $cookiename = "sid"; ## defaults to classname
var $magic = "Phillipip"; ## ID seed
var $mode = "cookie"; ## We propagate session IDs with cookies
var $fallback_mode = "cookie";
var $lifetime = 0; ## 0 = do session cookies, else minutes
var $that_class = "Contenido_CT_Sql"; ## name of data storage container
var $gc_probability = 5;function Contenido_Frontend_Session ()-The important variables are "$mode" and "$fallback_mode". Both of these -can either be "get" or "cookie". Remember that if you set "get", you -have to rewrite most of your modules (in fact, each module which -generates or display links).
{
global $load_lang, $load_client;
$this->cookiename = "sid_".$load_client."_".$load_lang;
}
}
-
-Remember: Using "get" as frontend session mode is neither supported nor -recommended - use it on your own risk.
- - diff --git a/docs/techref/modules/conlogo.gif b/docs/techref/modules/conlogo.gif deleted file mode 100644 index 2237f61b3a0d247ddf07c9727b24dd994864adce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5334 zcmWlbc|4SfT5RaRDtL?Rcf+>-njk|ZlCDojjFvXdKc+_ ot<^Rb*^8XbNlw~@$vELm;d7S`6VSK8`csLyvnGksB`Ded3$>& zCnpya6gXSvW@cvc`TR8onf&0B5fKqMj-NVpDkCGKr>CdBzMg~qoX9`zxN6_)X$6zX z92gjQHumcK@4r`5Q{!^EvO)QY6DP(-{w~PAxMRl-U#Fsd`}W1f#jRhx&)3&?@!QhT zqeuHX$9X*7rAwCr+zve)nhXpK{Cn!{K+p4S+qSJU-}}=~Kh4j7i3$-XM@!gj_R`|= z{{8!ZPHgz}@ymy~g|6FUZ)V ;N%r9b&6k?`)8gu!EOOqy z`Ot8>i|btEzUDw|_^B(Ghot8QzQ;?>NV=`{(u;B~JsX`aFTU!vPPo=MtL6M)j-aWc z ={r%)*V`RAYK&!5lE&c1v1 z?!$)g_ZTfc7o0RVs?fUq6XD&R_QQ(so9$$&`B1f+$R+)sS(m`Ax3!~bMN{5~?r+$c zQDNN>9c6q+cZuw3aoEH@QXSfw@ZINz>a$K!g2_{r)<;VA$2~f?{k-WGYj<+K!5*Cn zz7hH3hkqtQ?R*R~)&&j*w6;qp?^>_^RRT5MKWmy}wmG>t4!RuLFjMcAbFKB&m3ZPl z2lM;$<)fzF_0r0FT{niM(dVn%)@oY&H>IaEOu{2&+p2b{9;>Dq==@NhVbkl{z~s1f z9NK)Sx`ZXR{qw}0VauUlo0&& eqbT^srx4?Q3$>LxU{vT@hVKEz7Z9 z$sM)(n=Jm*Fl4YI%CjW(L4e^G6f5(ccwA6uGb77atqiI?es4{!d{;x-_aA|>BkKm` zq}^%Xpcj5GbIVKZ_+m1)a+Q<)aMktdmLc=_`}|_c` o#a@!1wj`kYSVfkLQ}S=VzyoBLRvO{}Q5ktM!k(KO$V$4z8%qUM-nZ za7A4Xo6T6yf2P=4nl^PJM!8jN>pNW)YGsXaWtjG4;AD$mfJ|e67LvAt!O`DJ4>Tm- z8I+r4Nb2ZyexWVuxz@7gp}m`YV20ZTz}DJ4+R`J!nhd2BTn+QgVA}1^-CUycMs0_R z_O`NL=Y15?f=^djZOYn !PJ)jTtLts9e;nK6aW?sD4(J=?l0h0iqtJ`_Tx zJ*!ww=4Br3js>ch)q*?skKYYUJ?c{;^|lGbZ|z4LlfG@1dzMguh(bvF$88k5kQ#F7 zBG llxaYh98;0=IQch`20_KVL|n^=%tQY5Ob}#juB*&|tpOpD&*DF04Uf zuxP!J;^GNqmV>&w1Tskdg=P1X#HYxT0PTuRRdu4u)`?9h2nmJ+JYZ-DOgvUyI4*2T zEz+oz!@cA^=3)oe!&hi>Ujphcl`}5j-pKzDb?s1g5&doCQ94cwdCc)wF&CQb5Z8Go z5L$X=lWC70@D^w55S76oR;US=y66QTxK?B0AvQC16dl)=dwawO+=UG)SssJU@UIsN z7%wG7RF1DsiZ~i<>pa@MW%sV@ykgD;HfuKwP M+O?DTk6cA0RX! zmOI5h|C)$aWn8DxjZ7d9G@p^%gzGd$qHsNlxCtzM)v>}HwHQhsAAklG0Bq1f)jLi> z-%NK1rEY99tQR*X442=!^;>#F2nb=!~a0 zUs$(6Q==3oK)3#$1~pjEg|yseO9*56FtCd~yrEuzimc}@R`gBdrzOIx)^h+uhoLrY zDYUpoURuWPdY+!#M9%%9PX*TKN8|Sn1VW98YbYqNxzI|bi vaceJZB+gF121DZ(wWQhCE_qr?ko+o>tBJXn{LF!aclvwaH)afHw;uzHV6PjA z<`lOeNq~nr#_%B4T9_%+qh_8M+e^LB6}(WVcYxl8P@yUHLBUD{Yfdx=Ap$6Z1tZ38 zedh&Q{q&7+2kp+TXsU$C+HiBuxRc=M+m{n&;u XCc0gocuONz$NCOnN6)q$jel> zYjVu1Pts@D$JD)^_!nR*30P4^U^P{LrL*}{t`7OtN`8T9(l_<5Ll0U~dG#yl-hHl} zlg4pzbIw%L0###7S?rix2QE{ney1oP^qMSM>L@($Tz)A l-_m6)i6+kUF<0IX)((TTrT|m@-*b?23qd$3FMkCXT^g z^Y^&cF?E m>iVcX9sLT09$ssk^+t@m_6Yq~ja`;F4-p(0hDv0G3Q1wuI zi<8RY#sUxEVVm8-)TPwo0|LC lULK=?1A@f`K0AGOLO7!F)W}-~r?^ z@%lvI4Mx{aRL9amRY}r@4~S-6dq}+%Th}|UZ2tGLT9;nyTcMwUm5!UiE}HciYGWWf zxY<0CIxp(B@t9;Vo2IP6FrYq2B8tYH9@3dE`sL>nos2rLb-T@;C_7#=?tIf3r>^b3 zHMo(jX+Bg{-{UzrF+$fIlhI7v^$+1?5yoArRJ%gI!ANFEsJHgEVt;o{dn$A0FN5EI zWV~AHcu`m;Aw69B3^c o!{rCFn95_mS^D})Nl#G(p8qcA#W#DGE+vOIk<_Xb zE-ni?)-RU}^K69u>Gknm)?YR~8ct= ~=Z^l}&Zwf7d*Tz6-j%AR9iDyy!NiEtsi0FLaP&v#o&5V3)b;wf8x{oV zzIkvBb*CRZ3?#h&8MWquhbr~e`!-UDf&wzn0cWxWkv0M7dLUlxo3TvLUvSY~)9PZ; zj$Sk~e|>a~RveS kA&=kIsP8$W zE_F;O`3TG8vGI;5gDA>YY+-Wz5p*k<8o#VyfXbTeWl6@!lS9;Ih$&?p! 0!O;wzB;6u078h16C^3s~7>A>rr( z5_R$y)g7t0|h&-AqE;c1GPJ6a{D0wM2o12kA?z6I1+PwOu=++mEnAL@j3w+ZmyB zvZz}UMfg#9SipYe%J5+xx)s}0r$x&u+Q|W;SLwp%vsmNQJ&?)4bo0 =CM;)P3z-ny>gC-&0v(OGX)kk|cH?i 4?YN^4!c%4@v3(4e%DWB`lctDSzveG zv-~ND FRF4gsf&rc1D9GRrAx(KTD{I U$Z zQ2-&B9EJKQzphk7O~&_lg#&v<^gsnvKmgD95EK7ljf@^Ahwcg>rUDuO=%*y`VS-wr z*y5s~g%^TW7}G!j=L&$Og9t98TPY=g7YBd{8idlB1Q<>*=~Bd K1D^ zgHjEnb$n*WNw%2;+9ZK^1f(UQ1@pi>988r!Y#dAhsCEh{SOEExfD=hKkb`;hA1D~) zC4tOIC>UiW^B9^ufJf4CIT%J#D&(|QYiJKn$>TwGBqZk5$4X!^2X^B_3BYzY46v8L zc{t_cu1X~V(Q!ts02E_@3r_PQfj~aZm7sf(Frt7QcvLqYpov001an6`JBah0!6Q{8 zHhjz o6YB`gO5 z(iE{02qr>OD8zZOg0=^RLPe2G0j*mO(!$vQpYEQJL=rBBH88FK0`XrdBuJNE(IY8z z1;ri(=m6CKfDLg O~k`=cI?0jLKZw{PIln53{2rzQw~w@}cu2v7?Jb9tbZ zfNCY9_sPLkN|LenFnb&CT)C#oFKuiKlI}o&Pb6@zqRm2{o-C!Q5X?Y;8Y}=-$)SWZ zv<;lh#X{uCZ*+TtwMjq=&VlJXDuN@X(#vi*O^X9ZU{EYcPZNQI`yflj&OLtsu_VHj zKnMmVh3~PDLfP`YeSDfG3H*?8v6} nrV0K z^`g4iopS1ik^iX(w)O&9gCt8y0Aswnd#@lLSF`S6h@O z$1Eh~CNL&J)B)I1K-0uihUGtu65SAw)rIz|NcZ2z0>=4BpHd3!?`O?B?pulHJ;7NE zzKAM^)h_{J8(953)_o2#fbCf6rBcKHsW}pqUU9uEhc*G!pg#6p5_XrRhBvF8(KI>> z(6(ySwnw>)tTaAJ4h+<)*oai9S8A>)>^g6*DdExgIvDH}s6K5S957XF#!qdEQF*+$ zwi;EBCR9tZbk1V5{^tA2DOP|C`lc9&_o9dJhwSQ993Ab8g4QpC!*(B-wLDADQT1DM zo}X{7TS34_Fm2jn6^5p4lMnD4s(!3ie-LKvxlH#XC)(WZaOc zl%o%xnIOpoJ(r;CH3axyK#KuzOX9 ^2quPS~DOVsj*4l@P|GnNF;<;q| zXOoy_k96}`{ltGMob$VAI3hTh*tI7TXYRom#{`V6nE=n1GPrW&S#x2!X6oAb9luzN z&e(@7OR{!}kC*sTpPe0jHc1V};Rp`89Xq*=&_)+oIPeVH4V082}%S=_iy)JLOsd{`?0|ngw50@&= ANB{r; diff --git a/docs/techref/modules/module.login.html b/docs/techref/modules/module.login.html deleted file mode 100644 index 4d347b6..0000000 --- a/docs/techref/modules/module.login.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - Contenido - Creating login modules - - - -- -
-- - -- -Creating a frontend login module using Contenido
-- -
-- -Author -Timo A. Hummel -- -Modified -13th June 2006 -- -Audience -
-Module Developers -
-- - -Applies to -
-Contenido 4.6 or later -
-
-Introduction
-The Contenido login mechanism has been made alot easier from Version -4.4 and upwards. Logins are now directly handled by Contenido's -frontend, and you only need to pass the parameters "username" and -"password" to Contenido. Logins are now handled as "pro-active" logins, -which means that the methods explained here need to issued before a -protected category is accessed.
-Logging in - manually
-Each frontend login can be triggered manually. In order to test your -logins, you should insert the following statement into either a layout -or module:
-
-echo $auth->auth["uid"];-This statement shows the current logged in user. For anonymous sessions -(i.e. nobody is logged in), the "uid" is always "nobody". To test the -login, create a new user in Contenido's Backend, then call the frontend -like this:
-
-front_content.php?username=<youruser>&password=<yourpassword>-If previously the test statement returned "nobody", it should now -display your user id.
-
-Logging in - automatically
-Of course, the method above is pretty uncomfortable for end users. You -could simply write a module which outputs a login form - it's up to -you. All you need to do is to pass "username" and "password" - exactly -as shown above.
-
-Logging out
-Of course, your users want to log out if necessary - just pass the -parameter "logout" with any value to the system. Example:
-front_content.php?logout=true
-How all this interacts with protected folders
-In the past, a login form was only displayed if a protected category. -If you are already logged in with the above method, and if you have -access rights to that category, everything is alright. But if you are -not logged in or if you don't have access rights, the (pretty old) file -"front_crcloginform.inc.php" will be called.
-
-If you want to show a custom login form, you can do the following:
-
-Specify a client setting with the following values:
--Type: login_error_page -Name: idcatart -Value: <Specify the idcatart of the article containing the login form>-
-You can also use:
--Type: login_error_page -Name: idcat -Value: <Specify the idcat of the category containing the article with the login form>-
-and/or --Type: login_error_page -Name: idart -Value: <Specify the idart of the article containing the login form>-
-Please note, that if the idcatart has been specified, idcat and idart are ignored. idcat and idart may be -specified both (and then the idart should be an article in the category specified by idcat) or -one of them, only.
-
-The article/category specified has to be public/online. -
-
-Creating users
-Of course, you don't want to create a user in the backend every time. -You can automate the user creation process using the class "User":
-
-$myUsers = new Users; // User Collection-
$myUser = new User; // Single user
$ret = $myUsers->create("nameofuser");
/* Note the three equal signs: This checks for the boolean type */
if ($ret === false)
{
/* User already exists */
die("User already exists");
} else {
/* User was successfully created, now we can set the password */
$user->loadUserByUserID($ret);
$user->setField("password", md5("theuserspassword"));
}
-You can also assign custom properties to your users (to attach almost -every kind of data to a user) by using the methods "setUserProperty" -and "getUserProperty". See the API documentation for more information. - - diff --git a/docs/techref/modules/output-gen.jpg b/docs/techref/modules/output-gen.jpg deleted file mode 100644 index 2caf5c5bf8ee2a9bf998cf366a5fa9427424ac26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14270 zcmdUV3p`YN+xC)5IW*){lS|%$eD=iD&N{c@#{sj0hEwxli`d@yDo 2Y5ih9?=alp>UCUXvabIbJ^3hK2rd=n0j94zMqPl9en#$TeodT z8SFOPv)9OczlEjM0c#tFV~$SFF0O9gr+iNP`eFS8&j(!yCWKs!yc`uB6B`$wl6w6{ zTKZ2nGjea=$;&UeTX?UmyrQzI`r)IRMtW0oOY6^1pLKQjykzvg>SMAw!*AY>yn8=7 z#+&{)^NBwTf1XnSAukd?b18Ai5{rVtkEFulCF^%CU1@ei%Ilos2K`IRl=fZADQ#H3 zao16<^2r}NrBybe*qS_X)L(-B=VFfdPX+xo=C2`(n2@Zb1XwUh1qcl-9PBzzi9@cW zVUfuX=)74DIUHpV5qj;pgUPpHybU*!Y3?_;>P4mX+BZGt-D_iR6jvJOYvwbRa_`;s z3`M{WWCim32@+Za4c%tH6G6LB5V -aHW`f|ei==+8HA3zb++m^ou)vIv5= z!XYB)mv#ur%@=MEL7lGzWD(S0Meh)v_7g!-hCEeaQtPk?5=xtDkU#GFUP`cy7E7DC zfJTZS?h)=s5p**H&9)O*h@ji0u=pYo$uShcFE1oSkTjm7x3D(3RRjr?h$bRv SG+8yKgw z4g24^dYe~TZwUXcF&^4_YmxY{0?koPJYNz`gX+%lR6VMDbY}o?$PT>CIZGlo4%lJ6 zahg4a(zUs$ybULEvXn}pvLvf?5Z)UxI4rZifMcl$0_e!QB`H+h0^ouAAclvb7#{69 zNbVz3F**u}Vsy{|I -E34Uii?{=h^5vPcl}vTYUJ%XLWH@8|qUK;~Q3ASpbau`u zFEG#3Vp~NvXP`9DXNOZfRyiFj^)~=G*iZy*QJ!}ZL4A(h UlDL&!6vb^Vo(*T8dUx`{`*b?n+Doq?_ur4JXHwbhw8~xV;=HI$Du{w&@J2 zO+YKQ<#h0C +T2mWVQ;A_{`gq`?mAa zg&Dfk_tO8^lV3I_f+Ex>KW!#GW$_(@^cKtn&Y16i%|sZqKwSi-#xL9_Puv@&%|*gT z!%f4#rWSFM0l4F1!QTY&kPA033COw3@d}9e=TFs#-&$0^4lbIv9;Yp#4c*G#TE;sp zd gVsUA!nML4 zv?{8kueSMOOcO?yfNrVRf_1PQmXg4w2Q_fgL!+zBvYdyGJO8s6ccA1|zR{IZclhMO zO5@QpGTU84(se&}Y*It2iXea1TG*)d0FMzfqz6~I>BS2-j84BUuJ%7mv=u?il4FR@ zntV#w; CbNp=GL4vrBwi7T3;DXHD}`M~n_~=;au87_s#rvV zz||nU`cX}91(vvTc)()9E5hf9Qt5GmDZ}TQuldFU8@<(}K7NND!nD}0Bsz(p%emdn zXxTb5F4( d7qZ3g#9i@@#kslHS46F z(3AvLJVXM?7)w#qt3#io5_WNxRNe6M&E41Lb=$?Boh5b5eQW+Tr+|*_ILje}o ky~VthckY)Ow~R+y`m9T3qbH??v=GVYih-Uvsg~IUH~2=upnDOmA$jfbr)vU+ zKFGP>$lg ;`F`~EiZyT+X3!?s-~CBshWcH&W?j)M9?#TG&`?;E&0WxFC|FUz6mXK zI4t${3b=qHI!XjpU?z0t_YrsT5cG~!L<2aIgN&}<9l5WfT#-OI)YIcPeKnuMVD25d zzVuO=Wm+FDC*tMXl(&JE OgZ4#6GOxcaHraXCT)BC$AgHk46;5z2 zui&j5Q%ht}gK^Y;`j6NA8G0di$5zT{z0GDCJg!aLaG>DEnjZA&4-sy(COT)p`-u^$ z{GQC?L(^LgWNK?4>v!25>Kbcvau3_>>h^3 LpUwx*trQx3Qg%%RJmdDH%&6kDkWNgm@(^ zcvP0r-)k&^z1WBt3^RrBBU1kOm|E}EYGy$!(V9v~c6=BuHzIR^)-$E6Ti>o|_XDp# zZt;=F&GcNYcC9^9X159M;vE_*aHV2ZklsBe=k7HZjsN($>nXn aGMdXsjwDZ?!&D|O-0%QJ;xJkIumro~ zvkkt*eqIwJho1Q`Z1lCHZ S%>4|BC<>C57uyzP5%Q&*ao)U3N|Lfvq^xY0h5wS*1(`V700 zbOm||4K;~*?F;#J!tLGZ2Wu*-YNH!Dep6TK9h#NjzAU2Flpf0 #87%M;@ zhCgsi=(C<+XJ77Z(LlmM1p+kBqdF3AfL8Hm7+FM3QB9M5idxs+?>?w pN9m6?Nj@J+AyVLop>rz(d+*oeC z;k=Jekf!T_byxi)_r*h?{0(mr{LNWh{e7H|il823bI{DMTs{yiTN=Sxs6r8}qj6JU zvQQB}Q8LMbt!Nb|gfE59KGt{eJIc;}tZ#ou8h_qjPHxM3?VSAAnrn yc2{u&zPT&oC5>ug3=dtrcWyPDJ^53~De`rQMzCv}EG@5FE3se8L1Y~+zeF^R>$ z#9f@N%q39?bJ5AFam51bfI^GA>MrgLZR|I79v9v@llL^sB}ToC>mGR=H&Uf)=wzlz zC_Z^3T!zIo9(sIPxVkPKJj(ut`t4ldBaW@TTK?k#q)aO|&)?|ujUQ6{Ezil{C^5)% zIjs9uH|4he9!K)`b#T;>oZ+x;D)-%CUTfrp>AG=7A~~OMa@e&p!L =Mwd6yUqw~L+=p^_J!)`+F3s9 z8hibCGH-$(z0qLUB_!8deV}ikS>0yiiou3LkmDON>>KXZuj}BfH63rLc1lZ6bIbl) z>yc!qq=}X)+mls|R*%z0M NqFosWw zWUr{@AsXg |<2DZeN}y(-epv;7ppa1S|EUKj8x(yFrP{)f%lg)0t7 z-NI7j>m-W&^ A|agM&rsBPyGZ*Oel+4Yqtp6JkCMSZ>OoCKN 7m8(VYw2q$FrekgK0iyA$vTesI_-&F7O6sB=(vBIfqCK)`r06vPh zCAMxYXS}e25;Nx nT+%Vfz_~j*2X5%rmh(|l}29Wz{$OOy63!e2P{xL zx}R6|qa=oLNMoDH&|0b3dIh3GCwl1q4&q^MK@ 238!!aIYqehZ-Z$R$QqV z#?qI$m6Z7{M^oqZ9McSKLusa6TCuweDB4wZ!b|gNf_+@yXw-n}ex7g4CqGn4sUIWb zvfJQewibMUm|JkU0x@Y-(|IRJXuo~9aaO K1?b36S~LkbvcYp(SGomY8hWzU#RD$H?<%>Ld01U)L7(PGy3&vRl@q)A6Vhsu z7c~5EX;$X|eQGF?pwaPt! w2#x_kPylK%b )WCs7Hg)I6R&yZ%A12=eVh;V0M1G^gp?mwo5m zSe@!J7VNZ7ZySSLF{ZXO**8$O$y_%xn7aSjskF_>KbvkPJx$L>!KuTE-c}3|R6diC zJh2c=H`?#kK9X`Z;K%Wr-H%F`2?<-%aJo!Bez{+_Mab!nb8=JE;=#J$l_txey+Ak$ z+gXZrNM3&fQl)M$8xuL3y_q{J*ld{2RE-my WAgL!NE|PpZjtRjNnL12{BbDAA_N!`Z&fwq1AY+v `%zdvKeCem&%!KRCTb{xnCXc zOK8dV*|~}fXLo^^m+0p3)Ir&54&6J0 zmh~7b!}N)uGX#gmDmPr-Wx3Ong|AzK*?V=?q*Z=oaI~%`sRnw Z>H>;kfEEx&EJ_5ak2;faJr&j;?vHpJgIk;31SF?S)KTpV zT}(pmcl{-&2%1%XG0Y=T%}^K_gBG@ r_Pb&na%*K2HNL6CBSNUR-7q4=!gex_n!(*{K;z`?K(^f!tiOMAe&o;WsY{a~)TK4VRuMJY{ea>vkW^6NW+5hp* z50|vvvxrRtvtfTQN~HinUX6akp`H3Lzr7}1cuS~Na_d(Qw1gs*6G6b=V4(Sq=UKqt z*!Dg0`>)oG*u(+LIuD-P(;7Hg_^hNkdBN@z6Y3xXX{UxlB#Iy<6I<>(4yAEHbw8ZN zkwLGt&xcdl^|y;WTs+KgV{42zc=V4m4)FA`J8dMw^(&GLcR;=C^T$|~yL09p;5Ifz zpo8cWBH{f+EjC3_1YyaIcY4()$;{b{?FHA~04wO|?hwqY%-Ih(5#-m>Gd(@D7HHCq zluE+|6?*_E5hOeK2$-BcNNy6Thc)Ah_66s6T?B&9;5snS_s% tsMFpz&Q`EVpCcVLni(%!)dXmnCDv zGAC$E w)9bHD!4zOo4~>bAi=`o!NMxtlB83nud}XD_%`)w z !pvAPVdbI$uyeS&?cH@#NhX!`BOPYXEGF?UM>}u(@ z?;Uwzu)92yUUkGu+ljwp@VJ@g (Zv_1j8w5je@MK+3dv zPR&<^2QE0o0_tHB>^mQ4uv|UJ#_JL@zqb}4XMpW;dqHMNEMRN*1i*ysVR_s_+|n8m zK`ROPVarSNegrB hVZ%!1rB3z|aF5IQD8|rW!R5YP#^1ZTaWj!_*cw$M0w4 zLg|S&a?Vvm$U%WZO}KR4n&8|*L7;TZhbT`z7X!8xftMRi#`7Xw{Dx{0Y w*>R;eF9Y7I06*pd%BgOdKkN<+trvRT@to|pzGAM_OY4kLGVL-d0p$RAC!)ObJ za0`KfTxpgMPScwDwx(H>Q%y~Dk~VP!?H>aO-pht2WQCgrx;=PZ*q-lL#l zUpDT-y9tVtsphM&bPgpBb(fQFgUx+d#g)4(JU;DrK~EipFLU9{`*5;)XXQ7=v{gm7 zbp0%e=4W;Vd4vj=SI?WhcT>4}H^6PMlH1#yrbeQ8ot-swo^`+m@1)D_xTUwLc;fEe zTje{UMRs7h{_3Rx^7U6U?VDa2NKoG})2zPXr9mA%H2;pvHM&{KBc%mIeAk(g+KLBB zp&b#X=m^7_nrvft7e|T})Mn81g06 j=Rd(`#HBKX>8IM4dYup8zt!G2-{#L60|o*blpNSn@9ZDoAcDeBtLd<&n&S z EtlC)j~O=kcm|5s!7 zpANDd6-?o_Ri~$CSjD2ylO3^0g-^A%cK8EzU3$U>GH3E6|GDd#so{7IayOIU #UP}74oE=4D;eraMJ~MQ+WmNYc?lf4TL#&F|Rc%^P=u-J(Y&d`*G!-YsxpXVjT}#uaky=O)fEN zRFX_|4B+{;W}ME+f9e~2S1(*(Kt9VKXSeUDW0d-ryFXJoLLF1_ZTCL6#=*tiBXddg z@)fr=MbN{q1(bAx+~9yJVaha7%7W>7a>V7GL^EM3Ptv^hrNHbCp^CLX(~dUp^Ef){ z^vRHuA;M0o|L)W~_vUeV-Rv8Ug0kjWK&^^=TS@B{{zg=#3J!CD6US00o}rRq>k5ku zhToaWV;<>f-_X#^yY1!AiZ-EX!PD70H}@IlhF| fg<($27^yBX47fvPE#onsc@iRCU+F^V!qe=4p zZ(Vy}9Ou#A3=qK*`Z%) r;DJ`L9BDB)sRWv lxKhNWG}ff$ _Cn21@M(<&W4Iqt`E z90J0^@aHstsg~b$ypL(I+Oab8X!nO)h%dLrx~l>qJ({5sm5-g%jmu@4dliiGRYq}G zFRb)3cJ!*li<35496NSc`4|K(s`ym~h?|y@fQ|si$*z}90sRq0&>zY9v#|NYTK@4- z{`TA@h5_|5aVUNrphA|dUxNuj%70=#7+|qlWgWIe5_iw;Gk$!?dwbo^<4
zS5Eo6`~5?6N%}Lo!HqSk z$ c{T(KBEYQu;L0_CIiSxv#Jl zyG-U%io~n`1v=xuriCsb7n=m!6WA;y2;~J9y||fqJACV)^a~T~yJjbn*WNL7X6zWS zxk|0AY0_|#UfmZFF0=DZ_{FFYax+40tX`da4-S38pCgs>@Xh@62e9FRI;)h<;#> 4S;A7EaJ5`d0b!} zuI)6DU@zD=Wn5NSmKy3i}B `s~BTR#|!acTLk~_{H5; z9RfY>Au5|DO_3)I4%;(Kb>RB0XZY3r{Ik<;20aIw&!C1kY^2|DGwEH9m2kwB*_sUE z2HIaX4Qb^3nq9<+1t?4q5f%?3(icbc@(-0@iIRBOrNthYJ$=T&?8y_GJ@Mmznko5R zO{gb>nHW&Zti-j9(+X VUeW;8 z%WG5T!E8Bh|G;YPnTINy2`3+=thztab0^-lxp_>!TG7qzl_u@MSF-VMyme(zKjeg) zJPGN1GS4cJXzg1rR47q~XAclicDtviv1d?7dH;*Ymuelj+^edphbw4mU$eb^)BVOh zEpM+tA!ItaU!85$)NVQ0W|@4rsup &VokaZ{X{elEglsrz?X^%-t;-g-gp!1BA14I8T1Om zA>&EQ=e xuWoIciZHWfNSJi9>E1|vE2`c3dnHewkZ z*<`v-_>%YT@{IcOTjkT<48bmZ@zbCnVo9i!z}7*iKpjm^-S&`B_uyJcNhztM3$JT{ z1cf|mB=xSJYB1yKYx{i6 f}k;ccrmS2b&2OLHh4_@PPMZtZwkiPHj& zki6pYnlwu8`wX2sy>rny Ahp_>$KfGj?)}P^A !a870w9FDr^90hg&Q9&;ll mV#d^> z78>2%T-^3WTc6HwUcWI;!S&{=D96PqP>J3P(;a lQoMdk;pncV|Fj|Oha@cj8sv;&^n>J?P_#?%s5-271DuJ8o~svs{S1U4I0w<03v zFwrJneA>iX&krqb$5hl lifr~BM^|j2+il_Bcnn)D ztt=Q58h7GQq3r>7)r|9*Sk!?}b~bGXOI;aLQ&L!;(3zhsq}$eA*`K$+x8}Uzt+i3K z=H#g0i_Ooousl8X!t)&OdmTB)-I_V-su?WDh_UA_0b9&AzkQVS!J!+My;AaiHKX(f z0_9bqTfd&Lh~9kky))=*hNV?6d3|B!=*RKhr2|$$8(ot |It!m)Cmng<)QyfC-PXU@+lfE1vLB{$1Pi z&+Jm1bN*sHi)VVYM&{9dwe~TGc $vTyTd?6Ac!r6SzpUP8b`+RS>3qM34`E+k@Vp*J>WYawPml8 tiv>C}55dvB3u$}{HHN;ykqoWAY0M$bJT1C<|v zc_Ci)1bGOdVRmnHuKG&-mOj{j`a^RyUjzBzWsz4m%DqH!lvx@52(>fQDdg>=unT;i z=cg$*<{8bx>dKJG{JBW$vWMM7t$b{6MpaIU$168;ylDX`Z8Yfa}q{H*uVJ3GK_O zUP?z=Rwp%CeBngm%6sYq*r(#&_9ibjrAZdw{5u~J(mW*rg@OR}Ysh+)IY(N1p27}SDM z2R{@JxDBHZ@s?H(Q50dP@#Y^1!A;r9y{P>?XM+-rx(J+}rI+rmuPUqVx!u_}r5TXG zsEbzoBt XswY{kdhyG-w8OOzYk8hjFWl_}YMjY;LH9;AWV?#en6`J#uwK>N zk)i+{=1*>fsg2i8RJ#}AaN#Cs;i~yz&rA+^`M8^B0oaU3GTBo%?u@3Xg^8d<6B})V zw!~e{B&A-)w7ToMY&zYkH%+* Xpmi-w z4l59LUUZHZY$?HbjLkAq!60o9(T>yZ#t=SVTzVtOmQqHji__VZ)}Z1JB?NA;A9*4% zJ}1>+uLRoth4r0eHn0*dBZi%u^kQd)$3IexZF klQBigO@oD>n)%>{w!~iXu+v31HGxViF;!h zFwk54AItb}jT3_D(XWgNyaV0CKlK5BPjSUeQQX=9W6^muFc#eg#-ddn|1ll)>lgjs zdUs;c{#OyZWm1#d3q)*mg >CY^Z}vBU=KTNbE5$Na@t(loi;UgddlohS z82>~A$XLU>_9v$JsU9w`=mA=d&toSQ2tO5`vfOUzXb(yD{FWiXwqxS0Uj}`EH?t - - - - Contenido - Writing modules for use with Contenido - - - -- -
-- - -- -Writing modules for use with Contenido
-
-- -
-- -Author -Timo A. Hummel -- -Created -3rd November 2003 -- -Audience -
-Module Developers -
-- - -Applies to -
-Contenido 4.4 or later -
-
-Introduction
-Writing modules with Contenido is as easy as writing regular PHP code. -You don't get a stripped-down development environment, but rather you -get a combination of Contenido's CMS features combined with your own -code.
-
-What's input, what's output, what's a module anyways?
-A module is nothing more than a piece of code which gets combined using -a template:
-
-
-
-
-As you already know, a layout contains placeholders for modules. The -PHP-Code from the module's output sections are inserted into the -correct positions in the layout. The input section is not relevant for -the output, but the input section is relevant for configuring the -modules.
-
-Configuration magic
-To make modules more "modular", you can configure them. You might have -seen this in the predefined modules - but how does it work?
-
-The configuration data is stored transparently, so you don't need to -worry to get your configuration data from the input section to the -output section. Storing configuration data is pretty easy. Take a look -at this simple example of an input section:
-
-echo " <table>-CMS_VAR[x] is the variable (which is set using "magic" :)) to "receive" -the desired value, and CMS_VALUE[x] is the current value. The same -story goes for the output area:
<tr>
<td>Test</td>
<td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\"></td>
</tr>
</table>";
-echo "CMS_VALUE[1]";
-To avoid problems, you should always take care of the following things:
--
-- Always store your configuration into local variables (e.g. $foo = -"CMS_VALUE[1]";)
-- Always use quotes around CMS_VALUE, as CMS_VALUE is text.
-- PHP allows transparent type switching, so the following code will -also work:
-
-$foo = "CMS_VALUE[1]";-
if ($foo == 1)
{
echo "Worked";
}Important System stuff
-If you want to write advanced modules, you might want to interact with -Contenido. Here are a few objects and functions you can use with your -modules.
-
-- -
-- -DB_Contenido -
-The well-known PHPLib DB-Object. - -
-
-Example:
-
-$mydb = new DB_Contenido;
-$mydb->query("SELECT * FROM test");
-
-Reference:
-See -http://www.sanisoft.com/phplib/manual/DB_SqlMethods.php#DB_SqlMethodsInt
-
-You should always use $cfg["tab"][*] to access Contenido tables.
-
-Warning: You should never ever use $db in your modules. Always use your -own variables.
-- -$sess -
-The current session. Useful -variables: -
-
-$sess->id (current session ID)
-- - -$auth -
-Authentification information. -Useful variables: -
-
-$auth->auth["uid"] (current user ID)
-$auth->auth["uname"] (current user name)
-
-
-
-
- - diff --git a/docs/techref/plugins/Contenido Extension Chainer.pdf b/docs/techref/plugins/Contenido Extension Chainer.pdf deleted file mode 100644 index f1951960c9a6d91532cff0eb614f4d7065414e1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57226 zcmc$mWmFu^*0%8^cnIzmAUF)n;4Z=4-GaM21PJc#?t$R$8rDPwm>ZtGjAGOA83mFwg>EKldJlXTh=%(i2+hn!s{!(1{yZ7}^;Tvc9Cq z(g_)x*%{an(g~UA*ck{I=vnF;aB;!f+SwTBn8P}yG%E~Ps4^fg-BUG*HP(goT2@dC z#um|v+Ma`d+ytkTPWrmH ~nbe#Y-0?Yi?iKOFX}Ku?QW_@=V=o&rv2kpTWl z$aMvwguw+03>q8>nVS8 cMGH0A;iViIit(gQS$0oEYDCcM~@zpkX{`X`=%ixX4`3Q0cnp@mBkA?Z}HDsg0@c zN3i%m+;GW>0uF7oaGKcLSL_7XVKXiAVVEvuvNI+h4JQHae*%QB16gu-8ro_;>SYNP zGP&C;eJIx1erE^jYog3OxZU|wk6*V!4u1sYiP)Pmz9PT&t9WDPiJ}E2rfZ(LQ^uI^ zYfKI}bqAwUJi?YrH&zYZX>#U>B-_>{-*&jXIKq2|6`uw1Ib=)J(H}-9z{cPmtH-vd z#5xogCoMD@kT=dXPpyWER87X8e3j6tEfu4lvch?!VeFatSi=PDwIjjzcCBD_n9kS4 z)T%9AN !Mnv>ZS7I-Tq&cLynb?hcHX@`gj`GZEKE9ab-Q&EFPwbr(KDA( zv-}+opL4~?CGTCygJL%kW@Tt+_Q23gCn(%wDW#AmA?7>24IDWK4bpracCXMn>!FWu zrxZ@C!J-nEc?}zM!oW_=7$Wa}(<7PoT1gF=^TPrady~6&G%b)Uk7MjlyKC-`+7aLg z$YP%ek>K=}`{cPPcohOR&bXP;qi#{zr&!vx*7+-vc!fO&==>y^h(h?g%7bwe5=%Gl z^lwLQNO(`zYSx}G5t83cMglts_aP8IEuTj_6``TrvoZ|W!dEE_`e%olEWSZ6{FWCh z;%<|)o1M1DKWhNSJ&7F|;>kV7M(mp(EtHfzIxaeTG?dOI&3pErL&iK+E(${y??3jq z7d+Y?z2nyUb=s=^)NtlXv*}8{*@%1=^Ei2g){d%?Mi1cv@!3bW7a<+YSkZ H`_L z`<^=s#nmLHDTM1EKncm+Hh|vwIq~45*vzQMmr 0+f5y@)Ip`IR^zQ&fM|zoV^(i^=1AVt!&YwMp z50VbWs(h<3&gW3X0+-lzoYNJ3mp%>P0~-bRs*bJhDTYI1whPOsKU}`kNj$4Z-ig(| zRt+FQ&`|A(gfBN_c}_HS85%C_Vu;li*?a20;9M*1DqOO4<~$D^#Ss2Z*X>H2HegHG zevHd*{WEE;6=PlWbi@)y>qzoQh%$TQ9E!bh$7Gy-23|(=TG6W=9P$^K^Lt3XP^fN! z2DhVbAu?dyHxllko$-5-&jY_nXX4LF*6!T4yu|#8c3L&3#o||fb$E)pjreJNb^rZ1 zD)AN0ZG_3Ff9{lWgVmaai6mlQw7GOoLWl-yYT9k491yf{)cUDbHQ|Bqg5p-hZ5m?6 z;AjWunz3=XoH;c_Ad9Nxsb-$*(==&`0}XeKyEAMKM&z0M=S?kGUr^mySakHRgIw7H zTm8EZ<)b)sJM+hyNO4Sm_>XkmHnNGe_VrpzX34E?L+&fK*0O2U(iCeCnnwIT>AFAF zT<{!dW_`|oJ_}X07~_{pdsd-W7de~W{1V8Mk) |Cv8fEw&i+yyv7xj#5|(iW_)rJ6AX`+VQZE2~Ax* zw0VM!M43rx&076Lx5o}7%Q^7cc3sYZRJDx8^I2IS&PANDbI`Z6*?d^DNNZ4%ZphAV zsn@l&lUkBMn~`)Sci#K9zJ Yrzj+RNaMUMfKlTa8* znFAtSc mm3W2||mUBPT@j zP-68{Ik(E(m;3bYE0L=k-Uuyf)`z~c?z@x|X~h5xJ^z*11UlRB8QtcN6~``CjA;dj zW5fCA`KE399YfSuj6JZLnK*Jh_aAJqBrW8RZa?la0d{PB=_NtC$*q_=Wx!b?EKq{^ z({kszu*bc-CCH;&rnMFluX1sCHT?btLKcY*sQQId8Lz{teym5?;<)UvAhiGwz9u`@ zq5lFiyWBjMfSQ8eTzYnzX$Ct7ypxGcXW@$p$scsLb%!(@IULY?=Ufo|8N)R2si(N6 z^g}iWSp!+VNM4^M%4v?filD7=>!ReCeAK3SYGQ@ ?9YbY4Ku)oISqN-I#y z0{`eXlJ*8%PK#jtfkZ<>2|xe*kcK^!z}Lr>4tH^Cu{|}I^bxOd;dV$`i;BOEv3C8Z z+KF=0WoI>2H?`t#SA%m66@U@xH>=$+0NdPxM fvM?#yd)NNVF^sMtN2@RO!&*TlB|V zZxbQu>TsH2Yn+>Fk}4r7bLJmOcLKK$0;V<{EG@~SRwsk{oAmvt8`=1YIwRpyV3Yvt z6$vA-7E-xNPFS*cD%NFJh~l$V$mbk+PKLdBiMR&B>p z;-_UvHlcvo(LfkmC7v8b(A>iwZ}-9PEit)R4t3+O^tribi1o@4a)!u9AvFY>*+deW ziU>0=C@-tB4WK4vwTeq*O+o*``a90vW|wAQ$4fn@U#H=HvXA2&Bp$~yb~vSmG1mL_ zwi{%vAEAnROd>EaiKKc5BFkA(dBEvSk>FNG8vL|`ZrnY17>+syz@5#5Idb7FVeJLYNACrnXXm<0RG`=>_X>k}q40nW}@020JB zEEjRN2*giK=dZB6D`gTM?gegLWAEeITAt7 KE&GR01kCdlE~DL34)iPtEK+P3 z!=kO#9r4LmtQo^UpJ$LFnK3>v@
I~ zXX*!7lf!6;JCJ*NUE}6t`C;G%Z@kMYBJQ~L^cW-JmO6^#Ky)7CUG=t{a%6{A2qS=$ z*L&YfhcH!6fkc$Eom;OFbcQ?@8=J+!y_UrRb%rG$Kwvz(Wmq8_v*SS1|B2|T K)Y~Pwdci>r$gP$FmD$aP&Q7nx2$mmze>IA4t&GACYi z0`9c?J*ctwIS?agUjARdar|_*l)$lMe%DS3U73sI&GEQ_8$Zzc2b4uwAy~-pWLOJk zv&kYR2H*;acvdbbv`Trz-_QpadD0)&h=NPLnV_~=Lm<^lvhmm=>pNJ#@utsLpYGR6 z807w8)T4Gr+h}$xEZL}^bSdj~cd+e4mRs)=7=b8s-?E4qnpQq*XMDbdmQhWhE2Vd3 zqBp#(EEXHoBZ0eMeYOVS(kdQ=s9*{pwGScvP?`PkVYy&Ts-rC4u4^IBj4OG@z?iB9 z-Ik4|MhxO6!c;rMT5O&S 8O#nD&dP@t_I5GJGpaKsLi;EhLN|%!fVK+zv23MZqD+h*#$Y3iQU|TA< zM?fH6w7hL8cKy5iIfIk?iJ=|xp#xIbVCuf_6H3W-hrvE9lpO`I{Y(hOs~0xs#wT-o z$wNTc=&I5I7W!7^Pnxq~Yv)D}X1E*#_XkWj_hgLpcO6Rp#=IwIW&Pi)=$~;;p1vs# zcQlnDa~#hHnx{DqQCA+u=cWFzXMkq;5ZzxRN8S5m`t!O-jZSiVW5dH^PxV(oFLcWx zOwJ?3F}*ify8U5My62cVrU+Ph`Z-N=7JmCP#kq)AajAwpM0=XUW5x>o1MIHD0$iQe z& ^7X6|V@ zo{$2>=&jRS NTE>zT48PDpX(30 z+^lq#*M2(HaIg=P-{=dnMf-+7>f4t}Y2Lm+FZs0qO81T(9h&nE`za(jL+Y2`Jy8d9 zDZ(k*p*EPm8I{!P rM51g7tVf&fh+)R|EQ*?VDG=dhJP zm0IK2B%%eDqoGb=Z8)pkyrWc|9$&ajM#+XFj*l5R)uRP`c`f#Ur8d$o^i>smsx#bn z88Z^a+B?y8Oy1Q5s?5)qQ`6rc_~uZqVl8-NKEx2)Kus4S)L6?T5-pH 40jvkKIbZ&%ebpPAEI_3^(QLd*KWv*`w^ADY@U<2!~qrcE8>KC?wKr zMdJ^7qUMyu)TNG}N2@gmq!!f^#x3NmVS|uyEu;+e`vCeJdl@E!!$3Tt{r1gRR)&rC z7{5>9>7#kba)mO1CX!&+6EQ8TyQLSl-FjIOQN_%RawdT--yjMhnenJ1ELjkR?5UQp z51Fbm K3$c*}ytN^Ealkb}+K2`ZQ){=N~E7&)o8kABkE9g@luaOPgID jtuM)Kq~D>*`p+C@D-0wPaEVT4C(odUn~ybOKaO>nv89#t{q zy!x`w?E4hVrNF@#o}^Damwd}p>dVJmkWY(VTn9S3U)d0{?k3e0CAiOS_V{5dXn$Y| z#M73=ZJskaesUo3NRe`5azC1$S^hGG|JYZZ7Dsd}? _r7_o(wVVZKq}J=+B``FJ_{?n)$S}-bl+HIjhyy&=uhOv)0jE3*mMZk3I)2> zh7rwJ5m8lgeWWZrRegU+b614^p^lnL0Ar4K*pR+(zub5*sva^ZT4)2TPWoNHkeGO; zV86ahRJzdjRpUa5q4%&1VNv}A > z)ydK#yGD^o+bTv5Q-EjiX4c g)J!^T>M@A3i!3PZK0%s785zf`93*k=dM#_Sw5MGqHLH=l%rXL zc$N!}%?_yFt+?8d^(uqwYo^4{(>@g9?dwiAsIlL3vgbjO^8Zp1rQvUaZqRIM$SAZ5 z<==^!d~7%VE!c-zs^9&42WG?5j(}_cem4o}{yeUCPspKqR|oHN`)yu-7U57f)7MHC zq$1*<`wf4JMjwMZCK!!4f|~4Fg8HN4(8LvPdU>{7L0isaq*v(~=^MAhe;^(mX-nFQ z!$lUHy@7krCF3KGg2U?q(?XJWBcspI^T()e=~*i(JRswAik&r)6=!Bhxe~aG$Le5w znteqC;aumXlM 3BcqK?9F zB#T!QiEe5kITo$ggnHFXg53S{>ib*I10mb{rUpWMb74`bk!2eQ-rJh*VNTmVxGie^ zq%PV`{wcBgXPCw5`+o0I-__EJ&o5N c3$hJ{eL&`M~2R`i)-Uj0&fi|8kC+bxKf6cD456 zjm=|y)VzMr9uM_1lwhXElkW=QV^qu|3S~?abIOmBxFWk{ZJL`4;f8im3_-iKFJ5sp zqX#5<_^sG@BKgP8K0U>R5(7^exIOd4lHQn|Yv&y)=u(A-%4)>ocClv>oPi^=E0s=R z-L(8_RN4;9GSpp9rk_m@Qv*s0sd03YxnQlQ(C9YftAfOcT r(8 -iJ*JAP zrBwJgottBCrOU8bIysy4tJPK`A=WqTEa1v$MDBs5og`f8SQaQ>vt-un*lLVbN{?Q< zs-A1lQhrHtUzz3_jxvm#sluLcryFcCkte@t+S?A^r`o*hsv@VY5enmHN1um77nGk? zY-mc9(h{NGXV{rr)N_cFprbH6;0yaK5<|F8zqi9lun*)FP{bPtWBi!!cR9)T4(N3+ zdO062n)KW>O~5tW>0A97rDf%pRmS>n-7Vuzh``QjM>WxTK39_8EE>Nfwvh4miiHsm zxvU;UMbvJ&4m{T%jJj6H?9F-DGFmDx-T8UM@i}a|_jEdPApHq+`)aees$5wmuuSJe z_nUj?7`i{-NUwLV^a~T1!d>;9siG_1>%QNLllNXeH&r6ljw#OVjdWjC^V6tAa%E$H zI3)ctaW<8vb;4lgd3?Dms dY?%u8UT6ab)Rp1NA z{)+Y+QmU})^Wb(GP64%;TfS4g6w6Qc`H|+MN{ceCtG%@I`#~zBs$4o-1@SXt5CR?= zMl0NzCOVbB1?mjyfzn}yMVkB&{m%tqLA94qketQJr^>=#IqXqM`M6GX1nJ_`1Hg@? zN_W)=?NAI}q_V0dPT2lVf!%yNT>-}hh4*0RK~+<;b5*U=4R*D{q_>c;tfYwG%+z1& z`;v*P_qCWiO_am?@lyDPpCSX;ic-8d;(;k?m`n 0@8o#=zW3~V z#^9m}j9QdH)6 B|@3T}w|t z*zA~ZNeaF2^cd!if`WWvm2B!TG@IsiG`$H-{=`ME6FLQ{pxm__JlDB8267*84AyJ~ zAVJ&ec-AKo*!5@-4Cd9#F>mBOqHf>uPZ2QhAGW8ZDQ(XTKUZJOE%ACNR_~oJT-I^j z^B#?C+1xEU9PcEkO=PX=C#`YsQSgYC0kGT|sNcgD#olXq(KFr|j!8D!4n9&iNuZFh zu0RyGDjbqd=hr6Gyc^7nv|=A`(I`pJbMY*&Oou>O*!zV~3xXZ4CFKr^k6y8;ML12^ zT{ cy@cVXwz9p`z z;X^uxC-AuZzQk#A_K0P*ui+i}Hd;tfSe!cAmymcy*E;1p0oubvaHYfA;axHcN&__h zKLk6uewaZis1U$MufcVg?GS(wI?-P zQMxVilVIvad@Lu_R_NyDjK!fQLL|=#`tYdAMIMD+VacclmAG6577Gl#;;ufuNeV1# zB*8?bo?p&(56sH =;gbH`om<(27k z9@Y9i$yL1zXAGD9)e0Nq0*Rl|?Dyg4ofR)^3cNMP2PTEYMJaKD-p1V(JVl-b4@>E? z&yUkEdRgi1*~T0QC)w?q_((eY>rT<$K@X*M>G(hzbfuo7d?n8KklIB{Ualf4Q$!1u z4)>(S40^HHY*??6%Fyj<0T+JDJ>sC{4nZRg9b`eVZ`cjR=5Q-=o<;TPE)|m{tYu6A z7Jc5i9+CKHh#_~3;7oV{BCXVV6HmnlMWEG2BA=tGR2W{WdTrhV8_Ull8BvC11(Mcz znT^Xp)jacZ*Go!`+#conDZL_lxe+}9^$;(Kk60uP?Ew|>45JcoA9KHaN0-w(8@P-d zrC-Tp`Hg5hpeCBCW^*j`XV48c9I=8&IczaRqSja3O>b{FZvxccsV@QXIPH(|r);w2 z=_b1tFJ23T!;IBf2>-468O4kN4HSSN9te|;WH;MR%wo!57OkN=plnKrJ~`F5*tx@{ zccc{NVgDZZ`I78?jpUy%7)fX|mDG%h(mdbQ!3BPr%2yFj%Zq0)O@DUJN|Hi`eI$!e zpW%R!T3eKA?jKxu7nB_4yUZIVAU2I|EX*VpUHKrM*^{Jj7b{li_MZ2O8`MY^v(5lk zlt8&e5aiHgRhXa1buib>V_>%Aa&Ti0i3S^u$*QQrye)l$6Rb|H5s|>0s2 lS?h6Kw@xw`(SD)-(M|rU%4& zp3U;t#-Bc$wF>>M-^^#TboI%5Z_U??K@!?wdMHXfGGXt#I35KluXAoO9BM+^PcorM z>S&V6raIlw!n~X$BBE M2nsUdpZo62!3mqkKCs~XJ_!H z>(C&v)phVmS{`AD#Z47S?I|KJ2GlzKxgV3(mq@W?klqQPGHc2FgYZ=*sf=O(7~0IQ z*pF}nOYjc+GYf2E(zdIYX0yEhdu17YE{8~Z+7#g!K4w9%o&3Dg+M&suFgdX8{#`gm zYi1Q^h=+GwzzHp+#&;$RP^a*NQBJI v zSnxG`*gGN^uU6TBvi{U1fehkZeDtZCOw_IauuGPa>~-`6p<#j93`gsqp)H7bn{VHB zOTdtZ+ zo;Kbp!t=qR> zzS3h%yIfARDl$5<_Z@?&?MoT1Gz}3eD?!U(*Zp3}k5$M*dNH4<2nA`MCuS=ZgbP3j z{`(89*qTk@H9mJM#{9mNX?k)rcsSdN?7py`_Hkd)XlC=aq?lsj9_e{4y@QaS2TV_b zLLqdmby^P(Nd0JvnEw?!y~RXtu@fVR;UBRR^M9{0VE*4$8KfGAFZO)=(K_;rFa)d| z9AW4_U=1vcbb%4RH*%Vn3-kS^hH>@j(VrIN%~pSjtB3=`hCCM6uf;j$vyCZ#vKzu` zU6M8%N3uyJD=8SBEj(B`)Ht<1TaN+99Itjx|2R)})!*h@GCn_^P~Q!-{~5T~IHnFP zCZ@{r=`F5`&y`7%w;mU;PwSPiv#Pn{xLaS cRa6l05oZ#cIq+$NJ2bf&XPg%mZT%`) zOb_e>*C;%LPVtd8auXN0mM(s|Zz$|BwfSW7wqUJdu}QCWt~JbEaAT2)lloB@dYb;y zuWVBi^~7Fvt1HEB*RFlXdH@1)_uBaH`BkSk>d91-6kN%l<|>pdQD1(r t4qtLOT+Rh_N9&R(Qiveg@95f_4u?xT5 zc(i*Qu`PCH5^@ml(-eVn_#HFjv+DT!JTINXr{LT9?O3uv+X;$NwjnKCN9IlaSWrnJ zi6FLuLX-d >n z!zrhqE$bQsyZbf37PyhGV-}ib?VfY#tmPI7+BB}IX)U&&_eY!O>aO!MJrQwfwue9! zmP-ZU^cSGcQG;y)*dR}C@f6YK!n%xIis#GoH6PK05tTlvpeZ9eNy)9F!FTzAGkk?n z>NYEuz1BM1BwZc?e9sUA9{&5TrCLy(VG~POlZBrb9^4~7;RrWnx~S8}cb*!Dy)$~= z$B=fKMK`q9vr{#!@5@#3tv@7V$88vUgmS(?9$*7MNXvda8Y9q+ oSao}$?W?CmtQ3`$ay~G#ZGGjQ<6bBnJ4~KFXH6tZ;zMK;d_rA5gdV5aK zpnB3jGKV#M*$KjOR2`0_e9-qQ$x(}E_;xOxo%yPDiz=}4!646?Q?=^Q)N@GlX%eq7 zy(1;x;zARc#3k3XA$6!O{lxsub8DnTJt=jb6R$@sZa!)r5LY#; 1-e pC$9AXRzRh z2?AE=Gl7_u^Gr-6%z*C;!dez+Nqx@vXC3}`fZLfMb!AU)dF0FdhnDfQceLaYt?~!G zmo5Ho2)F4(*Z4OFW!Id7!%i6<%SAOCZo#MYZqEt!H}D7+RFE!6I}T76tefN!1h Omvu@fs^KM)2mcW32k+IMN(ti#xXcI zhb@H$SBBx8L6cxkbj)B!0YN{h9WUg&9;@69%F@}ob#|$PQqN>Tij8db>u0jpE2h0T zbkPj=UqC^h)m(ygm5!O}$(oBBT4yHq9?^ME1-uXCpcPddfMq>wq|>qFqS&AE5`apn ziUf_ru=nsE9nhygf7~`gDj7!E_C3bPdQt R?mSzhK&5T@g5x zX%%n!yo}J+412~VP+l2UvCyG4!4}1moDnuK+cM4QyF VBaZYHx-=Rgo*AZ6Ns=4ad)sT>%leuBvFFs#FJ{Z%8YkIq0rARebK9-$) z{TIUf?IP?12D1z{`sps#Kyvo0VK-W)t z7e~n;YZ+Ga2~vk7-N0stGZew{#xA?ct}9}(#qqgPx{<;9NU6Q5*>d~%T%S_En^4|^ z!hpjnfL!%LTufJdQ@7eTN#~Tbwu)Y_tGqcUj6wXm&|asjwjp;rV+ZqaXgJ&kjA5Cr zD_#>KrrI5Qgkiy6z=aPHiET>A8E#yyy2(46Z+{l9lEsK&yI3GR|CIXWogI0dV-|&q zxw9+dQ&B-R+Ui`rcVhCrBpH^lHWRI6ei~Nn$H8b~U|<`=&oua6gr3)ZPr7WWnd_=# zejgdnCmr@9^Ff*6Ku?Qjq-uwD3#vG?uyBM5M5!!?^_fd=u&O*yDrag`K~ ^yG~j>((go%Meiv)hmhOUjgED W06_{N&$;&dUh(rd?>Eb% zIcrASjmz;Qb W$I8#RyRm>G3yx{9KCOUwB=(gjGRTq~qs# zpym@Jr5Y^5TWPyCU0lC;IYWS zXYtDJzv((2EqH{pL0=&5;*GLrIPx4P2QDwLAD5jXj^bso^Ei4P;UF%J_qaM7(JTTY znmSzb>nw%HFI`G2=Oez<#W)k_FPp%IBh?NgH4m14A3n0Y_(fcAmmLjkMvlqeEn8{{ z{^Nq}sgq^aWf_4n_z4wd8ScXJLk_|ZudT#ZkgUnah;Sz&FxD>*U9L;=sSe{na&q?S z%OjYE9LxL76|9W*^z;~R4bA!0Ua6^YgPKMQC`S* DX5iXw}IMJoiPBNJfB7GMsq+#^scB zYLuOM2;ig)(JlRZYDSQ@zqOG!zT&3mggiHxgO%IyMmXTni0uw5tR7*&gBvuYz%Upj zUXXLNwJt)M(RJ~;&=pT|-Y=&l+a&m_n&B<&=E|;;cMh|Zm~9q_#Ml5VVmutm&km)J zh`B;4Oc*E}r4pqa{wTsF`nZfJxp60uWShzToaHr;S|%aILYBk1W0vE473F-U?)WZ~ zWS4^3V$8js6Rl`=f7K^N=$boRMZMg(99@>Hp^9>$DVu{7B~XBM`Qv0Jm9z-d0`0dk z!H*;id#pdm87PcFB4@=PqfNT<1_7Z=N<@^o4G`od?@ck_%*K*N5m%6yY-GIKlznn+ z*f4Z|&Y6rNdeZ34m(wyO=kzg(9=or3jSz=05O$q7A=qQ`rFdvrXs|hJfo!CX42vY9 zyWE&a{2p`aOwM!6O8tw0zvfMeiqHa7drhClK3BYJ_I1;OXlCBbDb8~3LlnFsKC^?p zP+xcXjd)43sZXct+A_vlLpDr)lF@&mlKus58fNmQ;Wu~Qn4opb4dgyKa% 7}Ojc7IxS=V(n_mvRwz|U(@NCfrj#_LZe$?ITP8j-MmO*n&YzpPgiU`U>Obv?j zQerSR8^-&rau2*#q*z-Z(Q1ABF{7oCn9aDlb6>M#o2-Zl3xB)c`F#Bj_4&j#6Ow!C z=GIkx>%q2Fm!4z*I!0S7-SL~}jgq70G~ro~%5s#d9e3mw@IgaMbgm@wB}JJdA?p%? z8))t4M+%t!yvySj)#i;p+@A_^KXj;@&IZZ^ts^Wp4_%+d7|?LLGvsvRd`z+So8jt* zlO{ GI(l4+gAY=aPB|h1||KDe5giP~)G(--WxWhfk`FepEmG7)`R- z6KefcsnRfZ0~>#PIC-&6M>W|XIh?zkrr6!dtf^%_pl&pI%Mba$H7_h3&Q86c=AG-Y z)aTPFQxlS=%qAzLyym1J2?EfylT4gUZnL*HX9geMpOy1K%gks7p8F($EesEH6mJ3g z$F!B?7>ezMRK06I9ghBLOTK%HW5;_*ICvBO1=yxylm}{^MUA8SSw5R-?)TSU(n+C| z5zBD3S=-K@F{#7LkylyTti3kCdcniE$#9eLb)s>lSu<>Sw!Hd5V6l}fmcP#H8a&;W z9`3bjdc!LJYvS}aA$pxS0T@{s|2c8`@Adx7|I>p1!;}S^Ng?DP$Jbx%;&Ujea>lHG z$$kJr$%5;OZ(&crgXhxrM?JY3Gpb^96SoxG58WURhEqNqys*1|SmHbnUu6sEn1zab zRB>0 jV_2gD>dbnotOE@^`~W@4e9=f0LF8WxOhYP5nU%r zu9=#8g0Sx}U9lNM(FXgQb9TGwwOLZH+;u|U(0RGLWQX9g(yVWuS( XLD23&d*#}QPM9bQzd7ZN6qU;I(MdMLN;C!r`lvz?nBt+D>L@O~$@)p5?9+|@Gw zQoJYAMy(EYP_y>^mNdEo`*#ziepO%*jbdJlpM@6+4X1))Q6g<{vGndpg8gpYcNqFI z6*vGG9cn+@{fJjH$=6?o$>h}^G(wh1ng^S0C*03v$y2qL2}GYm=m|b4(NsL!92TM) z;cSD^jAqGNLF0;DTHe)MQc0ka)yO3%C9R|=GH;s2#lWcvkF)$fr+~ExGbEoP-i$3u zFS^Q~vQ(Q0`dQE)bC@hFg0DU}o^z)Ec ^Pz!jagMJT7v3!97K`pKEHqGCJpyN~MpFXZ@@)RW{2m zD*J+oWz-Ggwaps*>b}MV!h%Xvzf$la6E^W^x$aP^CU4>GkAGKVBot$!-f4y$G+qJc zxf@Strzs~)TkUEDeJ}?bFta?Alp*IQcH=ksR}lEhW*(U*x%tnsoQi}UQ*KPGN8CXz z^NTpGJCo*eJ=%wH7H7EqWKlNXk6|m99ZMKnXIMhmR+*Pgpj&!%5vy_ws~v2kKTor3 zXdkpSLtfWHT1-gPL0%!wt{|4}|7;eUXE*aSogIb|@4mV^J|dJWRIT$FT#QMavb8|h zv1h4xL;-m+u}F2L7VG6(-VZuBO48$9JXLAMEP %m?hF z&-QTyTLErNy;Zw#UQz7RGAB+u^Y;sJlbsu}I*%MGwcB**sOsFNu5lSn{=w=E5o?o2 zG|LHfl%Ml<$_T3b*6Gsv(ECc2?%tJq4~4_XUI>e|Ya?Y@H3ONalRqk5`}Wh0wK^Nl zGaax|cBwIi32lHhRxEfWI?o`Z85_)@?8<7MCU1`p4W4A-uUB#eclnXM2ypk67NSRw zUMXVNOtVE-{)aF!JhsIj7r>>I+@b`H$y0lKX8dElBxPay>c8K74#^n-h7dA1S3HM$ zBGksh3rm8SInCAKum`Qxh`t$av(xT;90k9Y2)#ktl{#V2zZqnw8kV|bc5lLx1jd)2 zIJ+}zJL)P82oGuv*)_F)f@?)ro7}N$z7*$jl%qO@g%-<=Okt={{DxvzC6J3oa(sHb z|LM=HD!=~tocwd}cQ-Paq+&DT!lU0Myko`Y%N??4#dpQdxN5|0@!v5gR3&oqSu{ng zu@UpqU}B<%?8mh4v}V-M%UX44;SNw(LwIz5%ved?*QBCjz9WG%VP9cAn6u$s`biup ztVJ}fdiqm&nG^)-^ZGLyAPf-N4Rg9MsU*QahCBV5b;8OsWi-Kv;Q!SZ!f4?MY8rns zy8+^(3aP!3qSsl;&U2z4sZ6(MmuR Us`7{$^sxNmY`jcXT_WBtiTz;;Q z1_;8uwy0d@sGV8qDWdI3+mrH>y}8SUBCLv5fy|WJ>zT&-v}V^YPpn0^V+_sj9`N$= zC#v{=*Yy*^v`qrOJ6z@0tHb~4eM)Mn-Sl$ MyXyj8NulnL6eo);Tx6|yRJq3SpahA#6Kg~MOfK9qcg zQ;3;3|1JXyet2fEnWo}<(?#>pg*P}kpwDfO7GI7w$4+c|pa3DhnAA*MoXPO@Kq@Uu zr1Qa1FUzfh8e60j^z*BJgx oDmMud*Hpa_7i7$^UZHcLh!aEBO2bnBRkk5S5#J& 7NAvwIh9gsL6LP~L9Hri_kLSk&IW3|I z $H=)6%-uiNLCPLo%90s zgxC}s0>+lV>+moVn94KI-HiO0FzvD2NLoF*Mfk#L98V^|m<|$C+7EwE3{7~Vn%siL zmocU=-y&GYF+#FnfREuIwcw%kYzTL?L!dM9BjLYej(_Y3W2FDr!&)Hlzg~0$LI2Z> z?qmtux0vG&ttcgfl8Q96 Pn8nd9F*BH~kg z-b(D*X|;_jM``$dGuBD^&MALdAN@NAcG*Oub?3TP=F;=W>=#KzpZD@YxCu0S!j;Cd z;}4gdljH?8yNaVJ_IoN=#EMDH*HsI10+r&&d~VkMm{)y`R;P)#N8gt^L=bjpb5BQH zL5O~=zc0Sop_szlSyv+~B5q V6X-W`ECF z!8C>GFtk=<+Cj#7e3Cz}u~CCxk-R%W_)?l`2F71F+GMr+z7UE=f=hUbopFPCx~Q3t zJ1Ei}aFq2J{o&Y!Dq-v 1zDav>;sRY+yp;DPmHmnOdK=qc2O%wT)q*9&I z7z+Bym&G)q ^4JH@sw~S zi^NoyNRN-;^k#V&_8XRw;mv|b`NcV(V4$_Q4|ve(r*(cKUqeRO&Odrhq~ s6)>B@}(c*T`9&h@=x&wS435r2lt)Rk*zx7U;LHW%Z% z#C!dRC;bdZ-L@Pyh+voHk(K%qHZOn6=!?lYL|>wn2gAMrVD0pZoGUV&4?EProUYz| z-Zr+YD1toj$GNd7r6brvE7Lp+2R>YSCiR$28EQG-rDfjN`rrFPy=}xw^Y7(!hueDe zNb!q|2qfxm<9{3+$@H)%tU{cBNxvrWDZTn4v;Daza%x$di-7IpF?M3`nO?e8iU-80 zKJFUSF5OMjVE&jJ)5H1wex!~36MVmQOGcBL=4g+xt5HvL>g3lH_mJtYEt%HPv@E4& zd7;OvQLYXx1L$s=w+>0k(32a*;M8nhNZ;62o{n&W`^S{!!#0|pVZCva2w=^;_bfaD zOqsq>D2>;X_KF*doIu$NmfAciML4pRl WL|^NjnXP =Sb};9 z!-O$W%eTbmH(3rlQEFgrlKEs)38kwjej)0_FdTDThgza;p{`A;8;#uZH#}ZkjdSpU zPs7kQ-0>SV t}L` z8S!)Nlm3AbS&t)^(IsS%4p=!dz72-Y?8JTEf^H!l?EPb7|I~W!J4*jm{%Aw_)Z5=A z>1eFxP{gti_H=gLR>gXzmy9Etn2HNjlz{rX2)Wo0Uv3B?N-e1vxrrtPy)jkvcLVas zLOnyB>5f$F9gX=^s;^a`mg|k7bK+992N;I0DqT$|sN}NpuH{JS^TkRlIF1Q2^?wbZ zZv*4&q@4i-WctUX{dKVXd!d-Tvy}mzw2q+xorHnDu@0Z56QSDcyHFqlBO!>DQ3IAv z*3#}}$37wb%Uw1G7IuVhOUho74Qws#ZS)LmUpD$n+gR$!8Q7`Oz5EmaA)Sc%OLqK! zUquM% E9j#&M1fA@J<=%2 e{D$2O#j&xnE&o9Z(V`;FMa>f72eh^{JR9^ z|Lgt@eA~43uigy&+h@E<0RE-#KPCLLW&Z99z*o`#mo5tQm%0DbA%WgjgZ%A~K!54` z4+(FRl7DZ7SIvJZcyWO*UY799&Ds*ui5ctL5~{)eWtj|r^|80UFAMwDe_k$sCBC(z zEbQBNAq%TP_+qv8FYXZZFQ5EUgMawHf0p)lVf;FFI%bxJ|0wmZ7Wmiw|2Bns>!|;9 z#dMN7<_2`KKstF@IuZRBUu$gVOvfio_||H43jDH!Z}vzhB`rb7Kqn_bNKZ@8_^*5! zUhjLAtwtwep>N=1pbtwYVBlb^XCN!g2g}IJ49h|P*TF#l3ga69`d66VV5WZs_y&mn z71lTS=wA__7l3^^3BK}I4h)QMFfqIWe1nDI72Y=l7+w*4<*%|B8DQT&0bqQE`3(@` zD=csDGQJ}4h9Kh$0ERc-ZU->E0t*1W!3ubV?+t#yD*|r_0bck^4HM%VOm7E}=@k$Y z2=?W~`vyPLD}t~5C7c=X2J_p&!u$&F8+^>K2)-c%%Phn!^p{v5;ElJe0RSM7l@-7Q z1hKLLL9e_du(0w1SziIL0{K|^fqbvP0{DRZtO7v(R{;D#0oIqQznldDf hjy zD9H5s @ z4`kv4vG6j3SYBZg0KHTN#QFv=EQlAx%S;dA=LLcIUtwkd3GlLj1Ycoh0txZ5G6PxY zdHGoAUtwlp`G4(wcOaHu|9?rz9V%p1wruwvB @3t z6v&1|00yuK0mzV>9N-5^4kr%89pWg!2~ZYs3}o;~aX?!f2ZPv(2gQ{GB^C#X;{mV1 ze{t}iC@u>b;6;>^7bijn57;ZGAiicu;=sT_`4Dm>&{h#da7Q-e<_8LcCZY&{jYRZX zLxF0Mh>^uXh9D oN6RVz@(N@_k_84-Jc0 A*N9}Kie48$8i z9h8MgfDGW8tUQq@3mG{%B2gYZKtDMJqJlh$2>t^@A{zt@j0q%QfdO 629Uxkpyjb-g9B|I 9rtFkXP_2EB*~EHEG{MnRt3zcKPe(0k=U0$2rb0sRYj zfd3=~9E{xE5TF^7)|w(nPMm}Q3CNO=YxM|15J^z7kRd22fcv!{3B)16Km{Pckbr;; z;1H680~Q!?j{^57$S9D&u!JWMPG}Gg1MV?ogCb#Jpfy5c3K&($2J#dK7BV={EkGkB z8^~1-Sja#v3$!h$-bu1BaFGZ0dqV*C-|J_MOF#ZAfIBG1KMiT^CuO`omHnJK;hJ6+ zo)AJIV~XD~#P`=EU3)8_V+@Hxz~G0i?QQKmIdS4JxSYMG$5Cr{qKlKOi!+2;2w>_a zYasho0ol5SG9(&}kdpeLi)>P_DRKd~i#cCA(2PRxMVq$k{aXr=p%`jCg&Hb^&*N-K z#3(IOYGL&*k!+KQG)cL#l!+}Y6ha?ajRMc1&~sDIOr|F}{Hv8ty82r>WM8qtpyM1T zS8Mjv*Y%6+F0`nBe&~#cp-6n5Se)a{n|S+5gWE@V^c<(`7oEl1#%3BCm>s@u7B=_V z*=OT*X3s9>%EvnJ_x77T4*CZo1Y=AqMb0W_?YQuO)wHwK&8Bc1F>&Kw9CA46Q-s5u zn+}bl<2RP5>ow_7Oo1uqE+Z55XQeA2ItPDTyiU9L0Xe&`q@+9d?&k;}WZDg1@wdZW zPh#91{Uk)iShJ+=7vyiX^3|U`Sm85F&wS)V2jh8>^y}!p**iInQ&fEzk4oX;ti8P- zl!|WD331T*He50&le)&lbL~BnDP;V zQq?dV&Cj~yt|52ZNd5ABP0#Bm9^$1w9D%1WUv4-mT$yz@vUgn=?W;%ak?T>mzo6k% ze5|%YW4pE56#9VK1EcM+#0xS}vAhHOE?$#mJ0FO0&hRW7(Y{jc=R(ceiti(w6)t3* zm%Nyht(%$6|1nGSDxVCpDzd!!I0pv>T_&~BiI;CCr_ZFxQ=nqfcqZ-!(n%k%om4UP z5y+YO5J=r^@MxdxSo~H#^YY|(ylg#RC{BLfwp6`J%n2JzZ&O$pf lou zxbvaZXSMvT{fDCY6e6$PIvIAi*=)y$y }eIor-% z$=H*q!$T$T_0HLx;Glv@cA8sdF4KeEgzR{YcNIui%No3(1brCOsJBWjAI(BG-x+<6 zcU3Rl%0GW>lfFHxl33h#=SIBz_=U7CdI$5VT7TBe-cg5L6yb^2yyW`hf a6Xt+q1Cc#e98rYvtOE~%^u(gx=kY3`wii|R+B_E2HBfrX{qTC+qq?uQWwlS# z$6U19bW84><@0vq9vvB=d-RIgriRHR;+vFDHQazWp? PO)&?t6>B?)M=^xO8T7`)zaFyr)QG&RgA>=0(7V zIU$|n0?9f)ecF~oJ%S?-w(0fE2j{IgH-3USUV?2IG8B8#__^|;?Ce=d)g?2Z{xa?E zLBp3cB4*`te3h9mU+!__?qilcowrY 3rhF}erVueWKjEy z?=SdO1Br$q$>8M|e+Vu9NF4 >vIp7 Z$IAERx2jQ0JrJu>L{pCufa z^);)13pmIV%?9Au02~{DV*_w(0FM7Iz(L* ?GfMWx2Yygh`3~*roSD#doCz=hwu>m+X0LKR4*Z>^= zU4VnE!C@UxV8K4+KlZPXH9Gw8N5RNL{x5)otmI+c|K9@++`7Vz4ZyJhI5q&s2H@BL z92rbl46U_$T*Z>?GfMWx2Yygh`F2F(7x3&%#a7ftNVEt3VLDs+a z!yf@75Ba|U4zfzNb^m|ZxPe>OiMN3=Hc-X}%Gf{|8z^G~W&DRI;};?Nzd;#miZ3^I zif<_O+ED7Xq10