Drupal 7 — Проблема с Drupal 7 и load(), jQuery


Проблема с Drupal 7 jQuery drupal

Я застрял, пытаясь преобразовать javascript файл, который отлично работал в d6-d7, я искал информацию о поведении drupal, но не могу найти правильный способ решить эту проблему.

Следующий скрипт возвращает непредвиденную ошибку маркера), для закрывающей скобки перед (jQuery).

Файл вызывается из template.php, используя drupal_add_js, вставленный в верхнюю часть файла, а не под предварительный процесс или что-то еще.

Я не знаю, правильный ли ваш код, но настоятельно рекомендуется использовать JavaScript в Drupal> 7 следующим образом:

Дополнительная информация о Drupal Behaviors:

javascript — Проблема с Drupal 7 jQuery drupal

Я застрял, пытаясь преобразовать javascript файл, который отлично работал в d6-d7, я искал информацию о поведении drupal, но не могу найти правильный способ решить эту проблему.

Следующий скрипт возвращает непредвиденную ошибку маркера), для закрывающей скобки перед (jQuery).

Файл вызывается из template.php, используя drupal_add_js, вставленный в верхнюю часть файла, а не под предварительный процесс или что-то еще.

    2 1
  • 16 апр 2020 2020-04-16 16:54:24
  • user1475084

1 ответ

Я не знаю, правильный ли ваш код, но настоятельно рекомендуется использовать JavaScript в Drupal> 7 следующим образом:

Дополнительная информация о Drupal Behaviors:

Обновите jQuery в Drupal 7 без разбивки представлений и других модулей [duplicate]

У этого вопроса уже есть ответ:


Мне нужно использовать jQuery 1.8.3 для некоторой функциональности, в которой я нуждаюсь, но когда я использую модуль обновления jQuery, чтобы перейти к 1.8 другим модулям, перестаньте работать, включая представления. Это obvioulsy не будет работать.

Есть ли безопасный способ реализации jQuery 1.8.3 без нарушения какого-либо другого ядра функциональности модуля drupal?

4 ответа

jQuery может работать бок о бок с другой версией jQuery. Попробуйте модуль jQuery Multi .

Вам нужно использовать более высокую версию jQuery для вашего модуля или темы, чем тот, который предоставлен Drupal /jQuery Update?

jQuery Multi позволяет загружать дополнительную версию библиотеки jQuery параллельно с версией Drupal, не вступая в противоречие с Drupal’s версия. Затем вы можете выбрать любую библиотеку JavaScript или файлы для использования новая версия jQuery. Не нужно изменять пакетные плагины jQuery!

Попробуйте отключить jquery.js Drupal из template_process_page в вашем template.php , затем замените его на загруженную версию jquery.

И из настроек просмотров просто создайте представления для использования другой темы, кроме темы. (По умолчанию используется семь тем)

Просто мне пришло в голову быстрое решение, надеюсь, что это поможет.

Вы можете переключить нужные страницы на jQuery 1.8 с реализациями hook_library_alter() и hook_module_implements_alter() и пусть jQuery Update выполняет грязную работу:

Вы также можете использовать обновление jQuery . Это модуль, который обновляет jQuery 1.5.2 /1.7.1 /1.8.2 и jQuery UI 1.8.11

Ошибка при использовании API node_load_multiple () для Drupal 7

Я создаю пользовательский модуль для Drupal 7, который удаляет все узлы типа контента. Мне нужно загрузить все узлы типа контента. Для этого у меня есть этот код:

моя проблема в том, что у меня много узлов этого типа (почти 100000), и я всегда получаю ошибку. Если я попробую это с другим типом только с 2 или 3 узлами, это работает хорошо.

Когда я запускаю свой модуль локально (windows 8.1), я получаю время ошибки превышено (оно никогда не заканчивается), а когда я запускаю на своем сервере (debian 6), я получаю ошибку 500. Я использую apache как локально, так и на сервере.

Как я мог сделать это, когда у меня слишком много узлов?

Решение

Если вы сделаете node_load_multiple из 100 000 узлов, вы получите массив из 100 000 объектов узла + их настраиваемые поля, что означает, что вы, вероятно, получите миллионы запросов mysql, и все это займет большое количество оперативной памяти.

Чтобы удалить огромное количество узлов, отправьте запрос в вашу базу данных, чтобы извлечь все nids, разбейте массив nids на пакеты по 50 или 100 nids. И выполните цикл для каждого пакета, чтобы сделать ваш node_load_multiple (почему вы не используете node_delete_multiple?).


Урок Как обновить jQuery в Drupal на более позднюю версию

Вам нравятся сайты, которые содержат в себе красивые слайдшоу, раскрывающиеся менюшки, в меру динамичные плюшки? Конечно, кто ж не любит. С этим очень успешно справляется javascript, в частности его библиотека jQuery. Она создана чтобы упростить разработчикам жизнь при работе со скриптами. В ней имеется огромный набор полезных функций, благодаря которым в несколько строк можно написать поразительные вещи. Более того, имеется огромное количество уже готовых решений, подключив которые можно практически без знаний js получить желаемый результат в виде довольно неплохих визуальных эффектов.

По умолчанию Drupal 6 содержит в своём ядре библиотеку jQuery версии 1.2.6 (Drupal 7jQuery 1.4.4). Я предлагаю 2 варианта решения этой проблемы:

Вариант 1. Включение модуля jQuery Update.

Если вам будет достаточно иметь на сайте версию jQuery 1.3.2 (или 1.5.2 для Drupal 7) — достаточно просто скачать модуль jquery_update и включить его на сайте. Этот модуль не ломает скрипты, встроенные в ядро Друпала, поэтому его можно смело включать на любых проектах.

Вариант 2. Самостоятельное подключение библиотеки и использование jQuery.noConflict();

Для начала откройте page.tpl.php и подключите там библиотеку jQuery новой версии. Затем включите noConflict. Шапка сайта будет выглядеть приблизительно вот так:

Далее используйте переменную $jq для работы с обновлённой версией jQuery:

Чем удобен второй способ:

  • На странице работает стандартный jQuery 1.2.6, не ломая скрипты, написанные только под эту версию jquery
  • Скрипт грузится с ГуглАпи — вашему серверу не приходится отдавать лишнюю сотню килобайт на каждого пользователя на каждой странице
Цукерберг рекомендует:  Продуктовая аналитика в обзор учебного курса

Программный вывод полей в Drupal 7

При работе с проектами на Drupal 7 нередко возникает необходимость вывода данных нестандартно, т. е. без использования инструментов пользовательского интерфейса. Несмотря на то, что даже стандартный способ вывода данных или полей достаточно гибок и универсален, однако бывают ситуации, когда лучше и проще прибегнуть к программному способу. Другими словами, выводить поля, написав соответствующий код, используя API Drupal. В данной статье будет показано, в каких ситуациях и как вывести поля программным способом.

Когда нужно выводить поля программно?

Поле необходимо выводить программно в следующих случаях:

  • Когда изначально не представляется возможным задействовать стандартный инструментарий пользовательского интерфейса, по-умолчанию предоставляемого Drupal. Например, когда разрабатывается новый модуль, который работает с данными полей, которые необходимо определённым образом отображать;
  • Когда необходимо вывести поле в непредусмотренном для него месте.

Все эти ситуации объединяет один фактор: поле выводится вне своей сущности. Любое поле в Drupal принадлежит какой-либо структуре данных. Когда из этой структуры данных берётся отдельное поле (или его значение) и далее выводится отдельно от его структуры данных, то это в частности, и есть программный вывод поля. Сама же структура данных, к которой принадлежит поле — это и есть сущность.

Для примера можно рассмотреть распространённую ситуацию. Пусть требуется вывести в боковой колонке содержимое самого популярного или высокооценённого комментария для какой-либо из статей. Сам комментарий — это целостная структура данных, состоящая из таких полей как: тема, автор, дата размещения, количество лайков, ну и конечно же — само основное содержимое комментария. Именно это содержимое (т. е. поле) необходимо вывести отдельно без остальных полей структуры данных в совершенно другом месте страницы. Для этого используется программный вывод вручную с помощью специальных функций API Drupal.


Конечно, для подобных задач можно использовать такие замечательные модули как Views и/или Panels. Однако, в простых случаях, проще и быстрее сделать это программно. Всё-таки Views и Panels разрабатывались как раз для очень сложного вывода полей и их компоновок.

В итоге, программный вывод полей применяется для их вывода вне их сущностей. Теперь, для более полного понимания, необходимо разобраться с «сущностями» Drupal.

Что такое сущности Drupal 7?

Сущность Druapl – это уровень абстракции, характеризующий структуры данных Drupal. Таких структур в Drupal очень много, поэтому в 7-й версии этой CMS разработчиками было введено такое понятие — сущность или entity.

Как можно догадаться из предыдущей главы, комментарий — это сущность типа «comment». Тип материала, нода (node – узел), пользователи, термины таксономии, блоки — это также сущности, состоящие из определённого набора полей. Сущности можно формировать и создавать самостоятельно. После этого они будут готовы к выводу как единое целое.
Поле Drupal является базовым элементом в структуре объектов Drupal. Что касается ноды Drupal, то с технической точки зрения, нода — это верхушка иерархии этих объектов, наиболее общая сущность, практически объединяющая все остальные. Визуально для пользователя, нода — это отображаемая в конечном виде страница Drupal. Содержащая материал, блоки, комментарии, теги и т. д. Которые, в свою очередь, также являются сущностями. Получить доступ к отдельным полям сущностей, и автоматически настроить их вывод позволяет функция field_view_field() из API Drupal 7.

Использование функции field_view_field()

Теперь можно более подробно рассмотреть, как работает функция field_view_field(). Она сама ничего не выводит, но производит большую работу:

  • получает доступ к самому полю, используя в качестве входных параметров тип его сущности, идентификатор сущности, а также машинное имя самого поля;
  • с помощью дополнительных параметров (если так будет угодно программисту) настраивает поле для последующего вывода.

Второй пункт позволяет использовать функцию field_view_field() гибко, передавая в неё массив, содержащий всевозможные опции вывода, например:

  • выводить ли поле вместе с его меткой (Label);
  • если это текст, то в каком объёме (по количеству символов) его вывести;
  • если это изображения (или ссылка на него), то какой формат (размер, графические эффекты) к нему применить;
  • и многие другие.

В итоге функция field_view_field() вернёт отформатированный набор данных, который остаётся только отрендерить на странице в нужном месте с помощью функции render().

Синтаксис функции field_view_field() следующий:

Назначение её параметров:

  • $entity_type – тип сущности (например комментарий или нода), к полю которого нужно получить доступ;
  • $entity – идентификатор сущности;
  • $field_name – машинное имя поля, к которому нужно получить доступ;
  • $display – настройки отображения поля, которые могут быть заданы в составе массива опций, определяющих вывод;
  • $langcode – опционально, задаёт язык кода, на котором должно отображаться значение поля.


В данном примере опущена HTML-разметка для чистоты восприятия кода, который в произвольном месте страницы выводит поле «field_preamble». Хранящее содержимое преамбулы к статье. Также производится его форматирование, которое заключается в том, чтобы не выводилась метка этого поля, а содержимое было обрезано до 150 символов. Возвращаемый результат присваивается переменной $output. После чего она передаётся в функцию render() для рендеринга на странице.

А как быть, когда сущность имеет несколько значений одного поля? Например, когда для поля «field_image» определено несколько значений, т. е. изображений. Нужно сначала получить список всех значений поля с помощью функции field_get_items(). А затем, отобрав нужное значение, обработать его функцией field_view_value(). Которая аналогична field_view_field(), но предназначена для работы с конкретным значением поля. Пример:

Заключение

В заключение следует отметить, что новичков часто пугает обилие опций вывода, а также не всегда очевидное их назначение. Да ещё и сложно воспринимаемая многоуровневая структура и запись массива для опций вывода. Всё это осваивается только на практике, а наименование опций нужно просто запомнить или иметь под рукой справочник и программный вывод полей, каким бы сложным он ни был, не будет составлять особого труда.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

EvgIT.com

Drupal позволяет несколькими способами подключать js-скрипты. Актуальные и рабочие примеры приведены ниже.
Сразу стоит упомянуть нюанс по подключению JQuery кода в Drupal 7 — именно кода и скриптов, так как саму библиотеку крайне рекомендуется подключать модулем jquery_update. Чтобы js-код заработал нужно вставлять его вот в такую конструкцию (необходимо только для D7, на более старых версий такого не требуется) —

/*Add your js code here*/
alert(‘hello’);

Drupal.behaviors.my_custom_behavior = <
attach: function(context, settings) <

Цукерберг рекомендует:  Программирование — не работа. 6 вариантов досуга с кодом

// Place your code here.
alert(‘hello’);

>)(jQuery, Drupal, this, this.document);

Способ 1. Подключение js-скриптов через .info-файл темы оформления или модуля.

Это работает в 6 и 7 Drupal, пожалуй, самый быстрый, надежный и простой вариант.

Способ 2. Использование модуля http://drupal.org/project/js_injector (Drupal 7 требует установки модуля ctools). Он идеально подходит для подключения не слишком больших скриптов, к примеру, для каких-то решений на jquery, так как с большим количеством строк будет не удобно манипулировать из админки, вносить туда изменения.

Способ 3. Использование модуля http://drupal.org/project/autoload_js — только для Drupal 7.

Способ 4. Подключение через файл темы template.php или кастомный модуль. Используется следующий код (работает и в 6 и 7 Drupal) —

Способ 5. Подключение через файл-шаблон темы. Удален, так как вариант плох с точки зрения оптимизации скорости загрузки сайта и сжатия всех js скриптов.

Важно! Не забывайте чистить кеш, особенно в D7 все хорошо кешируется даже для админа.

How to get jquery working on Drupal 7 — for Newbies


I have been reading many tutorials online on how to get jquery working on drupal 7. Although there are many lines of code and examples, what i cannot find is what piece of code to put where (maybe it is obvious for most of the developers)

So, what I do is

1)I create a new custom block

2)Over there from drupal UI, I write my code

3)I display the block, but the jquery is not loaded.

I am reading that I should be putting this code in template files , theme files, css files, info files and I do not know whatelse!

It is not clear to me in which file exactly and in which path I have to put the above code to work properly ?

3 Answers 3

A couple of things here:

  1. If you can avoid entering javascript and PHP into the site via the UI it will possibly save you troubles down the line. If you have no alternatives it is ok but here are some reasons why it is not a great idea: https://drupal.stackexchange.com/a/2512/10729 (note that that is aimed at PHP, not js but most of the points still stand for js). The examples module has an example of creating custom blocks.
  2. For attaching js, if you want it on all pages you can add it to your theme’s info file. If you only want it in some places though, best to use drupal_add_js() so it is only on pages it needs to be. For attaching js behaviour to forms you can also use #attached attribute on your form items.
  3. If you use $(document).ready(), it will fire your javascript when the page loads, however if the page is updated via ajax then your javascript will not fire again, so new markup won’t be affected by whatever your javascript is. To handle these cases you should use drupal behaviors instead of document ready.

In your .js insert like this code;

In your theme template.php create hook_preprocess_html then using drupal_add_js

Just change themename

your .js file should look like this :

use drupal_add_js() in your module to add this file in Drupal. good references here and here.

clear cache often ;)

Not the answer you’re looking for? Browse other questions tagged theming blocks javascript or ask your own question.

Linked


Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

site design / logo © 2020 Stack Exchange Inc; user contributions licensed under cc by-sa 4.0 with attribution required. rev 2020.11.13.35429

Вопросы с тегом ‘drupal-7’

Количество результатов: 1661

У меня есть 2-х типов контента, то первый тип название работы. каждая должность имеет список навыков. другое содержание формы заявки имеет 2 падение падения, Jobs выпа.

У меня есть таблица, в которой перечислены доступные билеты. Я хочу, чтобы позволить пользователю выбрать билет, он хочет, введите его деталь, отметьте билет, как выбр.

У меня есть тип содержимого «Event», который имеет поле адреса, пользователь мог добавить больше чем один адрес, и теперь я изменил только один адрес после выполнения .

У меня есть пользовательский тип контента в Drupal 7 для недвижимости списки недвижимости. Есть два поля в этом пользовательском контенте для стоимости имущества и вал.

если вы хотите создать сайт из одной страницы необходимо создать меню с «HREF», как «#ID» пункт «s так в Drupal после создания меню из структуры> меню и нажмите кнопку.

Я работаю над проектом, чтобы обновить веб-сайт Drupal 7 для поддержки адаптивный веб-дизайн. Существует форма, используя «Коллекция Field» и «Field Collection Table».

Прежде всего я французский разработчик, так что я прошу прощения за мой английский ;-) У меня есть много вопросов, на панели администратора моего Drupal 7 веб-сайта. .

Есть ли возможность редактировать порядок после размещения? Мои продукты установить параметр устанавливает, и я хочу, чтобы редактировать их после того, как заказ был .

Если отключить модуль WebForm в Drupal 7 сайта я ожидаю, чтобы не иметь доступа к WebForms сами, но содержание удален или будет снова получить доступ, когда я снова вк.

Мой хостинг компания реализовала SSL на моем счете. Это мульти-сайт настроить Drupal и сайты, доступ к которым непосредственно через мой регистратор домена (Hover) пра.

Я новичок в Drupal. Я путаница между содержанием и узлами. Можем ли мы сказать, всегда содержание и узел относится к новой странице?

Im создавая один плагин в моем пользовательский модуль на Drupal 7. Этот плагин в основном имеет вид, где я заполнить входы. Я претендую на 3 плагин этого в любой стр.


Я хочу, чтобы стиль моего managed_file-поле в Drupal 7 Form-API пользовательской формы и, следовательно, вставить элемент этикетки, который заменит «Выбрать файл». Т.

Im пытается создать пользовательский модуль плагин в Drupal 7, но им возникли какие-либо вопросы, которые я наклоняю решение. Я создал другие плагины ранее, но это пр.

Когда я пытаюсь следующий код в Drupal 7, $imagePath = drupal_realpath(‘public://test_path’); print_r($imagePath); Это дает выход ниже / Пользователи // Сайты/D.

Я был помещен в заряде моего сайта компании, которая построена на Drupal 7, и я создавал ежедневный экспорт-й базы данных SQL. В последнее время экспорт подскочил в ра.

Цукерберг рекомендует:  Как достать пользователей Рассылка уведомлений на JavaScript

Я не знаю точно когда, но мне кажется, после обновления некоторых модулей и ядра, карта сайта перестали работать. Используя последнюю Drupal 7,17 и XML Sitemap 7.x-2.0.

Я провел последние пять дней ищут решение для Google Диспетчера тегов и ничего не найти. Я инсталляционный модуль GTM для Drupal 7 и получил следующую генерацию коды и.

Drupal7 — На моем сайте я иметь форму типа контента в том, что у меня есть более 100 полей. Во время пика ДБ становится медленным и сайт показывает пустой до тех пор п.

Я пытался представить простую форму в сайте Drupal 7, но я не смог сделать это. Все, что я пытался Представлять просто перезагружает страницу, так что невозможно было .

Я настроил файл .htaccess в Drupal 7 направить нон WWW для WWW доменов. Когда я раскрываю это AWS упругого Beanstalk (с приложением балансировкой нагрузки), я получаю .

Мне нужно, чтобы появиться на последнюю работу теста. Я нашел эту ссылку http://upworktestru.com/drupal-test-upwork-answers-questions/ который имеет практически все во.

У меня есть один вид, который открывается в CTools Аякс друпал 7. На кнопке сохранения этой формы она должна сохранить данные и закрыть всплывающее окно и чем один нов.

Я успешно добавляя термины в частности, словарный запас, используя специальный код, но когда я пытаюсь добавить новые дочерние термины для конкретного родителя с помощ.

По какой-то причине, все содержимое тела от всех моих узлов внезапно исчезло. Он не является ни показ в фронт- или backende больше. Я проверил базу данных, и содержан.

Это с Drupal 7x. Я загрузил мою тему на Drupal. Он произвел HTTP ERROR 500. То есть все, что появляется на моем окне браузера, то есть. Теперь я не могу даже добраться.

Это один был я озадачен в течение некоторого времени, и я мог бы сделать какие-то ошибки, чтобы усугубить проблему. Мой сайт начинался как одного сайта языка, без как.

Я проникаю узел из D7-D8, но мне нужно, чтобы получить значение тела абзаца и сцепить его со значением тела. Вот дамп узла: object(Drupal\migrate\Row)#1848 (8) < [".

Я хочу, чтобы проверить подлинность пользователя Друпал и создать узел в Drupal-сайта. Я использую REST API службы в питона. Я сделал ниже код, но он не работает. imp.

мой сайт работает нормально. Только магазин возвращает внутреннюю ошибку 500. Она открывается, но когда кто-то нажимает на продукт он возвращает «сайт в настоящее врем.

При использовании длинных сухарей например, text-overflow: ellipsis;, Firefox ведет себя иначе, чем Chrome и Internet Explorer. Сначала я должен был создать специальн.


Я хочу создать пользовательское представление для страницы профиля, поэтому я хочу, чтобы получить URL-адрес в профиле. Что-то вроде $ node_url что получить профиль URL.

У меня есть один вид в Drupal 7, который отображает информацию о пользователе, как (имя, адрес, статус и т.д ..). У меня есть один столбец в этом (таблица) зрения, как.

Я использовал document.referrer комментарий, чтобы получить предыдущий URL страницы. Когда я нажимаю меню document.referrer правильно перенаправлять. Однако, когда я в.

Я хотел бы, чтобы скрыть путь к пункту меню к югу, который показан в навигационной цепочке, когда вы запрашиваете страницу, нажав на субменю. Вот код, я использую, чт.

Я создал веб-форму для рекомендации в Друпал 7. Его работает отлично. Теперь я хочу, чтобы отобразить эту форму в модальном/наложенном во всплывающем окне при нажатии .

Я создал веб-форму, и она работает нормально. Все поля обязательны для заполнения, и валидация работает, но валидация является валидацией. Я не хочу валидации js веб-ф.

Я работаю над проектом drupal (версия 7.13), где я хочу использовать https. У меня есть htaccess с кодом ниже, я получаю ошибку: слишком много перенаправлений Может .

Я пытаюсь интегрировать приложение angular 6 с drupal версии 7, но не могу найти решение для интеграции приложения с drupal версии 7. Может кто-нибудь помочь в этом?

Я создал специальный модуль, где он получает данные со стороннего сайта во встроенный Iframe, который будет аутентифицировать пользователя через токен JWT. Поэтому мне.

Как я могу скрыть от внешнего интерфейса теги без изображений? Есть ли сценарий, который я должен добавить или я могу сделать это из backoffice (настройки или что-то) ??

У меня есть сайт и промежуточный сайт. Мне пришлось обновить некоторые модули, поэтому сначала проверили их на своем промежуточном сайте. При обновлении промежуточного.

Подход к созданию и запуску диалога загрузки неверен. Диалог (загрузка) не может быть инициирован из фонового процесса (вызов AJAX) Я пытаюсь создать/скачать файл CSV.

У нас есть следующая настройка в локальной среде докера PHP-FPM (7.1) + Drupal (7) + Apache Nginx Аперео CAS В настоящее время мы использовали CAS производственного .

Я получаю ошибку «413 Request Entity Too Large» при загрузке больших файлов в мой локальный экземпляр ddev, особенно с восстановлением из большого файла базы данных с .

Я включил форму под модулями, но доступ к странице приводит к ошибке «страница не найдена». сайты/по умолчанию/модули/awesome_form/awesome_form.module function awes.

Я загрузил весь исходный код с сервера, и я хотел бы настроить его в своей локальной системе, но всякий раз, когда я пытался позвонить администратору, он выдавал ошибк.

Я пытаюсь определить, когда узел типа контента обновляется или сохраняется в первый раз и имеет прикрепленный звук. Если это так, я хочу переписать метатеги Twitter C.

Следующая строка работает для перенаправления https: RewriteCond % !=on # This checks to make sure the connection is not already HTTPS RewriteRule ^/?(.*) ht.

В Drupal 7 библиотека jquery не получает вызов в модуле

Я пробовал все способы включить библиотеки в мой модуль, ни один из них не работал.

Как я могу вызвать библиотеку в своем модуле?

В sites/all/libraries/jquery присутствует библиотека jquery-1.11.3.js .
Но когда я загружаю страницу, она не находит библиотеку.

1 ответ

jQuery уже доступен с Drupal. Вам не нужно загружать его как библиотечный пакет.

Если вы пытаетесь использовать другую версию jQuery, я рекомендую вместо этого использовать добавленный модуль jQuery Update.

В противном случае более вероятно, что у вас возникнут проблемы с jQuery, особенно с темой администратора и общим удобством использования.

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих