1. Пятница, 12 февраля

      MVC: Front Controller, Controller и Router

      В прошлый раз я описал построение простейшего, но довольно функционального компонента View. В этот раз займёмся Front Controller, Controller и Router. Код, приведённый ниже может не запускаться, не является безопасным, но объясняет общие принципы работы большинства MVC-фреймворков.

      Читаем


    1. Понедельник, 25 января

      Использование Drupal через bootstrap

      Drupal позволяет поработать со своим API из внешнего скрипта. Ну или почти внешнего.

      Покажу на примере, как можно организовать импорт данных в Drupal.

      Читаем


    2. MVC: View

      Многие обожествляют MVC и думают, что если не использовать какой-нибудь фреймворк, View реализовать очень сложно. А уж тем более с поддержкой layout-а и возможностью использовать вложенные шаблоны. На самом деле это совсем не так.

      Читаем


    1. Суббота, 5 декабря 2009

      Фиксированная середина, плавающие колонки

      Вчера понадобилось получить довольно нестандартную трёхколоночную разметку: с фиксированной средней колонкой (например, шириной в 500px) и двумя боковыми, занимающими всё остальное пространство.

      http://rmcreative.ru/playground/fluid-fixed-fluid/target.png

      Оказалось, что решение довольно интересное.
      Читаем


    1. Пятница, 6 ноября 2009

      Фреймворки

      Довольно долго я пытался подобрать себе PHP-фреймворк. И, разочаровываясь в некоторых из кандидатов, задумывался о необходимости фреймворка как такового. Приведу некоторые очевидные, не очень очевидные и, надеюсь, полезные факты.
      Читаем


    1. Понедельник, 2 ноября 2009

      PHP, валидация и массивы

      Наверное, многие сталкивались с задачей ввода произвольного числа одноимённых полей через форму. В PHP это сделано довольно удобно: в форме к имени поля добавляется [] и на стороне сервера в $_POST, $_GET или $_REQUEST мы получаем уже массив.

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

      http://example.com/list.php?q=test
      http://example.com/list.php?q[]=test



      Довольно безобидный код, в котором нет проверки:


      $q = null;
      if(!empty($_GET['q'])) {
      $q = $_GET['q'];
      }
      // тут начинаем работать с $q как со строкой



      А вот менее безобидный пример: в WordPress до версии 2.8.4 можно было таким вот образом сгенерировать новый пароль администратора без отсылки ему каких-либо писем.


    1. Четверг, 29 октября 2009

      Drupal: вывод данных с постраничной разбивкой

      Довольно типичная для Drupal задача, которая частенько ставит новичков в тупик.


      // Пишем SQL без LIMIT. Не думаем о постраничной разбивке вообще.
      $sql = "select title, type from {node}";

      // Заголовок таблицы
      $header = array(
      t('Заголовок'),
      t('Тип')
      );

      // pager_query добавит в SQL LIMIT без нашего непосредственного участия
      $result = pager_query($sql, 10);

      // собираем данные для таблицы из результата запроса
      $rows = array();
      while($row = db_fetch_object($result)){
      $rows[] = array(
      $row->title,
      $row->type
      );
      }

      // выводим таблицу
      echo theme('table', $header, $rows);
      // выводим постраничную навигацию
      echo theme('pager');


    1. Среда, 14 октября 2009

      Google и meta

      - Google не учитывает meta keywords при формировании индекса страниц.
      - Google выводит описание из meta description в результатах поиска (если это самое описание релевантно):
      http://3.bp.blogspot.com/_o5Na_9269nA/Rv12nD5PK2I/AAAAAAAAAuw/TU6TynENcgo/s400/video+-+good.png
      - То, что указано в title чаще всего показывается как заголовок в результатах поиска.

      Также Google можно попросить не показывать в результатах ссылки на перевод, краткое описание, не брать описание из DMOZ, не ставить ссылку на кэшированную версию. Эти моменты, как и многое другое, описаны в Google webmaster central.


    2. Убрать выделение активных ссылок не усложняя навигацию клавиатурой

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

      Вот таким вот нехитрым образом можно убрать рамку только для действий мышкой:

      a:active{
      outline:none;
      }



      Подсмотрел тут


    1. Среда, 30 сентября 2009

      Портативная Web IDE

      В Web IDE, как и во всех нормальных программах, есть возможность работать с переносного диска, будь то флешка или какое-то другое устройство.

      1. Устанавливаем IDE в нужное нам место (у меня это z:\webide).
      2. Идём в z:webidebin, находим там idea.properties. Его будем править.
      3. Нас интересуют idea.config.path и idea.plugins.path. Исправляем ${user.home} на ${idea.home}.

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

      idea.system.path устанавливать в ${idea.home} при использовании на медленных устройствах не стоит: там хранится индекс проекта, который активно используется и занимает довольно много места.


Подписаться на RSS

Интересное

Разделы

  1. (5)
  2. (11)
  3. (6)
  4. (9)
  5. (6)
  6. (6)
  7. (16)
  8. (59)
  9. (264)
  10. (51)
  11. (16)
  12. (12)
  13. (37)
  14. (5)
  15. (10)
  16. (14)
  17. (18)
  18. (12)
  19. (6)
  20. (8)
  21. (7)
  22. (29)
  23. (62)
  24. (18)
  25. (64)
  26. (5)
  27. (193)
  28. (56)
  29. (6)
  30. (18)
  31. (72)
  32. (27)
  33. (65)
  34. (32)
  35. (10)
  36. (5)
  37. (6)
  38. (5)
  39. (309)
  40. (11)
  41. (6)
  42. (12)
  43. (8)
  44. (18)
  45. (6)
  46. (15)
  47. (114)
  48. (18)
  49. (6)
  50. (8)
  51. (66)
  52. (16)
  53. (6)
  54. (17)
  55. (5)
  56. (26)
  57. (7)
  58. (27)
  59. (7)
  60. (12)
  61. (11)
  62. (118)
  63. (31)
  64. (5)
  65. (18)
  66. (22)
  67. (9)
  68. (6)
  69. (8)
  70. (41)
  71. (10)
  72. (6)
  73. (12)
  74. (8)
  75. (5)

Друзья