Получить все категории товарв

 
создадим новы сниппет getPartCategories

<?php
/**
 * 
 * @example {'!get_сat_anket' | snippet : ['res_id' => $modx->resource.id]}
 * 
*/
$tpl = $modx->getOption('tpl', $scriptProperties, '@INLINE <a href="{$uri}">{$pagetitle}</a>');
$res_id = $modx->getOption('res_id', $scriptProperties, 0);
$return = $modx->getOption('return', $scriptProperties, 'html'); // html|ids|ids_arr
if ($res_id == 0) {
    return false;
}
$modx->getService('miniShop2');
$q = $modx->newQuery('msCategoryMember');
$q->leftJoin('modResource', 'R', 'R.id = msCategoryMember.category_id');
$q->select(['`R`.`id`', '`R`.`pagetitle`', '`R`.`uri`']);
$q->where(['`msCategoryMember`.`product_id`' => $res_id]);
$cats = $modx->getIterator('msCategoryMember', $q);
if ($cats == null) {
    return false;
}
$pdo = $modx->getService('pdoTools');
$out = [];
$res_obj = $modx->getObject('modResource', ['id' => $res_id]);
$parent = $modx->getObject('modResource', ['id' => $res_obj->get('parent')])->toArray();
if ($return == 'html') {
    $out[] = $pdo->getChunk($tpl,$parent);
    foreach ($cats as $c){
        $out[] = $pdo->getChunk($tpl,['uri' => $c->get('uri'), 'uri' => $c->get('pagetitle')]);
    }
    return implode("\r\n", $out);
}
if ($return == 'ids' || $return == 'ids_arr') {
    $out[] = $parent['id'];
    foreach ($cats as $c){
        $out[] = $c->get('id');
    }
    if ($return == 'ids') {
        return implode(',', $out);
    }
    return $out;
}
return false;


вызов

{'!getPartCategories' | snippet : ['res_id' => $modx->resource.id]}

MIGX кастомный renderer для TV

 
если нам необходимо для рендеренга в списка id ресурса то вам поможет следущий пример

во вкладки формы я использовал Tv с выводом ресурсов имя которого res_list_one

      {
        "field": "res_id",
        "caption": "Товар",
        "inputTV": "res_list_one"
      }


а вот в Разметка колонок для данного поля указал renderer


{
  "header": "Товар",
  "dataIndex": "renderer",
  "renderer": "this.renderChunk",
  "renderchunktpl":"[[#[[+res_id]].pagetitle]]"
}

Снипет для оберзки текста

 
Данный снипет
  • обрезает текст до последнего пробела
  • очищает от тегов
  • Добавляет точки в конец если обрезка произошла
использовать можно двумя способами
[[!cutstr? &text=`[[*introtext]]` &q=`150` &tag=`1` &dot=1]]

или


Читать дальше

Текущий url в JS

 
Получить информацию о текущем url через Js.

Объект
window.location


Свойства:
window.location.href – полный путь к запрошенной странице – www.site.ru/somepage
window.location.host – имя сервера (домен) и порт – www.google.com:80
window.location.hostname – имя сервера без порта – www.google.com
window.location.hash – хеш, указание на конкретный элемент страницы (то, что идет после символа # в адресе)
window.location.pathname – собственно строка пути относительно корня веб-сайта
window.location.port – номер порта
window.location.protocol – используемый протокол (http://)
window.location.search – часть адреса, содержащая GET-параметры (т. е. после символа? в адресе и до #)

Пример:
if (window.location.pathname == '/' || window.location.pathname == '/index.html')
{
    // Это главная страница
}

Сгенерить код картинки или код ссылки теперь может и домохозяйка

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

Сам сайт посещаем тут http://tech.z1q.ru/
Обсуждаем тут На форум...

eSyndiCat_v2.5.0_Nulled скачать для создание каталога сайтов

 
Для тех кто хочет создать свой собственный каталог сайтов очень хорошо подходит eSyndiCat
для примера можем взглянуть на _1wc.tv

Версия: 2.5.0
Nulled: Да
Ссылка для скачивания

Обсудить на форуме
Кроме того на форуме есть скрипт, который поможет вам создать красивую карту сайта вашего каталога

Mod_rewrite удаляем повторяющиеся страницы сайта

 
Всем известно, что главную страницу вашего сайта можно открыть по следующим адресам
http://www.mysite.ru/
http://mysite.ru/
http://www.mysite.ru/index.html
http://mysite.ru/index.html

Ну и констатируем что поисковик видит все эти четыре адреса как 4- самостоятельных страницы, оговорюсь, не всегда но иногда. Для того чтобы этого избежать пишем следующее
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^mysite.ru
RewriteRule (.*) http://www.mysite.ru/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://www.mysite.ru/ [R=301,L]

И теперь мы получаем редирект всех страниц на 'http://www.mysite.ru/'

12 советов от Гари Бил 2013 год

 
Ну вот собственно товарищ из-за бугра решил проветить нас горемычных в СЕО, и для этого он 12 советов на конференции Экспо РФ в Москве

Вы можете его скачать тут

или обсудить на форуме
SQL

Подсчет колличество записий удовлетворяющих условиям с группировкой

 
собственно тут мы селектим из одной таблицы по уникальному полю name и суммировали для них колличество записей
SELECT name, COUNT( * ) as kolvo FROM allinks WHERE  mach = 1 GROUP BY  name
SQL

MySQL SELECT with LIKE

 
Для тех кому ну уж очень приспичило выбрать строки из двух таблиц посредством LIKE собственно ниже запрос
тут используем CONCAT('%',_pole_,'%')
SELECT 
    al.link, gl.link  
FROM 
    glinks gl 
LEFT JOIN 
    allinks al 
ON 
    al.link LIKE CONCAT('%',gl.link,'%')

Проверка файла на удаленном сервере

 
Для того чтобы проверить наличие файла на удаленном сервере его не обязательно скачивать достаточно увидеть заголовки.
Мы будем проверять функцией @get_headers()

// файл, который мы проверяем
$url = "http://z1q.ru/mypic.png";
// получаем заголовки
$Headers = @get_headers($url);
// проверяем наличие HTTP/1.1 200 OK
if($Headers[0] == 'HTTP/1.1 200 OK') {
echo "Файл существует";
} else {
echo "Файл не найден";
}

Файл настроек PHP - php.ini в *nix

 
Иногда просто из головы вылетает где лежит конфигурационный файл php.ini
ОС — FreeBSD, Linux Debian/ubuntu и Linux CentOS/RedHat.


Читать дальше

Bitrix на веб окружение с ошибкой UTF-8

 
При переносе сайта на Bitrx web окружение возможна вот такая ошибка
Для продолжения установите настройки PHP: mbstring.func_overload=0 или mbstring.internal_encoding=ISO-8859-1.
для того чтобы поправить ситуацию в директиве файла nano /etc/httpd/bx/conf/default.conf внашем редиректе добавляем выделенную ниже строку
<Directory /home/bitrix/www/>
            ...
                php_admin_value mbstring.func_overload 0
            ...
        </Directory>
 
тут показана совсем стандартная конфа, но не в этом суть

Друзья, теперь вы можете читать и комментировать мои записи и на Я.ру

 
Друзья, теперь вы можете читать и комментировать мои записи и на Я.ру — rasxod!

DbSimple настройка

 
для начала качаем отсюда utf-8 версию DbSimple


Читать дальше
SQL

размер значений для SQL

 
* M — Количество знаков вывода. Максимально допустимое количество — 255 символов.
* D — Употребляется для типов данных с плавающей точкой и указывает количество разрядов, следующих за десятичной точкой. Максимально возможная величина составляет 30 разрядов, но не может быть больше, чем M-2.
* [] — Необязательные признаки.

Числа

TINYINT[(M)] [UNSIGNED] [ZEROFILL]
Очень малое целое число. Диапазон со знаком от -128 до 127. Диапазон без знака от 0 до 255. BIT и BOOL являются синонимами для TINYINT(1).
TINYINT эквивалентно TINYINT(4). Для булевых переменных предпочтительнее применять: TINYINT(1) UNSIGNED.


Читать дальше

ремонт отсылки почты для livestreet

 
При регистрации нового пользователя вылазит следующая ошибка
Deprecated: Function eregi() is deprecated in /var/www/engine/lib/external/phpMailer/class.phpmailer.php on line 594

Условия для теста
LS 0.4.2
PHP Version > 5.3.3
отправка почты по smtp

ремонтируется очень просто заменой 1 строки в файле /engine/lib/external/phpMailer/class.phpmailer.php

ищем строку
if(eregi('^(.+):([0-9]+)$', $hosts[$index], $hostinfo)) {

заменяем на
if (preg_match('/^(.+):([0-9]+)$/', $hosts[$index], $hostinfo)) {

Сателит для сайтов Люберцы

 

Нашей группой был запущен сателит по услугам в городе Люберцы на сервисе blogpost.com

если у кого есть статьи на эту тему то с удовольствием разместим

Собственно есть мнение что это достаточно перспективное направление создавать сателиты на бесплатных сервисах т.к. на них уже настроена реклама и профит получается в двойном размере

ССЫЛКА: myluber.blogspot.com
СОЗДАН: admin

Скачать vBulletin v 4.1.10

 
В данном релизе исправлено более 300 ошибок и естественно 1 самая главная уезвимость
[скачать]

насколько я понял при обновлении с v 4.1.4 язык обновлять не надо хотя и не факт

Wiki - Делаем ссылки короткими

 
По умолчанию ссылки выглядят так:
http://domain.ru/wiki/index.php?title=article

Чтобы сделать их такими же короткими и наглядными, как в Википедии, есть много способов. Один из них — это добавить в LocalSettings.php:
$wgScriptPath   = "/w";  
$wgArticlePath  = "/wiki/$1";
$wgUsePathInfo  = true;

где $wgScriptPath — каталог установки вики-сайта, а $wgArticlePath — виртуальный каталог, который нужно будет указать в URL при обращении к статье, имя не должно совпадать с реальным каталогом.
Затем, в корневом каталоге сайта (т.е. рядом с каталогом «w») нужно создать файл .htaccess:
RewriteEngine On
RewriteRule ^wiki/(.*)$ /w/index.php?title=$1 [PT,L,QSA]
RewriteRule ^wiki/*$ /w/index.php [L,QSA]
RewriteRule ^/*$ /w/index.php [L,QSA]

Для лучшего понимания этого кода можно подробней ознакомиться с синтаксисом дерективы RewriteRule.
Если на сервере установлено несклько виртуальных хостов, то нужно ещё добавить настройку виртуального хоста в секцию VirtualHost:
RewriteEngine On
RewriteOptions Inherit


и подключить модуль rewrite, после чего перезагрузить сервер. В Debian это делается следующим образом:
ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled
/etc/init.d/apache2 restart