//Преобразуем колонку с ФИО в ссылку на полную инфу о сотруднике $B->addPregReplace("/^(.*)\$/eu", "Staff::makeNameUrlFromDn('\\1')", "ФИО"); //В зависимости от формата хранения даты преобразуем дату дня рождения для последующего преобразования в удобно читаемый формат switch ($BIRTH_DATE_FORMAT) { case 'yyyy-mm-dd': $B->addPregReplace("/^([0-9]{4})-([0-9]{2})-([0-9]{2})\$/u", 'q\\3q\\2q\\1', "Дата"); break; case 'dd.mm.yyyy': $B->addPregReplace("/^([0-9]{2})\\.([0-9]{2})\\.([0-9]{4})\$/u", 'q\\1q\\2q\\3', "Дата"); break; default: $B->addPregReplace("/^([0-9]{2})\\.([0-9]{2})\\.([0-9]{4})\$/u", 'q\\1q\\2q\\3', "Дата"); } //Преобразуем дату в удобно читаемый формат $B->addPregReplace("/([q]{1}[0-9]{2})([q]{1}[0-9]{2})([q]{1}[0-9]{4})/eu", 'getBD(\\1\\2)', "Дата"); //Делаем фильтр необходимый для вывода ближайших дней рождения // було так for($i=0; $i<$NUM_ALARM_DAYES; $i++) // Добавив $NUM_ALARM_DAYES_BEFORE для нагадування про минулі дні народження for ($i = $NUM_ALARM_DAYES_BEFORE; $i < $NUM_ALARM_DAYES; $i++) { @($Dates .= "(" . $LDAP_BIRTH_FIELD . "=*" . date($DateFormat, $time + $i * 24 * 60 * 60) . "*)"); } //Добавляем в фильтр условия, что бы показывались сотрудники у которых соответствует компания if ($Dates) { $CompanyNameLdapFilter = Application::getCompanyNameLdapFilter(); $B->printTable($OU, "(&" . $CompanyNameLdapFilter . "(|" . $Dates . ")" . $DIS_USERS_COND . ")"); } //Если необходимо ограничивать вывод строк с ближайшими днями рождения, то пишим в тело html-документа соответствующую информацию if ($BIRTH_VIS_ROW_NUM) { echo "<div id=\"birth_vis_row_num\" class=\"hidden\">" . $BIRTH_VIS_ROW_NUM . "</div><a id=\"show_all_birth\" href=\"#\">↓</a>"; } echo "</fieldset></div>"; }
$table->addPregReplace("/^\$/u", "x", "Должность"); $table->addPregReplace("/([\\w\\W]{1,})/u", "<textarea class=\"position\" name=\"Title\">\\1</textarea>", "Должность", 1, $Conditions2); $table->addPregReplace("/<textarea class=\"position\" name=\"Title\">x<\\/textarea>/u", "<textarea class=\"position\" name=\"Title\"></textarea>", "Должность", 1, $Conditions2); //------------------------------------------------------------------------------------------------- //Кнопка //------------------------------------------------------------------------------------------------- @$table->addPregReplace("/^(.*)\$/u", "<a href=\"?menu_marker=si_staffedit&dn=\\1&sortcolumn=" . $_GET['sortcolumn'] . "&sorttype=" . $_GET['sorttype'] . "&name=" . $Name . "&bookmark_attr=" . $bookmark_attr . "&bookmark_name=" . $BOOKMARK_NAME . "&only_bookmark=" . $only_bookmark . ($_GET['form_sent'] || $_POST['form_sent'] ? "&form_sent=1" : "") . "\"><img border=\"0\" src=\"./skins/" . $CURRENT_SKIN . "/images/vcard.png\" width=\"48\" height=\"33\" title=\"Редактировать\"/></a>", "Править", 1, $Conditions1); $table->addPregReplace("/^(.*)\$/u", "<input type=\"image\" src=\"./skins/" . $CURRENT_SKIN . "/images/vcard_check.png\" width=\"48\" height=\"41\" title=\"Применить изменения\"/><div id=\"IDForScroll\" ></div></form>", "Править", 1, $Conditions2); //------------------------------------------------------------------------------------------------- //Фото //------------------------------------------------------------------------------------------------- $table->addPregReplace("/^([\\w\\W]{1,}\$)/u", "Есть", "Фото", 1); $table->addPregReplace("/^\$/u", "x", "Фото", 1); $Conditions3[$LDAP_OBJECTCLASS_FIELD]['='] = "user"; $Conditions3[$LDAP_DISTINGUISHEDNAME_FIELD]['='] = $dn; $table->addPregReplace("/^Есть\$/u", "<iframe allowtransparency=\"true\" src=\"./newwin.php?menu_marker=si_staff_add_photo&ButTitle=Изменить&dn=" . $dn . "\" frameborder=\"0\" scrolling=\"no\" width=\"70\" height=\"40\"></iframe>", "Фото", 1, $Conditions3); $table->addPregReplace("/^x\$/u", "<iframe allowtransparency=\"true\" src=\"./newwin.php?menu_marker=si_staff_add_photo&ButTitle=Добавить&dn=" . $dn . "\" frameborder=\"0\" scrolling=\"no\" width=\"70\" height=\"40\"></iframe>", "Фото", 1, $Conditions3); //------------------------------------------------------------------------------------------------- $cn = $Name == "*" ? "*" : "*" . $Name . "*"; // Делаем фильтр для выборки сотрудников нужных компаний //------------------------------------------------------------------------------------------------------------- $CompanyNameLdapFilter = Application::getCompanyNameLdapFilter(); //------------------------------------------------------------------------------------------------------------- $table->printTable($OU, "(&" . $CompanyNameLdapFilter . "(|(" . $LDAP_OBJECTCLASS_FIELD . "=user)(" . $LDAP_OBJECTCLASS_FIELD . "=contact))(|(" . $LDAP_CN_FIELD . "=" . $cn . ")(" . $LDAP_MAIL_FIELD . "=" . $cn . ")(" . $LDAP_INTERNAL_PHONE_FIELD . "=" . $cn . ")(" . $LDAP_CITY_PHONE_FIELD . "=" . $cn . ")(" . $LDAP_CELL_PHONE_FIELD . "=" . $cn . ")(" . $LDAP_TITLE_FIELD . "=" . $cn . ")(" . $LDAP_DEPARTMENT_FIELD . "=" . $cn . "))" . $DIS_USERS_COND . ")"); if ($dn) { echo "\n\t\t<script type='text/javascript'>\n\t\tCalendar.setup({inputField:'Birthday', ifFormat:'%d.%m.%Y', button:'Birthday', firstDay:1, weekNumbers:false, showOthers:true});\n\t\t</script>\n\t\t"; } } } else { echo "У вас нет доступа для редактирования справочника."; }
} else { echo Staff::makeNameUrlFromDn($ManDN); } echo "</div>"; } if (isset($Manager)) { echo $Manager; } echo "</td>"; echo "</tr>"; echo "<tr>"; echo "<td colspan='2'>"; echo "<div class=\"staff\" id=\"people\"><h6>Подчиненные:</h6></div>"; $table = new LDAPTable($LDAPServer, $LDAPUser, $LDAPPassword, false, false); if ($USE_DISPLAY_NAME) { $table->addColumn($DISPLAY_NAME_FIELD . ", distinguishedname", "ФИО", true, 0, false, "ad_def_full_name"); } else { $table->addColumn("distinguishedname", "ФИО", true, 0, false, "ad_def_full_name"); } $table->addColumn($LDAP_INTERNAL_PHONE_FIELD, $L->l('intrenal_phone'), true); $table->addColumn("title", "Должность"); $table->addPregReplace("/^(.*)\$/eu", "Staff::makeNameUrlFromDn('\\1')", "ФИО"); $table->addPregReplace("/^\\.\\./u", "", "Должность"); $table->addPregReplace("/^\\./u", "", "Должность"); $table->addPregReplace("/^(.*)\$/eu", "Staff::makeInternalPhone('\\1')", $L->l('intrenal_phone')); echo "<div id=\"people_table\">"; $table->printTable($OU, "(&(company=*)(manager=" . LDAP::escapeFilterValue($dn) . ")" . $DIS_USERS_COND . ")"); echo "</div>"; echo "</td>"; echo "</tr>"; echo "</table>";