} ?> </select> <?php } } //if($ldp) ?> <input type="text" name="BASE_DN" id="BASE_DN" size="53" maxlength="255" value="<?php echo $str_BASE_DN; ?> "> </td> </tr> <?php if (CLdapUtil::isLdapPaginationAviable()) { ?> <tr> <td><?php echo GetMessage("LDAP_EDIT_MAX_PAGE_SIZE"); ?> </td> <td> <input type="text" name="MAX_PAGE_SIZE" id="MAX_PAGE_SIZE" size="15" maxlength="255" value="<?php echo intval($str_MAX_PAGE_SIZE) > 0 ? intval($str_MAX_PAGE_SIZE) : $defaultMaxPageSizeAD; ?> "> </td> </tr> <?php }
function QueryArray($str = '(ObjectClass=*)', $fields = false) { global $APPLICATION; if (strlen($this->arFields['BASE_DN']) <= 0) { return false; } $arBaseDNs = explode(";", $this->arFields['BASE_DN']); $info = false; $i = 0; if ($this->arFields["CONVERT_UTF8"] == "Y") { $str = $APPLICATION->ConvertCharset($str, SITE_CHARSET, "utf-8"); } foreach ($arBaseDNs as $BaseDN) { global $APPLICATION; $BaseDN = trim($BaseDN); if ($BaseDN == "") { continue; } if ($this->arFields["CONVERT_UTF8"] == "Y") { $BaseDN = $APPLICATION->ConvertCharset($BaseDN, SITE_CHARSET, "utf-8"); } $defaultMaxPageSizeAD = 1000; $pageSize = isset($this->arFields['MAX_PAGE_SIZE']) && intval($this->arFields['MAX_PAGE_SIZE'] > 0) ? intval($this->arFields['MAX_PAGE_SIZE']) : $defaultMaxPageSizeAD; $cookie = ''; do { if (CLdapUtil::isLdapPaginationAviable()) { ldap_control_paged_result($this->conn, $pageSize, false, $cookie); } if ($fields === false) { $sr = @ldap_search($this->conn, $BaseDN, $str); } else { $sr = @ldap_search($this->conn, $BaseDN, $str, $fields); } if ($sr) { $entry = ldap_first_entry($this->conn, $sr); if ($entry) { if (!is_array($info)) { $info = array(); $i = 0; } do { $attributes = ldap_get_attributes($this->conn, $entry); for ($j = 0; $j < $attributes['count']; $j++) { $values = @ldap_get_values_len($this->conn, $entry, $attributes[$j]); if ($values === false) { continue; } $bPhotoAttr = in_array($attributes[$j], self::$PHOTO_ATTRIBS); $info[$i][strtolower($attributes[$j])] = $bPhotoAttr ? $values : $this->WorkAttr($values); } if (!is_set($info[$i], 'dn')) { if ($this->arFields["CONVERT_UTF8"] == "Y") { $info[$i]['dn'] = $APPLICATION->ConvertCharset(ldap_get_dn($this->conn, $entry), "utf-8", SITE_CHARSET); } else { $info[$i]['dn'] = ldap_get_dn($this->conn, $entry); } } $i++; } while ($entry = ldap_next_entry($this->conn, $entry)); } } elseif ($sr === false) { $APPLICATION->ThrowException("LDAP_SEARCH_ERROR"); } if (CLdapUtil::isLdapPaginationAviable()) { ldap_control_paged_result_response($this->conn, $sr, $cookie); } } while ($cookie !== null && $cookie != ''); } return $info; }