Алексей Карташов

Алексей Карташов

С нами с 04 февраля 2013; Место в рейтинге пользователей: #58
Алексей Карташов
27 декабря 2013, 06:54
0
Отлично, значит это не у меня проблема и всё сделал правильно. Спасибо!

И по мне так проблема надуманная.
Ок, дайте мне ссылку на какой-нибудь статичный html-сайт, который есть в топах по вкусным запросам — я его мигом оттуда выкину :-)

И да, такие сайты есть. И есть они потому, что делались давно и со временем начали занимать хорошие позиции в поиске.
Не обновляют их по простой причине — чтобы позиции не попортить, «а то мало ли...» :-)
Алексей Карташов
17 декабря 2013, 22:21
0
Эмм… Это как без php?? Курс по созданию ms2? Без php? Инструкция про грамотной сборке и настройке?
Алексей Карташов
17 декабря 2013, 09:08
0
Да это магия, не иначе! :-)
Алексей Карташов
17 декабря 2013, 01:21
0
На счёт лексиконов точно не скажу, но чанки — да, не перезаписываются. Их надо вручную обновлять.

p.s. что это с комментатором выше?
Алексей Карташов
11 декабря 2013, 22:19
0
Вы хоть отпишитесь — помогло или нет. Интересно же =)
Алексей Карташов
08 декабря 2013, 21:59
0
Такой вариант (сперва распишу по пунктам, потом объясню логику):
1. Создать настройку, назвать её, к примеру, «mycomponent.frontend_page» (где «mycomponent» — это название вашего компонента).
2. Создать один ресурс, в котором планируется вывод данных из вашей таблицы или взять уже существующий.
К примеру, возьмём главную страницу сайта (id главной = 1).
3. Запишем в вышесозданную настройку цифру «1».

И вот теперь надо написать плагин на событие «OnPageNotFound». Логика его такова:
1. Разбираем урл. Примерно так:
// получаем массив с частями урла
$arr = parse_url($_SERVER['REQUEST_URI']);

// Регулярка, которая выберет все названия "папкок" из урла.
// К примеру урл имел вид http://www.site.ru/first1/second2/?sfgdg=tyu5466t35&qer=456#thisIsHash
// В $arr['path'] лежит строка вида "/first1/second2/"
// С помощью данной регулярки и функции preg_match_all мы получим массив, содержащий элементы:
// "first1", "second2", "third3" (в том порядке, в котором они были в урле).
//
$mask = "/([^\/]+)/";
preg_match_all($$mask, $arr['path'], $matches);

$pathes = $matches[0];

// Проверяем количество, чтобы отсечь заведомо другие урлы, в которых папок больше, чем нам нужно
// (а нужно нам "АлиасВида/АлиасКарточки")
// Не ноль и меньше 2х
if (count($pathes) && count($pathes) <= 2) {
	$i = 0;
	$good = false;
	foreach ($pathes as $path) {
		/**
		 * и вот здесь логика такая:
		 * на нулевом шаге ищем нужным нам "алиас вида" в собственной таблице (не забываем свой пакет через $modx->addPackage()).
		 * 
		 */
		switch ($i) {
			case 0:
				// здесь пишем название своего класса
				$vid = $modx->getObject('Vid', array(
					'alias' => $path
				));
				if ($vid instanceof 'Vid') {
					$good = true;
					$aliasVid = $path;
					// устанавливаем глобальный плейсхолдер, который будет доступен в шаблоне как [[+aliasVid]],
					// который можно будет использовать как угодно (например, подставить в условие сниппета pdoTools)
					$modx->setPlaceholder('aliasVid', $aliasVid);
				} else {
					break 2; // выходим из switch И ИЗ ЦИКЛА foreach (http://www.php.net/break)
				}
				break 1; // выходим из switch
				
			case 1:
				// здесь всё по аналогии, за исключением $good
				$kart = $modx->getObject('Kart', array(
					'alias' => $path
				));
				if ($kart instanceof 'Kart') {
					$aliasKart = $path;
					$modx->setPlaceholder('aliasKart', $aliasKart);
				}
				break;
		}
		
		$i++;
	}
	if ($good) {
		// если есть совпадения алиасов, то грузим документ, который записан в настройке
		$docId = $modx->getOption('mycomponent.frontend_page');
		if (!$docId) return;
		$modx->resource = $modx->getObject('modResource', $docId);
		$modx->request->prepareResponse();
		exit;
	}
}
Код не проверялся вообще!
Используйте его как пример логики (которая, кстати, тоже может быть не верной :-)).

Удачи!
Алексей Карташов
20 ноября 2013, 23:20
0
Дак это ж нотисы обычные. Если сайт не работает, то явно не из-за этих ошибок.
Алексей Карташов
20 ноября 2013, 20:50
0
Выбирал убунту 12.04 (версия без .1 или .3 на конце). Так что не знаю — тебе виднее :)

Спасибо!
Алексей Карташов
20 ноября 2013, 20:43
0
Не, я точно ничего не пропускал (я надеюсь)).

И ещё вопрос можно, пока ты не ушёл?)

В файле /etc/rc.local, в котором указывается путь к файлу iptables, у меня на чистой системе было следующее:
test -f /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server

exit 0
Т.е. вот я понятия не имею, что значит первая строка и нужна ли она вообще? Путь к iptables прописал после неё:


Оставить как есть или удалить её?

p.s. хостинг — DigitalOcean
p.p.s. потому что у линоды самый дешёвый тариф дороже, чем самый дешёвый у DO, а мне много пока не надо)
Алексей Карташов
20 ноября 2013, 20:32
0
Хм, просто у тебя в ролике на 9:55 видно, что письмо упало от root@bencard.ru, хотя письмо так же было отправлено из консоли.
Алексей Карташов
20 ноября 2013, 20:26
0
У меня sendmail отправляет письма с адреса root@localhost.ru, хотя всё сделал по инструкци :(

Алексей Карташов
11 октября 2013, 01:30
0
А ещё есть такая шляпа, что юзер будет залогиненым до конца отработки приложения и разлогиненным он станет, грубо говоря, при нажатии F5. Т.е. в каком-то сниппете юзера разлогиниваем и следом проверяем $modx->user->isAuthenticated(); — будет работать. А вот при следующем обращении к странице юзер с самого начала уже будет разлогиненным (анонимом). Чтобы этого избежать надо принудительно после логаута написать:
$modx->user = null;
У меня когда-то такой же вопрос был, обсуждали как-то с Василием. Лень искать :-) Но выход, как оказалось, только такой.

upd. во, нашёл.
Алексей Карташов
02 октября 2013, 00:52
0
Неа. Пока он только у меня.
Алексей Карташов
01 октября 2013, 00:37
0
Эт где это так случайно попадаются платные пакеты?
Алексей Карташов
21 сентября 2013, 23:59
0
'selected' передаёшь, но ни где не выводишь?

А если вот так:
<input id="[[+id]]" type="radio" value="[[+value]]" name="sized" [[+selected]] />
	<label for="[[+id]]">[[+value]]</label>
?
Алексей Карташов
21 сентября 2013, 08:20
0
512 — это шик!
Алексей Карташов
20 сентября 2013, 01:13
0
Прото есть разница между локальными и глобальными политиками)
Алексей Карташов
19 сентября 2013, 10:17
0
Пока завёл баг в трекере. Как у себя логику проработаю — буду им потом pull-r выкатывать.
Алексей Карташов
19 сентября 2013, 08:57
0
А с точки зрения организации кода — можно ли запускать процессор из процессора?
Такого в родных процессорах я вроде не встречал и этого могут не принять.
Да и, скорей всего, это будет не правильно — ведь в процессорах на (un)publish/delete в конце чистится кеш, ставятся/снимаются блокировки — всё это и так делается в процессоре на update. Такого точно не примут.
Значит надо будет методы переносить и компоновать.