[ Index ]

PHP Cross Reference of MyBB 1.8.21

title

Body

[close]

/admin/modules/config/ -> calendars.php (source)

   1  <?php
   2  /**
   3   * MyBB 1.8
   4   * Copyright 2014 MyBB Group, All Rights Reserved
   5   *
   6   * Website: http://www.mybb.com
   7   * License: http://www.mybb.com/about/license
   8   *
   9   */
  10  
  11  // Disallow direct access to this file for security reasons
  12  if(!defined("IN_MYBB"))
  13  {
  14      die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");
  15  }
  16  
  17  $page->add_breadcrumb_item($lang->calendars, "index.php?module=config-calendars");
  18  
  19  if($mybb->input['action'] == "add" || $mybb->input['action'] == "permissions" || !$mybb->input['action'])
  20  {
  21      $sub_tabs['manage_calendars'] = array(
  22          'title' => $lang->manage_calendars,
  23          'link' => "index.php?module=config-calendars",
  24          'description' => $lang->manage_calendars_desc
  25      );
  26      $sub_tabs['add_calendar'] = array(
  27          'title' => $lang->add_calendar,
  28          'link' => "index.php?module=config-calendars&amp;action=add",
  29          'description' => $lang->add_calendar_desc
  30      );
  31  }
  32  
  33  $plugins->run_hooks("admin_config_calendars_begin");
  34  
  35  if($mybb->input['action'] == "add")
  36  {
  37      $plugins->run_hooks("admin_config_calendars_add");
  38  
  39      if($mybb->request_method == "post")
  40      {
  41          $plugins->run_hooks("admin_config_calendars_add_commit");
  42  
  43          if(!trim($mybb->input['name']))
  44          {
  45              $errors[] = $lang->error_missing_name;
  46          }
  47  
  48          if(!isset($mybb->input['disporder']))
  49          {
  50              $errors[] = $lang->error_missing_order;
  51          }
  52  
  53          if(!$errors)
  54          {
  55              $calendar = array(
  56                  "name" => $db->escape_string($mybb->input['name']),
  57                  "disporder" => $mybb->get_input('disporder', MyBB::INPUT_INT),
  58                  "startofweek" => $mybb->get_input('startofweek', MyBB::INPUT_INT),
  59                  "eventlimit" => $mybb->get_input('eventlimit', MyBB::INPUT_INT),
  60                  "showbirthdays" => $mybb->get_input('showbirthdays', MyBB::INPUT_INT),
  61                  "moderation" => $mybb->get_input('moderation', MyBB::INPUT_INT),
  62                  "allowhtml" => $mybb->get_input('allowhtml', MyBB::INPUT_INT),
  63                  "allowmycode" => $mybb->get_input('allowmycode', MyBB::INPUT_INT),
  64                  "allowimgcode" => $mybb->get_input('allowimgcode', MyBB::INPUT_INT),
  65                  "allowvideocode" => $mybb->get_input('allowvideocode', MyBB::INPUT_INT),
  66                  "allowsmilies" => $mybb->get_input('allowsmilies', MyBB::INPUT_INT)
  67              );
  68  
  69              $plugins->run_hooks("admin_config_calendars_add_commit_start");
  70  
  71              $cid = $db->insert_query("calendars", $calendar);
  72  
  73              $plugins->run_hooks("admin_config_calendars_add_commit_end");
  74  
  75              // Log admin action
  76              log_admin_action($cid, $mybb->input['name']);
  77  
  78              flash_message($lang->success_calendar_created, 'success');
  79              admin_redirect("index.php?module=config-calendars");
  80          }
  81      }
  82      else
  83      {
  84          $mybb->input = array_merge($mybb->input, array(
  85                  "allowhtml" => 0,
  86                  "eventlimit" => 4,
  87                  "disporder" => 1,
  88                  "moderation" => 0
  89              )
  90          );
  91      }
  92  
  93      $page->add_breadcrumb_item($lang->add_calendar);
  94      $page->output_header($lang->calendars." - ".$lang->add_calendar);
  95  
  96      $page->output_nav_tabs($sub_tabs, 'add_calendar');
  97      $form = new Form("index.php?module=config-calendars&amp;action=add", "post");
  98  
  99      if($errors)
 100      {
 101          $page->output_inline_error($errors);
 102      }
 103  
 104      $form_container = new FormContainer($lang->add_calendar);
 105      $form_container->output_row($lang->name." <em>*</em>", "", $form->generate_text_box('name', $mybb->input['name'], array('id' => 'name')), 'name');
 106      $form_container->output_row($lang->display_order, $lang->display_order_desc, $form->generate_numeric_field('disporder', $mybb->input['disporder'], array('id' => 'disporder', 'min' => 0)), 'disporder');
 107      $select_list = array($lang->sunday, $lang->monday, $lang->tuesday, $lang->wednesday, $lang->thursday, $lang->friday, $lang->saturday);
 108      $form_container->output_row($lang->week_start, $lang->week_start_desc, $form->generate_select_box('startofweek', $select_list, $mybb->input['startofweek'], array('id' => 'startofweek')), 'startofweek');
 109      $form_container->output_row($lang->event_limit, $lang->event_limit_desc, $form->generate_numeric_field('eventlimit', $mybb->input['eventlimit'], array('id' => 'eventlimit', 'min' => 0)), 'eventlimit');
 110      $form_container->output_row($lang->show_birthdays, $lang->show_birthdays_desc, $form->generate_yes_no_radio('showbirthdays', $mybb->input['showbirthdays'], true));
 111      $form_container->output_row($lang->moderate_events, $lang->moderate_events_desc, $form->generate_yes_no_radio('moderation', $mybb->input['moderation'], true));
 112      $form_container->output_row($lang->allow_html, "", $form->generate_yes_no_radio('allowhtml', $mybb->input['allowhtml']));
 113      $form_container->output_row($lang->allow_mycode, "", $form->generate_yes_no_radio('allowmycode', $mybb->input['allowmycode']));
 114      $form_container->output_row($lang->allow_img, "", $form->generate_yes_no_radio('allowimgcode', $mybb->input['allowimgcode']));
 115      $form_container->output_row($lang->allow_video, "", $form->generate_yes_no_radio('allowvideocode', $mybb->input['allowvideocode']));
 116      $form_container->output_row($lang->allow_smilies, "", $form->generate_yes_no_radio('allowsmilies', $mybb->input['allowsmilies']));
 117      $form_container->end();
 118  
 119      $buttons[] = $form->generate_submit_button($lang->save_calendar);
 120  
 121      $form->output_submit_wrapper($buttons);
 122      $form->end();
 123  
 124      $page->output_footer();
 125  }
 126  
 127  if($mybb->input['action'] == "permissions")
 128  {
 129      $usergroups = array();
 130  
 131      $query = $db->simple_select("calendars", "*", "cid='".$mybb->get_input('cid', MyBB::INPUT_INT)."'");
 132      $calendar = $db->fetch_array($query);
 133  
 134      // Does the calendar not exist?
 135      if(!$calendar['cid'])
 136      {
 137          flash_message($lang->error_invalid_calendar, 'error');
 138          admin_redirect("index.php?module=config-calendars");
 139      }
 140  
 141      $plugins->run_hooks("admin_config_calendars_permissions");
 142  
 143      $query = $db->simple_select("usergroups", "*", "", array("order" => "name"));
 144      while($usergroup = $db->fetch_array($query))
 145      {
 146          $usergroups[$usergroup['gid']] = $usergroup;
 147      }
 148  
 149      $query = $db->simple_select("calendarpermissions", "*", "cid='{$calendar['cid']}'");
 150      while($existing = $db->fetch_array($query))
 151      {
 152          $existing_permissions[$existing['gid']] = $existing;
 153      }
 154  
 155      if($mybb->request_method == "post")
 156      {
 157          foreach(array_keys($usergroups) as $group_id)
 158          {
 159              $permissions = $mybb->input['permissions'][$group_id];
 160              $db->delete_query("calendarpermissions", "cid='{$calendar['cid']}' AND gid='".(int)$group_id."'");
 161  
 162              if(!$mybb->input['default_permissions'][$group_id])
 163              {
 164                  foreach(array('canviewcalendar','canaddevents','canbypasseventmod','canmoderateevents') as $calendar_permission)
 165                  {
 166                      if($permissions[$calendar_permission] == 1)
 167                      {
 168                          $permissions_array[$calendar_permission] = 1;
 169                      }
 170                      else
 171                      {
 172                          $permissions_array[$calendar_permission] = 0;
 173                      }
 174                  }
 175                  $permissions_array['gid'] = (int)$group_id;
 176                  $permissions_array['cid'] = $calendar['cid'];
 177                  $db->insert_query("calendarpermissions", $permissions_array);
 178              }
 179          }
 180  
 181          $plugins->run_hooks("admin_config_calendars_permissions_commit");
 182  
 183          // Log admin action
 184          log_admin_action($calendar['cid'], $calendar['name']);
 185  
 186          flash_message($lang->success_calendar_permissions_updated, 'success');
 187          admin_redirect("index.php?module=config-calendars");
 188      }
 189  
 190      $calendar['name'] = htmlspecialchars_uni($calendar['name']);
 191      $page->add_breadcrumb_item($calendar['name'], "index.php?module=config-calendars&amp;action=edit&amp;cid={$calendar['cid']}");
 192      $page->add_breadcrumb_item($lang->permissions);
 193      $page->output_header($lang->calendars." - ".$lang->edit_permissions);
 194  
 195      $form = new Form("index.php?module=config-calendars&amp;action=permissions", "post");
 196      echo $form->generate_hidden_field("cid", $calendar['cid']);
 197  
 198      $table = new Table;
 199      $table->construct_header($lang->permissions_group);
 200      $table->construct_header($lang->permissions_view, array("class" => "align_center", "width" => "10%"));
 201      $table->construct_header($lang->permissions_post_events, array("class" => "align_center", "width" => "10%"));
 202      $table->construct_header($lang->permissions_bypass_moderation, array("class" => "align_center", "width" => "10%"));
 203      $table->construct_header($lang->permissions_moderator, array("class" => "align_center", "width" => "10%"));
 204      $table->construct_header($lang->permissions_all, array("class" => "align_center", "width" => "10%"));
 205  
 206      foreach($usergroups as $usergroup)
 207      {
 208          if($existing_permissions[$usergroup['gid']])
 209          {
 210              $perms = $existing_permissions[$usergroup['gid']];
 211              $default_checked = false;
 212          }
 213          else
 214          {
 215              $perms = $usergroup;
 216              $default_checked = true;
 217          }
 218          $perm_check = $all_check = "";
 219          $all_checked = true;
 220          foreach(array('canviewcalendar','canaddevents','canbypasseventmod','canmoderateevents') as $calendar_permission)
 221          {
 222              if($usergroup[$calendar_permission] == 1)
 223              {
 224                  $value = "this.checked";
 225              }
 226              else
 227              {
 228                  $value = "false";
 229              }
 230              if($perms[$calendar_permission] != 1)
 231              {
 232                  $all_checked = false;
 233              }
 234              if($perms[$calendar_permission] == 1)
 235              {
 236                  $perms_checked[$calendar_permission] = 1;
 237              }
 238              else
 239              {
 240                  $perms_checked[$calendar_permission] = 0;
 241              }
 242              $all_check .= "\$('#permissions_{$usergroup['gid']}_{$calendar_permission}').prop('checked', this.checked);\n";
 243              $perm_check .= "\$('#permissions_{$usergroup['gid']}_{$calendar_permission}').prop('checked', $value);\n";
 244          }
 245          $default_click = "if(\$(this).is(':checked')) { $perm_check }";
 246          $reset_default = "if(!\$(this).is(':checked')) { \$('#permissions_{$usergroup['gid']}_all').prop('checked', false); }\n";
 247          $usergroup['title'] = htmlspecialchars_uni($usergroup['title']);
 248          $table->construct_cell("<strong>{$usergroup['title']}</strong><br /><small style=\"vertical-align: middle;\">".$form->generate_check_box("default_permissions[{$usergroup['gid']}];", 1, "", array("id" => "default_permissions_{$usergroup['gid']}", "checked" => $default_checked, "onclick" => $default_click))." <label for=\"default_permissions_{$usergroup['gid']}\">{$lang->permissions_use_group_default}</label></small>");
 249          $table->construct_cell($form->generate_check_box("permissions[{$usergroup['gid']}][canviewcalendar]", 1, "", array("id" => "permissions_{$usergroup['gid']}_canviewcalendar", "checked" => $perms_checked['canviewcalendar'], "onclick" => $reset_default)), array('class' => 'align_center'));
 250          $table->construct_cell($form->generate_check_box("permissions[{$usergroup['gid']}][canaddevents]", 1, "", array("id" => "permissions_{$usergroup['gid']}_canaddevents", "checked" => $perms_checked['canaddevents'], "onclick" => $reset_default)), array('class' => 'align_center'));
 251          $table->construct_cell($form->generate_check_box("permissions[{$usergroup['gid']}][canbypasseventmod]", 1, "", array("id" => "permissions_{$usergroup['gid']}_canbypasseventmod", "checked" => $perms_checked['canbypasseventmod'], "onclick" => $reset_default)), array('class' => 'align_center'));
 252          $table->construct_cell($form->generate_check_box("permissions[{$usergroup['gid']}][canmoderateevents]", 1, "", array("id" => "permissions_{$usergroup['gid']}_canmoderateevents", "checked" => $perms_checked['canmoderateevents'], "onclick" => $reset_default)), array('class' => 'align_center'));
 253          $table->construct_cell($form->generate_check_box("permissions[{$usergroup['gid']}][all]", 1, "", array("id" => "permissions_{$usergroup['gid']}_all", "checked" => $all_checked, "onclick" => $all_check)), array('class' => 'align_center'));
 254          $table->construct_row();
 255      }
 256      $table->output("{$lang->calendar_permissions_for} {$calendar['name']}");
 257  
 258      if(!$no_results)
 259      {
 260          $buttons[] = $form->generate_submit_button($lang->save_permissions);
 261          $form->output_submit_wrapper($buttons);
 262      }
 263  
 264      $form->end();
 265  
 266      $page->output_footer();
 267  
 268  }
 269  
 270  if($mybb->input['action'] == "edit")
 271  {
 272      $query = $db->simple_select("calendars", "*", "cid='".$mybb->get_input('cid', MyBB::INPUT_INT)."'");
 273      $calendar = $db->fetch_array($query);
 274  
 275      // Does the calendar not exist?
 276      if(!$calendar['cid'])
 277      {
 278          flash_message($lang->error_invalid_calendar, 'error');
 279          admin_redirect("index.php?module=config-calendars");
 280      }
 281  
 282      $plugins->run_hooks("admin_config_calendars_edit");
 283  
 284      if($mybb->request_method == "post")
 285      {
 286          if(!trim($mybb->input['name']))
 287          {
 288              $errors[] = $lang->error_missing_name;
 289          }
 290  
 291          if(!isset($mybb->input['disporder']))
 292          {
 293              $errors[] = $lang->error_missing_order;
 294          }
 295  
 296          if(!$errors)
 297          {
 298              $updated_calendar = array(
 299                  "name" => $db->escape_string($mybb->input['name']),
 300                  "disporder" => $mybb->get_input('disporder', MyBB::INPUT_INT),
 301                  "startofweek" => $mybb->get_input('startofweek', MyBB::INPUT_INT),
 302                  "eventlimit" => $mybb->get_input('eventlimit', MyBB::INPUT_INT),
 303                  "showbirthdays" => $mybb->get_input('showbirthdays', MyBB::INPUT_INT),
 304                  "moderation" => $mybb->get_input('moderation', MyBB::INPUT_INT),
 305                  "allowhtml" => $mybb->get_input('allowhtml', MyBB::INPUT_INT),
 306                  "allowmycode" => $mybb->get_input('allowmycode', MyBB::INPUT_INT),
 307                  "allowimgcode" => $mybb->get_input('allowimgcode', MyBB::INPUT_INT),
 308                  "allowvideocode" => $mybb->get_input('allowvideocode', MyBB::INPUT_INT),
 309                  "allowsmilies" => $mybb->get_input('allowsmilies', MyBB::INPUT_INT)
 310              );
 311  
 312              $plugins->run_hooks("admin_config_calendars_edit_commit");
 313  
 314              $db->update_query("calendars", $updated_calendar, "cid='{$calendar['cid']}'");
 315  
 316              // Log admin action
 317              log_admin_action($calendar['cid'], $mybb->input['name']);
 318  
 319              flash_message($lang->success_calendar_updated, 'success');
 320              admin_redirect("index.php?module=config-calendars");
 321          }
 322      }
 323  
 324      $page->add_breadcrumb_item($lang->edit_calendar);
 325      $page->output_header($lang->calendars." - ".$lang->edit_calendar);
 326  
 327      $sub_tabs['edit_calendar'] = array(
 328          'title' => $lang->edit_calendar,
 329          'link' => "index.php?module=config-calendars&amp;action=edit",
 330          'description' => $lang->edit_calendar_desc
 331      );
 332  
 333      $page->output_nav_tabs($sub_tabs, 'edit_calendar');
 334      $form = new Form("index.php?module=config-calendars&amp;action=edit", "post");
 335  
 336      echo $form->generate_hidden_field("cid", $calendar['cid']);
 337  
 338      if($errors)
 339      {
 340          $page->output_inline_error($errors);
 341      }
 342      else
 343      {
 344          $mybb->input = $calendar;
 345      }
 346  
 347      $form_container = new FormContainer($lang->edit_calendar);
 348      $form_container->output_row($lang->name." <em>*</em>", "", $form->generate_text_box('name', $mybb->input['name'], array('id' => 'name')), 'name');
 349      $form_container->output_row($lang->display_order." <em>*</em>", $lang->display_order_desc, $form->generate_numeric_field('disporder', $mybb->input['disporder'], array('id' => 'disporder', 'min' => 0)), 'disporder');
 350      $select_list = array($lang->sunday, $lang->monday, $lang->tuesday, $lang->wednesday, $lang->thursday, $lang->friday, $lang->saturday);
 351      $form_container->output_row($lang->week_start, $lang->week_start_desc, $form->generate_select_box('startofweek', $select_list, $mybb->input['startofweek'], array('id' => 'startofweek')), 'startofweek');
 352      $form_container->output_row($lang->event_limit, $lang->event_limit_desc, $form->generate_numeric_field('eventlimit', $mybb->input['eventlimit'], array('id' => 'eventlimit', 'min' => 0)), 'eventlimit');
 353      $form_container->output_row($lang->show_birthdays, $lang->show_birthdays_desc, $form->generate_yes_no_radio('showbirthdays', $mybb->input['showbirthdays'], true));
 354      $form_container->output_row($lang->moderate_events, $lang->moderate_events_desc, $form->generate_yes_no_radio('moderation', $mybb->input['moderation'], true));
 355      $form_container->output_row($lang->allow_html, "", $form->generate_yes_no_radio('allowhtml', $mybb->input['allowhtml']));
 356      $form_container->output_row($lang->allow_mycode, "", $form->generate_yes_no_radio('allowmycode', $mybb->input['allowmycode']));
 357      $form_container->output_row($lang->allow_img, "", $form->generate_yes_no_radio('allowimgcode', $mybb->input['allowimgcode']));
 358      $form_container->output_row($lang->allow_video, "", $form->generate_yes_no_radio('allowvideocode', $mybb->input['allowvideocode']));
 359      $form_container->output_row($lang->allow_smilies, "", $form->generate_yes_no_radio('allowsmilies', $mybb->input['allowsmilies']));
 360      $form_container->end();
 361  
 362      $buttons[] = $form->generate_submit_button($lang->save_calendar);
 363  
 364      $form->output_submit_wrapper($buttons);
 365      $form->end();
 366  
 367      $page->output_footer();
 368  }
 369  
 370  if($mybb->input['action'] == "delete")
 371  {
 372      $query = $db->simple_select("calendars", "*", "cid='".$mybb->get_input('cid', MyBB::INPUT_INT)."'");
 373      $calendar = $db->fetch_array($query);
 374  
 375      // Does the calendar not exist?
 376      if(!$calendar['cid'])
 377      {
 378          flash_message($lang->error_invalid_calendar, 'error');
 379          admin_redirect("index.php?module=config-calendars");
 380      }
 381  
 382      $plugins->run_hooks("admin_config_calendars_delete");
 383  
 384      // User clicked no
 385      if($mybb->input['no'])
 386      {
 387          admin_redirect("index.php?module=config-calendars");
 388      }
 389  
 390      if($mybb->request_method == "post")
 391      {
 392          // Delete the calendar
 393          $db->delete_query("calendars", "cid='{$calendar['cid']}'");
 394          $db->delete_query("calendarpermissions", "cid='{$calendar['cid']}'");
 395          $db->delete_query("events", "cid='{$calendar['cid']}'");
 396  
 397          $plugins->run_hooks("admin_config_calendars_delete_commit");
 398  
 399          // Log admin action
 400          log_admin_action($calendar['cid'], $calendar['name']);
 401  
 402          flash_message($lang->success_calendar_deleted, 'success');
 403          admin_redirect("index.php?module=config-calendars");
 404      }
 405      else
 406      {
 407          $page->output_confirm_action("index.php?module=config-calendars&amp;action=delete&amp;cid={$calendar['cid']}", $lang->confirm_calendar_deletion);
 408      }
 409  }
 410  
 411  if($mybb->input['action'] == "update_order" && $mybb->request_method == "post")
 412  {
 413      if(!is_array($mybb->input['disporder']))
 414      {
 415          admin_redirect("index.php?module=config-calendars");
 416      }
 417  
 418      $plugins->run_hooks("admin_config_calendars_update_order");
 419  
 420      foreach($mybb->input['disporder'] as $cid => $order)
 421      {
 422          $update_query = array(
 423              "disporder" => (int)$order
 424          );
 425          $db->update_query("calendars", $update_query, "cid='".(int)$cid."'");
 426      }
 427  
 428      $plugins->run_hooks("admin_config_calendars_update_order_commit");
 429  
 430      // Log admin action
 431      log_admin_action();
 432  
 433      flash_message($lang->success_calendar_orders_updated, 'success');
 434      admin_redirect("index.php?module=config-calendars");
 435  }
 436  
 437  if(!$mybb->input['action'])
 438  {
 439      $page->output_header($lang->manage_calendars);
 440  
 441      $page->output_nav_tabs($sub_tabs, 'manage_calendars');
 442  
 443      $form = new Form("index.php?module=config-calendars&amp;action=update_order", "post");
 444      $table = new Table;
 445      $table->construct_header($lang->calendar);
 446      $table->construct_header($lang->order, array('width' => '5%', 'class' => 'align_center'));
 447      $table->construct_header($lang->controls, array("class" => "align_center", "colspan" => 3, "width" => 300));
 448  
 449      $query = $db->simple_select("calendars", "*", "", array('order_by' => 'disporder'));
 450      while($calendar = $db->fetch_array($query))
 451      {
 452          $calendar['name'] = htmlspecialchars_uni($calendar['name']);
 453          $table->construct_cell("<a href=\"index.php?module=config-calendars&amp;action=edit&amp;cid={$calendar['cid']}\"><strong>{$calendar['name']}</strong></a>");
 454          $table->construct_cell($form->generate_numeric_field("disporder[{$calendar['cid']}]", $calendar['disporder'], array('id' => 'disporder', 'style' => 'width: 80%', 'class' => 'align_center', 'min' => 0)));
 455          $table->construct_cell("<a href=\"index.php?module=config-calendars&amp;action=edit&amp;cid={$calendar['cid']}\">{$lang->edit}</a>", array("width" => 100, "class" => "align_center"));
 456          $table->construct_cell("<a href=\"index.php?module=config-calendars&amp;action=permissions&amp;cid={$calendar['cid']}\">{$lang->permissions}</a>", array("width" => 100, "class" => "align_center"));
 457          $table->construct_cell("<a href=\"index.php?module=config-calendars&amp;action=delete&amp;cid={$calendar['cid']}&amp;my_post_key={$mybb->post_code}\" onclick=\"return AdminCP.deleteConfirmation(this, '{$lang->confirm_calendar_deletion}')\">{$lang->delete}</a>", array("width" => 100, "class" => "align_center"));
 458          $table->construct_row();
 459      }
 460  
 461      if($table->num_rows()  == 0)
 462      {
 463          $table->construct_cell($lang->no_calendars, array('colspan' => 5));
 464          $table->construct_row();
 465          $no_results = true;
 466      }
 467  
 468      $table->output($lang->manage_calendars);
 469  
 470      if(!$no_results)
 471      {
 472          $buttons[] = $form->generate_submit_button($lang->save_calendar_orders);
 473          $form->output_submit_wrapper($buttons);
 474      }
 475  
 476      $form->end();
 477  
 478      $page->output_footer();
 479  }


2005 - 2019 © MyBB.de | Alle Rechte vorbehalten! | Sponsor: netcup Cross-referenced by PHPXref 0.7.1