Author: ralfbecker
Date: Thu Apr 21 18:39:59 2016
New Revision: 55801
URL: http://svn.stylite.de/viewvc/egroupware?rev=55801&view=rev
Log:
move admin >> Site config to new et2 based site-config
Added:
trunk/admin/templates/default/site-config.xet
- copied, changed from r55790, trunk/admin/templates/default/config.xet
Removed:
trunk/admin/templates/default/config.tpl
Modified:
trunk/admin/inc/class.admin_config.inc.php
trunk/admin/inc/class.admin_hooks.inc.php
trunk/admin/inc/class.uiconfig.inc.php
trunk/admin/lang/ (props changed)
trunk/admin/setup/setup.inc.php
trunk/admin/templates/default/app.css
trunk/admin/templates/default/config.xet
trunk/admin/templates/pixelegg/app.css
trunk/egroupware/doc/config2xet.php
Modified: trunk/admin/inc/class.admin_config.inc.php
URL: http://svn.stylite.de/viewvc/egroupware/trunk/admin/inc/class.admin_config.inc.php?rev=55801&r1=55800&r2=55801&view=diff
==============================================================================
--- trunk/admin/inc/class.admin_config.inc.php (original)
+++ trunk/admin/inc/class.admin_config.inc.php Thu Apr 21 18:39:59 2016
@@ -35,7 +35,7 @@
}
if ($GLOBALS['egw']->acl->check('site_config_acce',1,'admin'))
{
- egw::redirect_link('/index.php');
+ Api\Framework::redirect_link('/index.php');
}
// load the translations of the app we show too, so they dont need to be in admin!
@@ -56,7 +56,7 @@
case 'phpgwapi':
case '':
/* This keeps the admin from getting into what is a setup-only config */
- egw::redirect_link('/admin/index.php');
+ Api\Framework::redirect_link('/admin/index.php');
break;
default:
$appname = $_appname;
@@ -68,7 +68,7 @@
$c->read_repository();
if ($_content['cancel'] || ($_content['save'] || $_content['apply']) && $GLOBALS['egw']->acl->check('site_config_acce',2,'admin'))
{
- egw::redirect_link('/admin/index.php?ajax=true');
+ Api\Framework::redirect_link('/admin/index.php?ajax=true');
}
if ($_content['save'] || $_content['apply'])
@@ -118,8 +118,8 @@
if(!$errors && !$_content['apply'])
{
- egw_framework::message(lang('Configuration saved.'), 'success');
- egw::redirect_link('/index.php', array(
+ Api\Framework::message(lang('Configuration saved.'), 'success');
+ Api\Framework::redirect_link('/index.php', array(
'menuaction' => 'admin.admin_ui.index',
'ajax' => 'true'
), 'admin');
@@ -128,21 +128,34 @@
if($errors)
{
- egw_framework::message(lang('Error') . ': ' . $errors, 'error');
+ Api\Framework::message(lang('Error') . ': ' . $errors, 'error');
unset($errors);
unset($GLOBALS['config_error']);
}
elseif ($_content['apply'])
{
- egw_framework::message(lang('Configuration saved.'), 'success');
+ Api\Framework::message(lang('Configuration saved.'), 'success');
}
- Api\Hooks::single('config', $appname);
+ $sel_options = $readonlys = array();
+ $config = $c->read_repository();
+
+ // call "config" hook, allowing apps to overwrite config, eg. set default values,
+ // or return options in "sel_options" keys
+ $config['location'] = 'config';
+ $ret = Api\Hooks::single($config, $appname);
+ if (is_array($ret))
+ {
+ if (isset($ret['sel_options'])) $sel_options = $ret['sel_options'];
+ $config = array_merge($config, $ret);
+ }
$tmpl = new Api\Etemplate($appname.'.config');
$path = (parse_url($tmpl->rel_path, PHP_URL_SCHEME) !== 'vfs' ? EGW_SERVER_ROOT : '').$tmpl->rel_path;
- $content = array('newsettings' => array());
- $config = $c->read_repository();
+ $content = array(
+ 'template' => $appname.'.config',
+ 'newsettings' => array(),
+ );
// for security reasons we do not send all config to client-side, but only ones mentioned in templates
$matches = null;
@@ -152,6 +165,14 @@
$content['newsettings'][$name] = $config[$name];
}
- $tmpl->exec('admin.admin_config.index', $content, array(), array(), array('appname' => $appname));
+ // make everything readonly and remove save/apply button, if user has not rights to store config
+ if ($GLOBALS['egw']->acl->check('site_config_acce',2,'admin'))
+ {
+ $readonlys[__ALL__] = true;
+ $readonlys['cancel'] = false;
+ }
+
+ $tmpl->read('admin.site-config');
+ $tmpl->exec('admin.admin_config.index', $content, $sel_options, $readonlys, array('appname' => $appname));
}
}
Modified: trunk/admin/inc/class.admin_hooks.inc.php
URL: http://svn.stylite.de/viewvc/egroupware/trunk/admin/inc/class.admin_hooks.inc.php?rev=55801&r1=55800&r2=55801&view=diff
==============================================================================
--- trunk/admin/inc/class.admin_hooks.inc.php (original)
+++ trunk/admin/inc/class.admin_hooks.inc.php Thu Apr 21 18:39:59 2016
@@ -57,7 +57,7 @@
if (! $GLOBALS['egw']->acl->check('site_config_acce',1,'admin'))
{
- $file['Site Configuration'] = egw::link('/index.php','menuaction=admin.uiconfig.index&appname=admin');
+ $file['Site Configuration'] = egw::link('/index.php','menuaction=admin.admin_config.index&appname=admin&ajax=true');
}
if (! $GLOBALS['egw']->acl->check('account_access',1,'admin'))
@@ -251,4 +251,20 @@
}
return $actions;
}
+
+ /**
+ * Called before displaying site configuration
+ *
+ * @param array $config
+ * @return array with additional config to merge
+ */
+ public static function config(array $config)
+ {
+ $ret = array();
+ if (empty($config['fw_mobile_app_list']) && class_exists('jdots_framework'))
+ {
+ $ret['fw_mobile_app_list'] = jdots_framework::DEFAULT_MOBILE_APPS;
+ }
+ return $ret;
+ }
}
Modified: trunk/admin/inc/class.uiconfig.inc.php
URL: http://svn.stylite.de/viewvc/egroupware/trunk/admin/inc/class.uiconfig.inc.php?rev=55801&r1=55800&r2=55801&view=diff
==============================================================================
--- trunk/admin/inc/class.uiconfig.inc.php (original)
+++ trunk/admin/inc/class.uiconfig.inc.php Thu Apr 21 18:39:59 2016
@@ -20,6 +20,12 @@
function index($params=null)
{
+ // if we have a xet file, run new et2 config
+ if (file_exists(EGW_SERVER_ROOT.'/'.$_GET['appname'].'/templates/default/config.xet'))
+ {
+ $new_config = new admin_config();
+ return $new_config->index();
+ }
// allowing inline js
egw_framework::csp_script_src_attrs('unsafe-inline');
Propchange: trunk/admin/lang/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Thu Apr 21 18:39:59 2016
@@ -1,2 +1,3 @@
egw_de.lang.old
egw_en.lang.old
+.!5805!egw_tr.lang
Modified: trunk/admin/setup/setup.inc.php
URL: http://svn.stylite.de/viewvc/egroupware/trunk/admin/setup/setup.inc.php?rev=55801&r1=55800&r2=55801&view=diff
==============================================================================
--- trunk/admin/setup/setup.inc.php (original)
+++ trunk/admin/setup/setup.inc.php Thu Apr 21 18:39:59 2016
@@ -38,6 +38,7 @@
$setup_info['admin']['hooks']['admin'] = 'admin_hooks::all_hooks';
$setup_info['admin']['hooks']['sidebox_menu'] = 'admin_hooks::all_hooks';
$setup_info['admin']['hooks']['edit_user'] = 'admin_hooks::edit_user';
+$setup_info['admin']['hooks']['config'] = 'admin_hooks::config';
// add account tab to addressbook.edit
$setup_info['admin']['hooks']['addressbook_edit'] = 'admin.admin_account.addressbook_edit';
Modified: trunk/admin/templates/default/app.css
URL: http://svn.stylite.de/viewvc/egroupware/trunk/admin/templates/default/app.css?rev=55801&r1=55800&r2=55801&view=diff
==============================================================================
--- trunk/admin/templates/default/app.css (original)
+++ trunk/admin/templates/default/app.css Thu Apr 21 18:39:59 2016
@@ -157,7 +157,14 @@
/**
* new et2 site configuration
*/
-table.admin-config td.subHeader span {
+#admin-site-config > div > span.subHeader {
+ border-bottom: 3px solid #696969;
+ padding-left: 3px;
+ padding-bottom: 3px;
+ display: block;
+ margin-bottom: 5px;
+}
+#admin-site-config span.subHeader {
font-weight: bold;
font-size: 110%;
-}
+}
Modified: trunk/admin/templates/default/config.xet
URL: http://svn.stylite.de/viewvc/egroupware/trunk/admin/templates/default/config.xet?rev=55801&r1=55800&r2=55801&view=diff
==============================================================================
--- trunk/admin/templates/default/config.xet (original)
+++ trunk/admin/templates/default/config.xet Thu Apr 21 18:39:59 2016
@@ -9,9 +9,6 @@
<column/>
</columns>
<rows>
- <row>
- <description value="Site configuration" span="all" class="subHeader"/>
- </row>
<row>
<description value="Should the login page include a language selectbox (useful for demo-sites) ?" label="%s:"/>
<select id="newsettings[login_show_language_selection]">
@@ -94,7 +91,7 @@
</row>
<row>
<description value="Applications available on mobile devices" label="%s:"/>
- <select-app id="newsettings[fw_mobile_app_list]" multiple="true" tags="true"/>
+ <select-app id="newsettings[fw_mobile_app_list]" multiple="true" tags="true" options=",,enabled" width="100%"/>
</row>
<row>
<description value="security" span="all" class="subHeader"/>
@@ -103,7 +100,7 @@
<description value="Cookie path (allows multiple eGW sessions with different directories, has problemes with SiteMgr!)" label="%s:"/>
<select id="newsettings[cookiepath]">
<option value="">Document root (default)</option>
- <option value="egroupware">eGroupWare directory</option>
+ <option value="egroupware">EGroupware directory</option>
</select>
</row>
<row>
@@ -228,7 +225,7 @@
</row>
<row>
<description value="Group excepted from above export limit (admins are always excepted)" label="%s:"/>
- <select-account id="newsettings[export_limit_excepted]" account_type="groups" multiple="true" tags="true"/>
+ <select-account id="newsettings[export_limit_excepted]" account_type="groups" multiple="true" tags="true" width="100%"/>
</row>
<row>
<vbox>
@@ -254,10 +251,5 @@
</row>
</rows>
</grid>
- <hbox class="dialogFooterToolbar">
- <button id="save" label="Save"/>
- <button id="apply" label="Apply"/>
- <button id="cancel" label="Cancel"/>
- </hbox>
</template>
</overlay>
Copied: trunk/admin/templates/default/site-config.xet (from r55790, trunk/admin/templates/default/config.xet)
URL: http://svn.stylite.de/viewvc/egroupware/trunk/admin/templates/default/site-config.xet?p2=trunk/admin/templates/default/site-config.xet&p1=trunk/admin/templates/default/config.xet&r1=55790&r2=55801&rev=55801&view=diff
==============================================================================
--- trunk/admin/templates/default/config.xet (original)
+++ trunk/admin/templates/default/site-config.xet Thu Apr 21 18:39:59 2016
@@ -2,258 +2,9 @@
<!DOCTYPE overlay PUBLIC "-//Stylite AG//eTemplate 2//EN" "http://www.egroupware.org/etemplate2.dtd">
<!-- $Id$ -->
<overlay>
- <template id="admin.config" template="" lang="" group="0" version="16.1">
- <grid width="100%" class="admin-config egwGridView_grid">
- <columns>
- <column width="70%"/>
- <column/>
- </columns>
- <rows>
- <row>
- <description value="Site configuration" span="all" class="subHeader"/>
- </row>
- <row>
- <description value="Should the login page include a language selectbox (useful for demo-sites) ?" label="%s:"/>
- <select id="newsettings[login_show_language_selection]">
- <option value="">No</option>
- <option value="True">Yes</option>
- </select>
- </row>
- <row>
- <description value="How should EMail addresses for new users be constructed?" label="%s:"/>
- <select id="newsettings[email_address_format]">
- <option value="first-dot-last">{Firstname}.{Lastname}@domain.com</option>
- <option value="first-last">{Firstname}{Lastname}@domain.com</option>
- <option value="first-underscore-last">{Firstname}_{Lastname}@domain.com</option>
- <option value="initial-last">{Initial}{Lastname}@domain.com</option>
- <option value="initial-dot-last">{Initial}.{Lastname}@domain.com</option>
- <option value="last-dot-first">{Lastname}.{Firstname}@domain.com</option>
- <option value="last-first">{Lastname}{Firstname}@domain.com</option>
- <option value="last-underscore-first">{Lastname}_{Firstname}@domain.com</option>
- <option value="last">{Lastname}@domain.com</option>
- <option value="first">{Firstname}@domain.com</option>
- <option value="account">{Username}@domain.com</option>
- </select>
- </row>
- <row>
- <description value="Enter the VFS-Path where additional images, icons or logos can be placed (and found by EGroupwares applications). The path MUST start with /,and be readable by all users" label="%s:"/>
- <textbox id="newsettings[vfs_image_dir]" size="40"/>
- </row>
- <row>
- <description value="Log user-agent and action of changes in history-log of entries" label="%s:"/>
- <select id="newsettings[log_user_agent_action]">
- <option value="">No</option>
- <option value="True">Yes</option>
- </select>
- </row>
- <row>
- <description value="appearance" span="all" class="subHeader"/>
- </row>
- <row>
- <description value="Enter the title for your site" label="%s:"/>
- <textbox id="newsettings[site_title]"/>
- </row>
- <row>
- <description value="Enter the URL or filename (in phpgwapi/templates/default/images) of your logo" label="%s:"/>
- <textbox id="newsettings[login_logo_file]"/>
- </row>
- <row>
- <description value="Enter the url where your logo should link to" label="%s:"/>
- <textbox id="newsettings[login_logo_url]"/>
- </row>
- <row>
- <description value="Enter the title of your logo" label="%s:"/>
- <textbox id="newsettings[login_logo_title]"/>
- </row>
- <row>
- <description value="Enter the URL or filename (in your templates image directory) of your favicon (the little icon that appears in the browsers tabs)" label="%s:"/>
- <textbox id="newsettings[favicon_file]"/>
- </row>
- <row>
- <description value="How big should thumbnails for linked images be (maximum in pixels) ?" label="%s:"/>
- <textbox id="newsettings[link_list_thumbnail]" size="5"/>
- </row>
- <row>
- <description value="Enable spellcheck in rich text editor" label="%s:"/>
- <select id="newsettings[enabled_spellcheck]">
- <option value="">{No} - {more secure}</option>
- <option value="True">Yes</option>
- <option value="YesNoSCAYT">Yes, but no SCAYT</option>
- <option value="YesBrowserBased">{Yes, use browser based spell checking engine} - {more secure}</option>
- <option value="YesUseWebSpellCheck">Yes, use WebSpellChecker</option>
- </select>
- </row>
- <row>
- <description value="EGroupware Tutorial" label="%s:"/>
- <select id="newsettings[egw_tutorial_disable]">
- <option value="">Enable</option>
- <option value="sidebox">Hide sidebox video tutorials</option>
- <option value="intro">Do not offer introduction video</option>
- <option value="all">Disable all</option>
- </select>
- </row>
- <row>
- <description value="Applications available on mobile devices" label="%s:"/>
- <select-app id="newsettings[fw_mobile_app_list]" multiple="true" tags="true"/>
- </row>
- <row>
- <description value="security" span="all" class="subHeader"/>
- </row>
- <row>
- <description value="Cookie path (allows multiple eGW sessions with different directories, has problemes with SiteMgr!)" label="%s:"/>
- <select id="newsettings[cookiepath]">
- <option value="">Document root (default)</option>
- <option value="egroupware">eGroupWare directory</option>
- </select>
- </row>
- <row>
- <description value="Cookie domain (default empty means use full domain name, for SiteMgr eg. ".domain.com" allows to use the same cookie for egw.domain.com and www.domain.com)" label="%s:"/>
- <textbox id="newsettings[cookiedomain]"/>
- </row>
- <row>
- <vbox>
- <description value="check ip address of all sessions"/>
- <description value="switch it off, if users are randomly thrown out" label="%s:"/>
- <description value="Your session could not be verified."/>
- </vbox>
- <select id="newsettings[sessions_checkip]">
- <option value="True">{Yes} - {more secure}</option>
- <option value="">No</option>
- </select>
- </row>
- <row>
- <description value="Use secure cookies (transmitted only via https)"/>
- <select id="newsettings[insecure_cookies]">
- <option value="">{Yes} - {more secure}</option>
- <option value="insecure">No</option>
- </select>
- </row>
- <row>
- <description value="Deny all users access to grant other users access to their entries ?" label="%s:"/>
- <select id="newsettings[deny_user_grants_access]">
- <option value="">No</option>
- <option value="True">Yes</option>
- </select>
- </row>
- <!--
- <row>
- <description value="Default file system space per user"/>
- <textbox id="newsettings[vfs_default_account_size_number]" type="text" size="7"/>
-
- <td>{Default_file_system_space_per_user}/{group_?}:</td>
- <td>
- <input type="text" name="newsettings[vfs_default_account_size_number]" size="7" value="{value_vfs_default_account_size_number}">
- <select name="newsettings[vfs_default_account_size_type]">
- <option value="gb"{selected_vfs_default_account_size_type_gb}>GB</option>
- <option value="mb"{selected_vfs_default_account_size_type_mb}>MB</option>
- <option value="kb"{selected_vfs_default_account_size_type_kb}>KB</option>
- <option value="b"{selected_vfs_default_account_size_type_b}>B</option>
- </select>
- </td>
- </row> -->
- <row>
- <description value="How many days should entries stay in the access log, before they get deleted (default 90) ?" label="%s:"/>
- <textbox id="newsettings[max_access_log_age]" size="5"/>
- </row>
- <row>
- <description value="After how many unsuccessful attempts to login, an account should be blocked (default 3) ?" label="%s:"/>
- <textbox id="newsettings[num_unsuccessful_id]" size="5"/>
- </row>
- <row>
- <description value="After how many unsuccessful attempts to login, an IP should be blocked (default 3) ?" label="%s:"/>
- <textbox id="newsettings[num_unsuccessful_ip]" size="5"/>
- </row>
- <row>
- <description value="How many minutes should an account or IP be blocked (default 30) ?" label="%s:"/>
- <textbox id="newsettings[block_time]" size="5"/>
- </row>
- <row>
- <description value="Force users to change their password regularily?(empty for no,number for after that number of days" label="%s:"/>
- <textbox id="newsettings[change_pwd_every_x_days]" size="5"/>
- </row>
- <row>
- <description value="Warn users about the need to change their password? The number set here should be lower than the value used to enforce the change of passwords every X days. Only effective when enforcing of password change is enabled. (empty for no,number for number of days before they must change)" label="%s:"/>
- <textbox id="newsettings[warn_about_upcoming_pwd_change]" size="5"/>
- </row>
- <row>
- <description value="Passwords require a minimum number of characters" label="%s:"/>
- <select id="newsettings[force_pwd_length]">
- <option value="">None</option>
- <option value="6">6</option>
- <option value="7">7</option>
- <option value="8">8</option>
- <option value="10">10</option>
- <option value="12">12</option>
- <option value="14">14</option>
- <option value="16">16</option>
- </select>
- </row>
- <row>
- <vbox>
- <description value="Passwords requires this number of different character classes"/>
- <description value="Uppercase, lowercase, number, special char" label="(%s)"/>
- </vbox>
- <select id="newsettings[force_pwd_strength]">
- <option value="">None</option>
- <option value="2">2</option>
- <option value="3">3</option>
- <option value="4">4</option>
- </select>
- </row>
- <row>
- <description value="Reject passwords containing part of username or full name (3 or more characters long)" label="%s:"/>
- <select id="newsettings[passwd_forbid_name]">
- <option value="no">No</option>
- <option value="yes">Yes</option>
- </select>
- </row>
- <row>
- <description value="Admin email addresses (comma-separated) to be notified about the blocking (empty for no notify)" label="%s:"/>
- <textbox id="newsettings[admin_mails]" size="40"/>
- </row>
- <!-- not used at the moment RalfBecker 2007/05/17
- <row>
- <description value="Disable "auto completion" of the login form " label="%s:"/>
- <select id="newsettings[autocomplete_login]">
- <option value="">No</option>
- <option value="True">Yes</option>
- </select>
- </row> -->
- <row>
- <vbox>
- <description value="How many entries should non-admins be able to export (empty = no limit, no = no export)"/>
- <description value="This controls exports and merging."/>
- </vbox>
- <textbox id="newsettings[export_limit]" size="5"/>
- </row>
- <row>
- <description value="Group excepted from above export limit (admins are always excepted)" label="%s:"/>
- <select-account id="newsettings[export_limit_excepted]" account_type="groups" multiple="true" tags="true"/>
- </row>
- <row>
- <vbox>
- <description value="Allow remote administration from following install ID's (comma separated)"/>
- <description id="newsettings[install_id]" label="Own install ID:"/>
- </vbox>
- <textbox id="newsettings[allow_remote_admin]" size="40"/>
- </row>
- <row>
- <description value="Should exceptions contain a trace (including function arguments)" label="%s:"/>
- <select id="newsettings[exception_show_trace]">
- <option value="">{No} - {more secure}</option>
- <option value="True">Yes</option>
- </select>
- </row>
- <row>
- <description value="Disable minifying of javascript and CSS files" label="%s:"/>
- <select id="newsettings[debug_minify]">
- <option value="">{No} - {Default}</option>
- <option value="True">Yes</option>
- <option value="debug">Debug</option>
- </select>
- </row>
- </rows>
- </grid>
+ <template id="admin.site-config" template="" lang="" group="0" version="16.1">
+ <description value="Site configuration" class="subHeader"/>
+ <template id="template" template="@template" width="100%"/>
<hbox class="dialogFooterToolbar">
<button id="save" label="Save"/>
<button id="apply" label="Apply"/>
Modified: trunk/admin/templates/pixelegg/app.css
URL: http://svn.stylite.de/viewvc/egroupware/trunk/admin/templates/pixelegg/app.css?rev=55801&r1=55800&r2=55801&view=diff
==============================================================================
--- trunk/admin/templates/pixelegg/app.css (original)
+++ trunk/admin/templates/pixelegg/app.css Thu Apr 21 18:39:59 2016
@@ -18,7 +18,7 @@
* @package etemplate
* @link http://www.egroupware.org
* @author Ralf Becker <[email protected]>
- * @version $Id: app.css 55532 2016-03-28 18:51:38Z ralfbecker $
+ * @version $Id: app.css 55790 2016-04-20 18:52:55Z ralfbecker $
*/
.admin_tree table,
.admin_tree tr,
@@ -163,7 +163,14 @@
/**
* new et2 site configuration
*/
-table.admin-config td.subHeader span {
+#admin-site-config > div > span.subHeader {
+ border-bottom: 3px solid #696969;
+ padding-left: 3px;
+ padding-bottom: 3px;
+ display: block;
+ margin-bottom: 5px;
+}
+#admin-site-config span.subHeader {
font-weight: bold;
font-size: 110%;
}
Modified: trunk/egroupware/doc/config2xet.php
URL: http://svn.stylite.de/viewvc/egroupware/trunk/egroupware/doc/config2xet.php?rev=55801&r1=55800&r2=55801&view=diff
==============================================================================
--- trunk/egroupware/doc/config2xet.php (original)
+++ trunk/egroupware/doc/config2xet.php Thu Apr 21 18:39:59 2016
@@ -55,9 +55,6 @@
<column/>
</columns>
<rows>
- <row>
- <description value="Site configuration" span="all" class="subHeader"/>
- </row>
';
foreach($trs[2] as $n => $tr)
{
@@ -164,11 +161,6 @@
echo
' </rows>
</grid>
- <hbox class="dialogFooterToolbar">
- <button id="save" label="Save"/>
- <button id="apply" label="Apply"/>
- <button id="cancel" label="Cancel"/>
- </hbox>
</template>
</overlay>
';
------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.