• strict warning: Non-static method view::load() should not be called statically in /var/www/codeacademy/sites/all/modules/views/views.module on line 1113.
  • strict warning: Declaration of views_handler_field::query() should be compatible with views_handler::query($group_by = false) in /var/www/codeacademy/sites/all/modules/views/handlers/views_handler_field.inc on line 0.
  • strict warning: Declaration of content_handler_field::element_type() should be compatible with views_handler_field::element_type($none_supported = false, $default_empty = false, $inline = false) in /var/www/codeacademy/sites/all/modules/cck/includes/views/handlers/content_handler_field.inc on line 0.
  • strict warning: Declaration of views_handler_sort::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /var/www/codeacademy/sites/all/modules/views/handlers/views_handler_sort.inc on line 0.
  • strict warning: Declaration of views_handler_sort::options_submit() should be compatible with views_handler::options_submit($form, &$form_state) in /var/www/codeacademy/sites/all/modules/views/handlers/views_handler_sort.inc on line 0.
  • strict warning: Declaration of views_handler_sort::query() should be compatible with views_handler::query($group_by = false) in /var/www/codeacademy/sites/all/modules/views/handlers/views_handler_sort.inc on line 0.
  • strict warning: Declaration of views_handler_filter::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /var/www/codeacademy/sites/all/modules/views/handlers/views_handler_filter.inc on line 0.
  • strict warning: Declaration of views_handler_filter::query() should be compatible with views_handler::query($group_by = false) in /var/www/codeacademy/sites/all/modules/views/handlers/views_handler_filter.inc on line 0.
  • strict warning: Declaration of views_plugin_query::options_submit() should be compatible with views_plugin::options_submit($form, &$form_state) in /var/www/codeacademy/sites/all/modules/views/plugins/views_plugin_query.inc on line 0.
  • strict warning: Declaration of views_plugin_style_default::options() should be compatible with views_object::options() in /var/www/codeacademy/sites/all/modules/views/plugins/views_plugin_style_default.inc on line 0.
  • strict warning: Declaration of views_plugin_row::options_validate() should be compatible with views_plugin::options_validate(&$form, &$form_state) in /var/www/codeacademy/sites/all/modules/views/plugins/views_plugin_row.inc on line 0.

От статики к динамике: в чем соль?

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

Чтобы создать простой сайт описания услуг, с контактными данными и прочей информацией, которая будет представляться вошедшим на сайт, хватит одного html. Так я и делал, писал сайты с помощью html. Схема всех их была единой, создавал файл index.html, в нем прописывал ссылки на другие html файлы, вдобавок к этому у меня была папка images, с отсортированными по дате картинками, вот и все. Этим способом я создал, чуть ли не десяток похожих друг на друга сайтов, но в глубине души, я понимал, что должно быть универсальное решение для всего этого, где же это веб программирование о котором все так восторженно твердят, ведь всем известно что html это не язык программирования, здесь нет ни логики, ни условий и циклов, вобщем всего что можно отнести к программированию. Однажды я получил заказ, нужно было написать сайт-каталог, который должен был иметь в себе около 100 товаров. Я как всегда, не задумываясь, стал создавать файлы .html, с названием, картинкой, описанием и другой информацией о товаре. В каждой странице должны были быть кнопки на следующий и на предыдущий товар.

Я конечно запутался в файлах, все менял их названия местами, пробовал поочередно все тестировать, но снова запутывался. После пары бессонных ночей, я кое-как (довольно криво) закончил работу и показал ее заказчику. Ему понравился сайт и он захотел вторую версию, срок у меня был лишь 2 недели. Показав мне один заморский каталог где все было реализовано он сказал, что пользователь должен иметь возможность сортировать товары по категориям, дате добавления, цене и делать поиск по ключевым словам, на сайте должна быть постраничная навигация. Заказчик был непоколебим, нужно было все реализовать. Но сухим html здесь не обойтись, здесь нужно программирование и я стал искать в интернете лучший язык веб-программирования и на одном из форумов наткнулся на некий php. Язык не сложен в изучении, имеет множество преимуществ перед другими языками (имеется в виду в разработке сайтов). Итак, я начал изучать php, наличие видеоуроков, множество сообществ, решенных задач и проблем на форумах сделали свое дело, через неделю я владел php, естественно на том уровне, который позволял мне закончить работу над сайтом.

Для хранения данных, вместо файлов я использовал субд «mysql» версии 4.1, которая вышла в том же году. Здесь тоже не было ничего сложного, несколько запросов, на понятном человеку английском языке и дело в шляпе. Благодаря связке php-mysql-html, мой сайт получился динамичным, больше не приходилось создавать сотни статических файлов и разумеется я избавился от вечных звонков заказчика, который по среди ночи вдруг захотел добавить товар на сайт. Для этого я создал административную часть ( разумеется закрытую для обычных пользователей), в ней были 4 - 5 полей, где заполнялись данные о товаре и нажимая кнопку сохранить товар добавлялся на сайт. Поиск, категории, постраничная навигация все что угодно, вопросы решались один за другим быстро и красиво. Я переделал весь сайт и это заняло у меня всего лишь одну неделю. Я был счастлив, я любил веб -программирование.

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

В статическом html это выглядит так:

<table>
<tr>
	<td><a href = "товар_1.html">Товар1</a></td>
</tr>
<tr>
	<td><a href = "товар_2.html">Товар2</a></td>
</tr>
<tr>
	<td><a href = "товар_3.html">Товар3</a></td>
</tr>

....
ну и так до 10.

Тот же пример средаствами php:

<table>
<?php	foreach( $товары as $товар) { ?>
  <tr>
    <td>
       <a href = " <?php echo $товар[' ссылка '] ;?> " >
          <?php echo $товар[' название '] ;?>
       </a>
    </td>
  </tr>
<?php } ?>
</table>

(Если вы не знакомы с тегом table, то посоветую прочитать статью о табличной верстке)

Неважно сколько у вас ссылок, php напечатает их всех.

Эту задачу конечно можно решить с помощь html, но как же решить ее когда товаров больше 1000? Конечно, нужно использовать php, это не так сложно как кажется на первый взгляд.