воскресенье, 24 марта 2013 г.

Интерактивная карта IPv4-адресов...

...на основе глобального скана сети с помощью ботнета, созданного из устройств с дефолтными настройками и аккаунтами (страница проекта http://census2012.sourceforge.net/paper.html).

Сама карта.

четверг, 21 марта 2013 г.

Стили текста в Virtuemart

Чувствую, периодически, вновь и вновь буду возвращаться к виртуальному магазину. Посему, себе закладка на память:
Чтобы изменить внешний вид цены в категории товаров правим в файле
/components/com_virtuemart/assets/css/vmsite-ltr.css
строку
.featured-view .spacer span,.latest-view .spacer span,.topten-view .spacer span,.related-products-view .spacer span,.browse-view .row .product .spacer span{font-size:11px;color:#666;}

Как видно, стиль затрагивает не только цену но и другие надписи. Желательно бы покопаться и сообразить отдельный стиль для цены.

Долго же я искал :)

Пару слов о переменных (взято с нета):

Почти все шаблоны делятся на 2 две группы:
Шаблоны для категории
Шаблоны для товара (карточка)

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

Как это всё вообще работает. Для того чтобы увидеть содержимое любой категории в адресной строке или POST запросе должны присутствовать хотя бы следующие параметры: option=com_virtuemart, page=shop.browse. После запроса на просмотр определенной категории парсер VirtueMart запускает файл «shop.browse.php». Там в соответствии с установленными параметрами выполняется запрос в базу данных.

Если запрос вернул записи, то из данных категории, если была запрошена категория или из данных первого найденного товара, если выполнялся поиск, берется имя шаблона, и выбранные записи циклично обрабатываются. А именно, из данных текущей записи определяются переменные, после чего заглушки из шаблона заменяются на значения этих переменных.
Шаблон категории (перечень товаров)

Шаблоны отображения данных для категорий размещаются в .../administrator/components/com_virtuemart/html/templates/browse/browse_ХХ.php Могут задаваться для каждой категории разными (своими). Устанавливаются в настройках категории. Всё это ужасно интересно, но для пользователей, которым совершенно не хочется копаться в коде я приведу таблицу соответствий заглушек абстрактному содержанию переменных.

{product_flypage} - Ссылка на флаер товара

{product_thumb_image} - Имя файла маленькой картинки

{product_full_image} - Имя файла большой картинки

{full_image_width} - Ширина большой картинки. Для открытия картинки в окне, размером с картинку

{full_image_height} - Высота большой картинки

{image_url} - Ссылка до директории картинок Virtuemart «images/»

{image_width} - Ширина маленькой картинки

{image_height} - Высота маленькой картинки

{product_name} - Наименование товара

{product_s_desc} - Краткое описание товара

{product_details...} - Имя ссылки на флаер товара «Подробнее...»

{product_rating} - Рейтинг товара

{product_price} - Цена товара

{form_addtocart} - Форма добавления в корзину

{product_sku} - Артикул товара
Внешний вид карточки товара

Флаер, или страница подробной информации о товаре, или карточка товара - это то, что увидит покупатель «зайдя» в товар. Внешний вид этой страницы определяется одним из шаблонов расположенных в директории «product_details/» . Один из этих шаблонов можно назначить категории и/или типу и/или конкретному товару. Обработка данных и наполнение шаблона осуществляется файлом «shop.product_details.php» . Для наполнения шаблона можно использовать следующие заглушки:

{navigation_pathway} - Путь до товара - Инструменты ? Дрели ? Дрель/Шруповерт D-Link DSL-G604T

{navigation_childlist} - Выпадающий список с дочерними товарами - Для добавления нужно войти в свойства товара а затем в меню VirtueMart выбрать «Товары» ? «Текущий товар» ? «Добавить объект»

{product_name} - Наименование товара

{product_image} - Готовая маленькая картинка

{full_image} - Готовая большая картинка

{more_images} - Готовая ссылка на дополнительные картинки - Для добавления нужно войти в свойства товара, а затем в меню VirtueMart выбрать «Товары» ? «Менеджер файлов» ? «Добавить изображение/файл

{file_list} - Файлы товара

{edit_link} - Ссылка на редактирование свойств товара уполномоченными пользователями

{manufacturer_link} - Ссылка на страницу подробной информации о производителе

{product_price} - Цена товара

{product_s_desc} - Краткое описание товара

{product_description} - Полное описание товара

{product_weight} - Вес товара

{product_sku} - Артикул товара

{addtocart} - Форма добавления в корзину

{product_reviews} - Покупательские отзывы

{product_reviewform} - Форма для оставления отзыва

{product_availability} - Доступность товара - Те идиотские картинки =) 24h, 1 week и пр. По нашему «Обычное время доставки»

{vendor_link} Ссылка на продавца - Имеет смысл, если в магазине много продавцов. Обычно Вы и есть единственный продавец.

{mosConfig_live_site} - Ссылка на ваш сайт

{related_products} - Простые карточки схожих продуктов - Можно назначить в свойствах товара, можно позволить VirtueMart генерировать этот список самостоятельно, а можно просто отключить.

{product_type} - Таблица с параметрами типа товара - Внешний вид меняется в файле «ps_product_type.php» в функции «list_product_type»

{product_packaging} - Информация об упаковке и количестве товаров в упаковке - Задается в свойствах товара
Настройка внешнего вида каталога

Все начинается с изменения файла ...\administrator\components\com_virtuemart\html\shop.index.php

Для изменения количества категорий строку ищем 35-ю строку и находим строку $categories_per_row = х; Здесь соответственно указанно, количество категорий на строку, можете сами выставить желаемое

Расстояние между категориями меняются - Для этого меняем параметр cellpadding="". Вместо "0" ставим например "7".
Настройка внешнего вида под категории

В этом случае изменяем файл administrator/components/com_virtuemart/classes/ps_product_category.php. Действия такие же, как в настройке внешнего вида каталога.

воскресенье, 17 марта 2013 г.

Колонки материала в Joomla

Задача: изменить количество колонок материала (не макета!), например, из двух в одну; например, новостей.

Открываешь Все меню -> Меню в котором находится пункт новостей -> Открываешь пункт новостей для редактирования. Далее в правом блоке с настройками пункта меню написано Параметры основные
там соответственно находятся следующие параметры
Во всю ширину
Вступление
Колонки
Ссылки

Выбираем Колонки и ставим нужное количество колонок сохраняем смотрим

воскресенье, 24 февраля 2013 г.

Resolving "403 Forbidden" error, Nginx

403 Forbidden errors are Nginx’s way of telling “You have requested for a resource but we cannot give it to you.” 403 Forbidden is technically not an error but a HTTP status code. 403 response headers are intentionally returned in many cases such as -
User is blocked from requesting that page/resource or the site as a whole.
User tries to access a directory but autoindex is set to
off.
User tries to access a file that can be only accessed internally.

These are some among many cases where a 403 Forbidden response is intentionally returned. But here we will talk about the causes of 403 responses that are unintentional/not desired which generally occur as a result of misconfiguration on the server side.
Permissions are not set correctly

This is the most common cause of this error. By permissions, I do not only mean the permissions for the file that is being accessed. In order to serve a file, Nginx needs to have read permissions for the file as well as execute permissions for every hierarchial parent directory of the file to chdir to it. For example, to access the file located at -
/usr/share/myfiles/image.jpg

Nginx needs to have read permissions for the file as well as execute permissions for /,
/usr,
/usr/share and
/usr/share/myfiles. If you use the standard 755 for directories and
644 for files (umask: 022), you should not run into this problem.

To check for ownership and permissions on a path, we can use the namei utility like this -
$ namei -l /var/www/vhosts/example.com

f: /var/www/vhosts/example.com
drwxr-xr-x root root /
drwxr-xr-x root root var
drwxr-xr-x www-data www-data www
drwxr-xr-x www-data www-data vhosts
drwxr-xr-x clara clara example.com
Directory index is not properly defined

Sometimes, the index directive does not contain the desired directory index. For example, for a standard setup with PHP, the index directive should be -
index index.html index.htm index.php;

According to this example, when a directory is acessed directly, Nginx will try to serve index.html, then index.htm and index.php after that. If none of them are found, Nginx will return a 403 header. If index.php were not defined in the root directive, Nginx would have returned 403 without checking for the existence of index.php.

Similarly, for a Python setup, index.py should be defined as a directory index.

These are the most common causes of undesired 403 responses. Feel free to leave a comment if you are still getting 403s.

(c) http://nginxlibrary.com