function getTextContent($node) { $textContent = ""; $nodeType = gumbo_node_get_type($node); switch ($nodeType) { case GUMBO_NODE_ELEMENT: $tag = gumbo_element_get_tag_name($node); if (in_array($tag, ['script', 'style'])) { break; } $children = gumbo_element_get_children($node); foreach ($children as $child) { $textContent .= getTextContent($child); } break; case GUMBO_NODE_TEXT: $text = gumbo_text_get_text($node); $textContent .= strlen($text) ? $text : " "; break; } return $textContent; }
function makeEntryFromGND($gnd) { $target = 'http://d-nb.info/gnd/' . $gnd . '/about/lds'; $response = file_get_contents($target); $RDF = new DOMDocument(); $RDF->load($target); $nodePrefName = $RDF->getElementsByTagNameNS('http://d-nb.info/standards/elementset/gnd#', 'preferredNameForThePlaceOrGeographicName'); $prefName = getTextContent($nodePrefName); $nodeVarName = $RDF->getElementsByTagNameNS('http://d-nb.info/standards/elementset/gnd#', 'variantNameForThePlaceOrGeographicName'); $varNameString = getTextContent($nodeVarName); $varNameString = replaceArrowBrackets($varNameString); $varNames = explode('|', $varNameString); $nodeGeoData = $RDF->getElementsByTagNameNS('http://www.opengis.net/ont/geosparql#', 'asWKT'); $geoDataString = getTextContent($nodeGeoData); preg_match('~ ([+-][0-9]{1,3}\\.[0-9]{1,10}) ([+-][0-9]{1,3}\\.[0-9]{1,10}) ~', $geoDataString, $matches); $long = ''; $lat = ''; if (isset($matches[1]) and isset($matches[2])) { $long = $matches[1]; $lat = $matches[2]; } $nodeSameAs = $RDF->getElementsByTagNameNS('http://www.w3.org/2002/07/owl#', 'sameAs'); $sameAs = getAttributeFromNodeList($nodeSameAs, 'rdf:resource'); preg_match('~http://sws.geonames.org/([0-9]{5,10})~', $sameAs, $matches); $geoNames = ''; if (isset($matches[1])) { $geoNames = $matches[1]; } $entry = new geoDataArchiveEntry(); $entry->label = replaceArrowBrackets($prefName); $entry->lat = $lat; $entry->long = $long; $entry->gnd = $gnd; $entry->geoNames = $geoNames; $entry->altLabels = $varNames; return $entry; }
/** * Функция которая возвращает массив информации * о просматриваемой страничка с типом $type * и $id * @param null $type * @param null $id * @return array */ function getContent($type = null, $id = null) { /*Если параметры null, то выводим страничку по умолчанию*/ if ($type == null) { $type = DEFAULT_PAGE; } if (isset($_POST['new_submit']) && $_POST['new_submit']) { $type = NEW_SUBMIT_TYPE; } $loginStatus = LOGIN_ALREADY; if (isset($_GET['unlogin']) && $_GET['unlogin']) { unlogin(); $loginStatus = LOGIN_EXIT; } if ($_POST['submit']) { $loginStatus = login($_POST['login'], $_POST['password']); } /*Инициализируем информацию в зависимости от типа */ $array = array(); switch ($type) { /*Если тип страницы - текстовая*/ case TEXT_TYPE: /*Если id не инициализирован выводим главную. Иначе страницу с id*/ if ($id == null) { $id = MAIN_PAGE_TEXT_ID; } /*Получаем текст из базы*/ $page = getTextContent($id); $array['content'] = $page['text']; break; case CATALOG_TYPE: /*Если id не инициаизирован */ if (!($id > 0)) { /*Выбираем первый попавшийся театр*/ $sql = "SELECT id from theatures LIMIT 1"; $res = mysql_query($sql); $row = mysql_fetch_array($res); $id = $row['id']; } /*Получаем спектали из базы*/ $items = getCatalogItems($id); //$parent_item = get; /*Вставляем их в ш для красивого вывода*/ $array['content'] = (include 'templates/content/item/items.php'); break; case ITEM_TYPE: $item = getItem($id); $array['content'] = (include 'templates/content/item/item_big.php'); break; case NEW_REG_TYPE: $array['content'] = (include 'templates/content/login/newreg.php'); break; case NEW_SUBMIT_TYPE: //Если пароли совпадают if ($_POST['new_password1'] == $_POST['new_password2']) { if (addNewUser($_POST['new_login'], $_POST['new_password2'])) { $array['content'] = 'Поздравляем вы зарегистерированы'; } else { $array['content'] = 'Такой пользователь уже есть'; } } else { $array['content'] = 'Пароли не совпадают'; } break; case ADD_CART_TYPE: addToCart($id); $cartItems = getCartItems(); $sum = calculateCart(); $array['content'] = (include 'templates/content/cart/cart.php'); break; case CART_TYPE: $cartItems = getCartItems(); $sum = calculateCart(); $array['content'] = (include 'templates/content/cart/cart.php'); break; /*Удаляем одну штуку*/ /*Удаляем одну штуку*/ case REMOVE_CART_TYPE: $cartItems = getCartItems(); $sum = calculateCart(); removeFromCart($id); $array['content'] = (include 'templates/content/cart/cart.php'); break; /*Удаляем весь товар*/ /*Удаляем весь товар*/ case REMOVE_ITEM_CART_TYPE: $cartItems = getCartItems(); $sum = calculateCart(); removeFromCart($id, CART_REMOVE_ALL); $array['content'] = (include 'templates/content/cart/cart.php'); break; case CLEAR_CART_TYPE: $cartItems = getCartItems(); $sum = calculateCart(); clearCart(); $array['content'] = (include 'templates/content/cart/cart.php'); break; } $user = getCurrentUser(); $array['theatures'] = getCatalogCategories(); $items = getCatalogCategories(); $array['leftPanel'] = (include 'templates/content/catalog/catalogCategories.php'); $array['rightPanel'] = (include 'templates/content/login/login.php'); $array['banner_word'] = 'Театры'; $array['title'] = 'Сайт'; return $array; }