6 заметок с тегом

php

Аддурилка или мой первый плагин для Wordpress

Вот так выглядит «Аддурилка» для CMS Wordpress

Написал свой первый плагин для Wordpress. Даже отправил его на WordPress.org. Называется «Addulika». Из названия понятно, что он служит для добавления ссылок публикаций в Яндекс.Вебмастер. Также он может проверить находится ли ссылка (проиндексирована ли) уже в поисковике.

Из планов на будущее:

  • Прикрутить возможность отправлять ссылки в другие поисковики.
  • Автоматизировать процесс проверки ссылки. Сразу проверялась и отображался результат.

Два совета для разработчиков:

  • Обдуманно упоминать в названии плагина наименования известных брендов.
  • Наименования функций в плагине нужно придумывать исходя из его уникального названия.

P.S. Вопрос знатокам русского языка. Кавычки в наименовании. Когда ставятся, а когда ими можно пренебречь?

 64   2015   php   wordpress   кодинг   продвижение

Ошибка функции file_put_contents() и пути её решения

С утра блог «порадовал» меня следующим сообщением: «PHP (2): file_put_contents() [function.file-put-contents]: Only 0 of 16364 bytes written, possibly out of free disk space».

Скриншот безобразия.

Причина ошибки в том, что движок сайта не может кэшировать публикацию в Эгеи или сохранить другую информацию в файл по причине недостатка места или недоступности записи на хостинге.

Пути решения

  1. Проверьте права записи на папку в которую происходит запись (поставьте CHMOD 777).
  2. Почистите кеш, то есть поищите папки с названием cache и удалите из них информацию (в Эгеи открытием ссылки «http://ваш_блог.ru/?go=@sync») или очистите кеш в CMS.
  3. Если ошибка не ушла, свяжитесь с хостером или проверьте не забился ли логами или ещё чем ваш сервер.
 110   2014   php   Е2   кодинг

Выводим популярные публикации за пределы Эгеи

Решил вывести популярные публикации блога на главную страницу сайта. Может кому пригодится. В нужном месте вставляем вызов этой функции.

// Взятие популярных постов из блога
function popular_post_links () {
// Читаем кеш популярных постов
$s = @file_get_contents ('blog/user/caches/popular.ctree.psa'); 
// Вместо "blog" название вашей папки с Эгеей 
$s = @unserialize ($s);
// Выводим название популярных постов
foreach ($s as $item) {
  echo '<p><a href="' . $item['href'] . '">' . $item['title'] . '</a></p>';
}
}
 1 комментарий    30   2014   php   Е2   кодинг

Динамическая версия CSS и JS

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

<link rel="stylesheet" href="/styles/main.css?<?php echo time(); ?>" />
<script src="/js/main.js?<?php echo time(); ?>"></script>

Где php-вставка подставляла текущее время и получался следующий код:

<link rel="stylesheet" href="/styles/main.css?1401823964" />
<script src="/js/main.js?1401823964"></script>

Это позволяло автоматически обновлять в браузере CSS и JS файлы с которыми работаю (борьба с кешированными версиями обновляемых файлов), создавая «разные» версии файлов, при каждой перезагрузке страницы. Но правильно ли так делать? Ведь даже если я ничего не менял, все равно браузер грузил все по новому.

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

  1. Берётся время последнего изменения файла.
  2. Сравнивается со временем указанным как версия файла (или с хранимыми где-то последними версиями файлов, которые используются).
  3. Если они равны, то ничего не меняется.
  4. Если не равны, то версия файла меняется на время последнего изменения файла (или старый файл заменяется новым).

Стоит ли вообще на этом заостряться? Или лучше воспользоваться одним из решений предложенных в дополнительных материалах или предложенным выше (вторая ссылка вроде предлагает решение по этому алгоритму)?

Дополнительные материалы

Умное Кеширование и Версионность в Javascript/CSS
(en) Automatic merging and versioning of CSS/JS files with PHP
(en) Automatic versioning of CSS, JavaScript and Images
(en) Simple CSS/JS Concatenation and Versioning with PHP
(en) Automating JS and CSS Versioning
(en) Make your pages load faster by combining and compressing javascript and css files

 1 комментарий    327   2014   css   js   php   кодинг

Заносим значения в базу MySQL из большой формы

На одном из проектов получалась огромная форма и для сокращения кода был разработан следующий универсальный обработчик данных из формы с занесением их в базу MySQL:

if (isset($_POST["submit"])) {
unset($_POST["submit"]);
  while (list($index,$value) = each($_POST)) {
    if (is_array($value)) {$value = join(",",$value);};
    $masiv[$index] = htmlspecialchars($value);
  }
$masiv["столбец_N"]="значение_N"; // Дополнительное значение для всей формы.
$keys = join(",",array_keys($masiv));
$values = join("","",array_values($masiv));
$query = mysql_query("INSERT INTO `таблица` (".$keys.") VALUES("".$values."")");
if ($query == "true")  { echo «Иформация успешно добавлена!»; }
}

Надеюсь, кому-нибудь пригодится!

 1 комментарий    32   2014   MySQL   php   кодинг

Автоматическое обновление года на сайте

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

<?php $year = date('Y'); echo $year; ?>

А какими кодинг-хаками пользуетесь вы?

P.S. По подсказке Игоря в комментариях, есть более элегантное решение.

<?=date('Y') ?> //Короткие теги включены.

или

<?php echo date('Y'); ?>

P.S.S. Вот ещё полезный ресурс на эту тему — Update Your Footer.

 1 комментарий    36   2014   php   кодинг