Change bootstrap navbar collapse breakpoint without using LESS

For Bootstrap 3.3.x, here is the working CSS to override the navbar breakpoint. Change 1000px to the pixel dimension of the point at which you want the navbar to collapse...
@media (max-width: 991px) {
  .navbar-header {
      float: none;
  }
  .navbar-left,.navbar-right {
      float: none !important;
  }
  .navbar-toggle {
      display: block;
  }
  .navbar-collapse {
      border-top: 1px solid transparent;
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
  }
  .navbar-fixed-top {
      top: 0;
      border-width: 0 0 1px;
  }
  .navbar-collapse.collapse {
      display: none!important;
  }
  .navbar-nav {
      float: none!important;
      margin-top: 7.5px;
  }
  .navbar-nav>li {
      float: none;
  }
  .navbar-nav>li>a {
      padding-top: 10px;
      padding-bottom: 10px;
  }
  .collapse.in{
      display:block !important;
  }
}

getParentIds

$pids = $modx->getParentIds($modx->resource->id, 10, array('context' => 'web'));

TV-JSON to templated output

     [[good_prop_or_content?
        &content=`[[+content]]`
        &tvname=`good_prop`
        &tpl =`good_prop.tpl`
        &docid = `[[+id]]`
        &outputSeparator=`, `
     ]]
_____________________________________________________
tv  "good_prop":
Тип ввода: MIGX
Вкладки формы:
[
{"caption":"Свойства товара", "fields": [
    {"field":"prop_name","caption":"Свойство"},
    {"field":"prop_value","caption":"Значение"}
]}
]
Разметка колонок:
[
{"header": "Свойство", "width": "100", "sortable": "true", "dataIndex": "prop_name"},
{"header": "Значение", "width": "200", "sortable": "true", "dataIndex": "prop_value"}
]
_____________________________________________________
chunk  "good_prop.tpl":
[[+prop_name]]: [[+prop_value]]

_____________________________________________________
snippet "good_prop_or_content":

$output = '';
$outArr = array();
$page = $modx->getObject('modResource', $docid);
$TVValue = $page->getTVValue($tvname);
$tvArr = json_decode($TVValue,1);
if(is_array($tvArr)){
    foreach($tvArr as $arr){
        $outArr[] = $modx->getChunk($tpl, $arr);
    }
    $output = implode($outputSeparator,$outArr);
} else {
    $output = $content;
}
return $output; //print_r($tvArr,1);

getTVValue

$page = $modx->getObject('modResource', $docid);
return $page->getTVValue($tvname);

Some addings index.php

ini_set('apc.cache_by_default', 0); //disable APC cache
ini_set('display_errors', 1); //display errors
ini_set('error_reporting', -1); //display warnings

Redirect from /index.php to / .htaccess

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://mysite.ru/ [R=301,L]

Russian Plural PHP

$form1 = 'товар';
$form2 = 'товара';
$form5 = 'товаров';
$n = $count;
$n = abs($n) % 100;
$n1 = $n % 10;
if ($n > 10 && $n < 20) return $form5;
if ($n1 > 1 && $n1 < 5) return $form2;
if ($n1 == 1) return $form1;
return $form5;

generate unique alias

$doc = $this->modx->newObject('modResource');
$alias = $doc->cleanAlias($pagetitle);

if($this->modx->getCount('modResource', array('alias'=>$alias))!= 0) {
$count = 1;
$newAlias = $alias;
while($this->modx->getCount('modResource', array('alias'=>$newAlias))!= 0) {
$newAlias = $alias;
$newAlias .= '-' . $count;
$count++;
}
$alias = $newAlias;
}

sample of any records from the database to display in the TV

@EVAL
$rows = array();
$stmt = $modx->query("SELECT id,pagetitle FROM modx_site_content WHERE class_key='msProduct' ORDER BY pagetitle");
if($stmt){
foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
array_push($rows,$row['pagetitle'].'=='.$row['id']);
}
}
return implode('||',$rows);

Show Unpublished docs in Wayfinder (MODx Revolution)

First,

add new parameter in config array near line 60:

'hideUnpublished' => isset($hideUnpublished) ? $hideUnpublished: TRUE, // pixelchutes - work with unpublished documents


Second,

replace the following string near line 584:

$c->where(array('modResource.published:=' => 1));

with these:

// pixelchutes - Work with unpublished documents
$c->where(array('modResource.published:=' <> ( $this->_config['hideUnpublished'] ? 0 : 2 ))); // fixed
// $c->where(array('modResource.published:=' => 1)); // original

Change image type in TV render by Phpthumb

in file manager/templates/default/element/tv/renders/input/image.tpl (/manager/index.php?a=system/file/edit&file=manager/templates/default/element/tv/renders/input/image.tpl&wctx=mgr&source=1):

{if $tv->value}<img src="{$_config.connectors_url}system/phpthumb.php?h=150&w=150&zc=1&f=png&src={$tv->value}&source={$source}" alt="" />{/if}

Show Mysql Database Table Information

if(file_exists("core/config/config.inc.php")) {
include "core/config/config.inc.php";
$conn= mysql_connect($database_server, $database_user, $database_password) OR die('Connection error');
$database= $dbase;
mysql_select_db($database);
$sql1= 'SHOW TABLES FROM ' .$database;
$res1= mysql_query($sql1) OR die('Query 1 error:<br />' .mysql_error());

echo '<table border=1 cellpadding=1 cellspacing=0 width="90%">';
while ( $row= mysql_fetch_row($res1) )
{
    echo '<tr>';
    echo '<td valign="top" align="center">' .$row[0]. '</td>';
    echo '<td>';
    $sql2= 'SHOW CREATE TABLE ' .$row[0];
    $res2= mysql_query($sql2) OR die('Query 2 error:<br />' .mysql_error());
    while ( $table_def= mysql_fetch_row($res2) )
    {
        for ($i=1; $i<count($table_def); $i++)
        {
            echo '<pre>' .$table_def[$i]. '</pre>';
        }
    }
    echo '</tr>';
}
echo '</table>';
}

For 404 and 403 pages

System Settings ->
error_page_header : HTTP/1.0 404 Not Found
unauthorized_page_header : HTTP/1.0 403 Unauthorized

modx query debug


//debug
$q->prepare();
return 'SQL: ' . $q->toSQL();

modx revolutioun userinfo

Внутренний ключ: [[!+modx.user.id:userinfo=`internalKey`]]<br>
Имя пользователя: [[!+modx.user.id:userinfo=`username`]]<br>
Полное имя: [[!+modx.user.id:userinfo=`fullname`]]<br>
Роль: [[!+modx.user.id:userinfo=`role`]]<br>
E-mail: [[!+modx.user.id:userinfo=`email`]]<br>
Телефон: [[!+modx.user.id:userinfo=`phone`]]<br>
Мобильный: [[!+modx.user.id:userinfo=`mobilephone`]]<br>
Факс: [[!+modx.user.id:userinfo=`fax`]]<br>
Дата рождения: [[!+modx.user.id:userinfo=`dob`:date=`%Y-%m-%d`]]<br>
Пол: [[!+modx.user.id:userinfo=`gender`]]<br>
Страна: [[+modx.user.id:userinfo=`country`]]<br>
Область: [[+modx.user.id:userinfo=`state`]]<br>
Почтовый индекс: [[+modx.user.id:userinfo=`zip`]]<br>
Аватарка: [[+modx.user.id:userinfo=`photo`]]<br>
Комментарий: [[+modx.user.id:userinfo=`comment`]]<br>
Пароль: [[+modx.user.id:userinfo=`password`]]<br>
Кэш пароля: [[+modx.user.id:userinfo=`cachepwd`]]<br>
Дата последнего логина: [[+modx.user.id:userinfo=`lastlogin`:date=`%Y-%m-%d`]]<br>
Дата текущего логина:[[+modx.user.id:userinfo=`thislogin`:date=`%Y-%m-%d`]]<br>
Число входов: [[+modx.user.id:userinfo=`logincount`]]

content ellipsis

    [[+content:ellipsis=`1000`]] [[+content:len:gt=`1000`:then=`<br/><a href="[[~[[+id]]]]" class="btn btn-small read-more">...</a>`]]

Строковые модификаторы


МодификаторОписание Пример
catДобавляет к выводу указанную строку, если вывод не пустой.[[+numbooks:cat=` books`]]
lcase, lowercase, strtolowerПереводит все символы строки в нижний регистр. Идентично функции PHP strtolower[[+title:lcase]]
ucase, uppercase, strtoupperПереводит все символы строки в верхний регистр. Идентично функции PHP strtoupper[[+headline:ucase]]
ucwordsПереводит первые буквы всех слов в строке в верхний регистр. Идентично функции PHP ucwords[[+title:ucwords]]
ucfirstПереводит первую букву строки в верхний регистр. Идентично функции PHP ucfirst[[+name:ucfirst]]
htmlent, htmlentities
Идентично функции PHP htmlentities. Использует текущее значение системного параметра "modx_charset" с флагом ENT_QUOTES
[[+email:htmlent]]
esc,escapeБезопасно мнемонизирует символы, используя регулярные выражения и str_replace. Также понимает [, ] и `[[+email:escape]]
stripЗаменяет все переносы строк, табуляцию и множественные пробелы на один пробел.[[+textdocument:strip]]
stripStringУдаляет из строки указанную продстроку.[[+name:stripString=`Mr.`]]
replaceЗаменяет одну подстроку другой.[[+pagetitle:replace=`Mr.==Mrs.`]]
striptags, stripTags,notags,strip_tagsУдаляет все PHP и HTML тэги за исключением указанного. Идентично функции PHP strip_tags[[+code:strip_tags=`&lt;p&gt;`]]
len,length, strlen Выводит длину строки. Идентично функции PHP strlen[[+longstring:strlen]]
reverse, strrevИдентично функции PHP strrev[[+mirrortext:reverse]]
wordwrapИдентично функции PHP wordwrap. Принимает оптимальное значение для установки позиции переноса слов.[[+bodytext:wordwrap=`80`]]
wordwrapcutИдентично функции PHP wordwrap с разрывом слов.  Принимает оптимальное значение для установки позиции переноса слов.[[+bodytext:wordwrapcut=`80`]]
limitОграничивает (обрезает) длину строки в заданное количество символов. По умолчанию ограничение длины составляет 100 символов.[[+description:limit=`50`]]
ellipsisОбрезает строку до заданного количества символов и добавялет многоточие. По умолчанию ограничение составляет 100 символов.[[+description:ellipsis=`50`]]
tagОтображает вызываемый элемент без :tag. Полезно для документации, например, как у меня =)[[+showThis]]
mathВозвращает результат вычислений (не рекомендуется т.к. создает нагрузку на процессор)
add,increment,incrВозвращает значение наращенное на заданную величину (по умолчанию на единицу)[[+downloads:incr]]
[[+blackjack:add=`21`]]
subtract,decrement,decrДекрементирует из значения заданную величину (по умолчанию: -1)[[+countdown:decr]]
[[+moneys:subtract=`100`]]
multiply,mpyВозвращает результат умножения на число (по умолчанию: *2)[[+trifecta:mpy=`3`]]
divide,divВозвращает результат деления на число (умолчание: /2) Не допускается 0.[[+rating:div=`4`]]
modulus,modВозвращает остаток от деления (Умолчание: %2, возвращает 0 или 1)[[+number:mod]]
ifempty,default,empty, isemptyВозвращает заданную строку, если вывод пустой.[[+name:default=`anonymous`]]
notempty, !empty, ifnotempty, isnotemptyВозвращает заданную строку, если вывод не пустой.[[+name:notempty=`Hello [[+name]]!`]]
nl2brИдентично функции PHP nl2br. Все переносы строк заменяет на <br>[[+textfile:nl2br]]
dateИдентично функции PHP strftime. Формат передается в качестве значения. См. Date Formats.[[+birthyear:date=`%Y`]]
strtotimeИдентично функции PHP strtotime. Применимо только к датам. См Date Formats.[[+thetime:strtotime]]
fuzzydateВозвращает дату в формате "сегодня в 13:40", "вчера в 18:40".[[+publishedon:fuzzydate]]
agoВозвращает количество секунд, минут, часов, недель и т.д от даты до текущего момента. Применимо только к датам[[+createdon:ago]]
md5Идентично функции PHP md5.[[+password:md5]]
cdataЗаключает строку в тэги CDATA.[[+content:cdata]]
userinfoВозвращает запрашиваемы пользовательские данные. Применимо к ID пользователя в MODx. В модификатор передается поле, которое необходимо возвратить.[[+modx.user.id:userinfo=`username`]]
isloggedinВозвращает "true" если пользователь авторизован в данном контексте.[[+modx.user.id:isloggedin]]
isnotloggedinВозвращает "true" если пользователь авторизован в данном контексте[[+modx.user.id:isnotloggedin]]
urlencodeИдентично функции PHP urlencode[[+mystring:urlencode]]
urldecodeИдентично функции PHP urldecode[[+myparam:urldecode]]

Условные модификаторы

МодификаторОписаниеПример
or Может использоваться со строковыми модификаторами для организации отношения логического "И"
and Может использоваться со строковыми модификаторами для организации отношения логического "ИЛИ"
isequalto, isequal, equalto, equals, is, eq Сравнивает вывод с заданным значением и в случае совпадения продолжает парсинг тэга. Используется совместно с "then" и "else" [[+numbooks:isequalto=`5`:then=`There are 5 books!`:else=`Not sure how many books`]]
notequalto, notequals, isnt, isnot, neq, ne Сравнивает вывод с заданным значением и в случае не совпадения продолжает парсинг тэга. Используется совместно с "then" и "else" [[+numbooks:notequalto=`5`:then=`Not sure how many books`:else=`There are 5 books!`]]
greaterthanorequalto, equalorgreaterthen, ge, eg, isgte, gte 
Сравнивает вывод с заданным значением и в случае если вывод больше либо равен переданному значению продолжает парсинг тэга. Используется совместно с "then" и "else"
[[+numbooks:gte=`5`:then=`There are 5 books or more than 5 books`:else=`There are less than 5 books`]] 
isgreaterthan, greaterthan, isgt, gt 
Сравнивает вывод с заданным значением. Если вывод больше -продолжает парсинг. Используется с "then" и "else"
[[+numbooks:gt=`5`:then=`There are more than 5 books`:else=`There are less than 5 books`]]
equaltoorlessthan, lessthanorequalto, el, le, islte, lte Сравнивает вывод с заданным значением и в случае если вывод меньше либо равен переданному значению продолжает парсинг тэга. Используется совместно с "then" и "else"[[+numbooks:lte=`5`:then=`There are 5 or less than 5 books`:else=`There are more than 5 books`]] 
islowerthan, islessthan, lowerthan, lessthan, islt, lt Сравнивает вывод с заданным значением. Если вывод меньше -продолжает парсинг. Используется с "then" и "else"[[+numbooks:lte=`5`:then=`Менее 5 книг`:else=`Более 5 книг`]]
hide Проверяет предшествующие условия. Если они были истинными - скрывает элемент.[[+numbooks:lt=`1`:hide]] 
show Проверяет предшествующие условия. Если они были истинными - отображает элемент.[[+numbooks:gt=`0`:show]] 
then Используется как следствие какого-либо условия[[+numbooks:gt=`0`:then=`Now available!`]] 
else Используется как следствие какого-либо условия. Применяется совместно с "then"[[+numbooks:gt=`0`:then=`Now available!`:else=`Sorry, currently sold out.`]] 
memberof, ismember, mo Возвращает результат проверки на принадлежность пользователя заданной группе.[[+modx.user.id:memberof=`Administrator`]] 


clear cache


$res = $modx->getObject('modResource', 15);
$res->clearCache();

print_r


  echo '<pre>';
  var_dump($users);
  echo '</pre>';


  echo '<pre>';
  print_r($users);
  echo '</pre>';

xPDOQuery.where

$query = $xpdo->newQuery('Box');
$query->where(array(
   'width' => 15,
));
$boxes = $xpdo->getCollection('Box',$query);

modx->query


$rows= array();
$stmt= $modx->query("SELECT * FROM `academic` ORDER BY rand() LIMIT 25");
if ($stmt) {
      // loop through the result set and inspect one row at a time
    foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
        array_push($rows, $row);
    }
}

get current user id

[[!+modx.user.id]]

where json


&where=`{"Komy.value:=":7, "OR:createdby:=":7}`
&where=`[{"alias:LIKE":"foo%", "OR:alias:LIKE":"%bar"},{"OR:pagetitle:=":"foobar", "AND:description:=":"raboof"}]`

requests and php time

MySQL: [^qt^], [^q^] request(s), PHP: [^p^]

If

[[If? &subject=`` &operator=`EQ` &operand=`` &then=``]]

modx->newQuery


$q = $this->modx->newQuery('TicketView');
$q->select('TicketView.timestamp');
$q->where('TicketView.parent= '.$res.' AND TicketView.uid = '.$this->modx->user->id);
if ($q->prepare() && $q->stmt->execute()) {
$qlastview = $q->stmt->fetch(PDO::FETCH_ASSOC);
$lastview = $qlastview['timestamp'];
}