Bluetenstadt

Bluetenstadt

С нами с 01 марта 2016; Место в рейтинге пользователей: #387
Олег Сергеевич
13 июля 2015, 09:48
1
0
Давно для себя написал инструкцию, чтобы ничего не забыть:

1. Cмотрим и копируем серверные пути с помощью phpinfo()
2. В админке: «Сайт» → «Обновить сайт»
3. В админке: безопасность — перезагрузить все права доступа и очистить кэш
4. В админке: безопасность — завершить все сеансы
5. Скопировать базу
6. Поменять серверные пути и название сайта в БД
7. Залить базу
8. Скопировать файлы со старого хостинга
9. Удалить всё внутри папки core/cache
10. Поменять пути и название сайта в файлах:
/core/config/config.inc.php — доступы к базе, урл и пути
/config.core.php
/connectors/config.core.php
/manager/config.core.php
11. Залить файлы на новый хостинг.

После таких действий — никаких глюков.
Василий Наумкин
08 марта 2015, 15:25
1
+1
Удаление юзера с id = 15.
if ($user = $modx->getObject('modUser', 15)) {
	$user->remove();
}

Ну, это если через админку тебя не устраивает.
Михаил
24 февраля 2015, 17:27
1
0
Для 301 с www на без www надо добавить в конфиг:

server{
    listen 80;
    server_name www.modx.kz;
    return      301 http://modx.kz$request_uri;
}

server {
    listen              80;
    server_name         modx.kz;
    root                /var/www/modx-kz/www;
    access_log          /var/log/nginx/modx-kz-access.log;
    error_log           /var/log/nginx/modx-kz-error.log;
    index               index.php;
    rewrite_log         on;
    location /core/ {                                                                                                                                                  $
        deny all;                                                                                                                                                      $
    }
    location / {
        try_files       $uri $uri/ @rewrite;
    }
    location @rewrite {
        rewrite         ^/(.*)$ /index.php?q=$1;
    }
    location ~ \.php$ {
        include         fastcgi_params;
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass    backend-modx-kz;
    }
    location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|bmp)$ {
       access_log       off;
       expires          10d;
       break;
    }
    location ~ /\.ht {
        deny            all;
    }
}
Максим Кузнецов
31 января 2015, 21:35
5
+3
Помогу с решением.

Вызываем сниппет Login:
[[!Login? &loginTpl=`fastLoginTpl` &errTpl=`fastLoginError`]]

Чанк формы для авторизации fastLoginTpl:
<div style="display: none;" id="authErrors">[[+errors]]</div>
<form class="loginForm" id="iWannaLogin" action="[[~[[*id]]]]" method="post">
	<div class="login">
		<input id="loginForm" name="username" class="roundInput" type="text" placeholder="Логин" title="Ваш логин">
	</div>
	<div class="password">
		<input id="passwordForm" name="password" class="roundInput" type="password" placeholder="Пароль" title="Ваш пароль">
	</div>
	
	<input class="returnUrl" type="hidden" name="returnUrl" value="[[+request_uri]]" />
	<input class="loginLoginValue" type="hidden" name="service" value="login" />
	
	<div class="submit">
		<a rel="nofollow" href="[[~17]]">Я - тупой, забыл пароль..</a>
		<input id="ajaxLoginButton" type="submit" name="Login" value="Войти" />
	</div>
</form>

Чанк для вывода ошибки fastLoginError:
[[+msg]]

Скрипт js, обрабатывающий событие отправки формы (нужен подключенный jquery):
<script type="text/javascript">
	$(document).ready(function(){
		$("#iWannaLogin").bind("submit", function() {

			$("#authErrors").text("");
		
			//здесь можно допилить подсветку полей с ошибкой
			if ($("#loginForm").val().length < 1 && $("#passwordForm").val().length < 1) {
				$.jGrowl("Введите логин и пароль", {group: "m-Error"});
				return false;
			}
			if ($("#loginForm").val().length < 1) {
				$.jGrowl("Введите логин", {group: "m-Error"});
				return false;
			}
			if ($("#passwordForm").val().length < 1) {
				$.jGrowl("Введите пароль", {group: "m-Error"});
				return false;
			}

			$.ajax({
				type: "POST",
				cache: false,
					url: "[[~[[*id]]]]",
				data: $(this).serializeArray(),
				beforeSend: function(){
					$("#ajaxAuth .closeBlock").css("display", "none");
					$("#ajaxAuth .ajaxLoad").css("display", "block");
					
					$("#ajaxLoginButton").prop("disabled", true);
				},

				success: function(data) {
					$("#ajaxAuth .closeBlock").css("display", "block");
					$("#ajaxAuth .ajaxLoad").css("display", "none");
			
					var errMessage = $(data).find("#authErrors").text();
				
					if(errMessage == ""){
						window.location = "адрес для переадресации при успешной авторизации";
					}
					else{
						$("#authErrors").text(errMessage);
						$.jGrowl($("#authErrors").text(), {group: "m-Error"});
					}
				},
				
				complete: function(){
					$("#ajaxLoginButton").prop("disabled", false);
				}
			});
			return false;
	
		});
	});
</script>

— я еще подключил плагин jgrowl для отправления алертов. В его же вызове group: «m-Error» — класс для всплывающего бокса (красный, с ошибкой).
Если jgrowl не нужен — то вместо него вставляем в поле для ошибок желаемый ответ. Пример:
$("#authErrors").text("текст ошибки").css("display", "block");

#ajaxAuth .ajaxLoad — в моем примере форма с индикатором загрузки, которая появляется при обработке аякс-запроса.
Василий Наумкин
28 сентября 2014, 17:51
2
+1
Зайти на сервер, там
crontab -e

И добавить команду
10 1    * * *   rm -rf /home/твойлогин/www/core/cache

Сохранить и выйти — кэш будет удаляться в 1:10 по времени сервера, каждые сутки.
Василий Наумкин
29 мая 2014, 16:19
2
+3
&where=`{"createdon:>":"2014-01-01 00:00:00"}`
Andrei D.
23 апреля 2014, 19:52
2
0
Попросили сделать архив не фильтром, а отдельной страницей для каждого года, вот пример выборки мероприятий за 2010 год:

[[!pdoPage?
&element=`getTickets`
&parents=`38`
&includeTVs=`program-start`
&tpl=`program-list-ru`
&where=`["program-start BETWEEN \"2010-01-01\" AND \"2010-12-31\""]`
&sortby=`program-start` &sortdir=`DESC`
]]
Василий Наумкин
11 сентября 2013, 05:37
2
0
Плагин на OnLoadWebDocument.

При запросе проверять дату создания, и если больше 7 дней — удалять или отключать ресурс и отправлять на главную или на 404.
То есть, юзеры сами будут инициировать отключение, cron не нужен.
Denys Butenko
10 октября 2012, 11:58
1
0
Для своих нужд изменял скрипт, сделал, чтобы при бэкапе пропускались директории /site/assets/cache — в которой хранятся phpthumbof кешированные картинки, /site/core/cache — системный кэш, /site/core/package — где хранятся архивы и распакованные пакеты. Размер бэкапа уменьшился на 60%.