TOP комментариев

+12
Вы проспорили. Я с этим разобрался давно и практически сразу. Но при сохранении ресурса практически всегда происходит перезагурзка. Все время перезагрузка, постоянно перезагрузка. За### ла перезагрузка! А редактировать и создавать — разные вещи.
avatar

jean179

  • 27 февраля 2012, 23:50
+12
Лично я при всем своем желании переехать на REVO остаюсь на EVO. Ну не могу я в такой админке работать — тормозит ужасно! Вот на днях EVO не ставилось? человеку пришлось поставить REVO — помучился день с разработкой, плюнул и переставил EVO. Если вы сможете работать с такой админкой — работайте. REVO лучше объективно, хотя и на русском мало документации. Но я остаюсь пока на EVO.
avatar

jean179

  • 27 февраля 2012, 12:58
+12
Адреса не меняются через # (это называется якорь, кстати).

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

Важная особенность якорей — при их изменении в адресной строке скриптом, страница не перезагружается. А если вы попытаетесь изменить не адрес, а якорь — страница обновиться на новый адрес.

Именно поэтому якоря используют для hash навигации.

Таким образом, якоря можно использовать для хранения промежуточных данных. То есть, нужно при клике взять параметр и сохранить его в якорь, а если страницу обновляем — взять якорь и что то поменять на странице с его учетом.

Типа вот так:

// Сохраняем при клике действие в hash
$(document).ready(function() {
  $('.ajax_link').click(function() {
    var action = $(this).data('action')
    document.location.hash = 'a=' + action;
  })
})

// А при загрузке страницы проверяем, и если что-то есть в hash - что-то делаем
var hash = document.location.hash;
if (hash != '') {
	action = hash.substr(4);
	alert(action)
}


На самом деле, все немного сложнее и индивидуальнее. Для hash навигации нужно хорошенько понимать как что работает. Когда поймете — вопросов не останется =)
avatar

bezumkin

  • 24 января 2012, 14:47
+11
И звените, но я ответил не вам. Я ответил pr-light. Поделился своим опытом, что ценно именно тем, что он СВОЙ. Не чужое мнение, которое я цитирую, не чье-то мнение. А именно МОЕ. И я потратил на него свое ВРЕМЯ. Что тоже очень ценно для МЕНЯ. А то, что в результате получился срач у вас со всеми — так это, извините, ВАША ПРОБЛЕМА! Я к вам внимательно прислушиваюсь и уважаю и ВАС и ВАШЕ МНЕНИЕ. Но имею СВОЕ МНЕНИЕ. И МОЕ МНЕНИЕ не соответствует ВАШЕМУ МНЕНИЮ — так это бывает. Я считал и считаю, что за REVO будущее. Но в том виде, в котором она существует — это сильно на любителя. Поэтому для простых сайтов я выбираю Evo, а сам потихоньку изучаю Drupal именно для больших сайтов, где и EVO и REVO пасует и очень сильно. Я имею ввиду регистрацию пользователей и всякие социальные фишки, которые при всем моем уважение в MODx никак не реализованы. И все вопросы по этому поводу — «ищи другую систему».
avatar

jean179

  • 28 февраля 2012, 00:00
+11
Кто говорит что EVO лучше REVO?
они разные и слегка под разные задачи как по мне:) и тут бессмысленно спорить :)
avatar

Dmi3y

  • 27 февраля 2012, 15:54
+11
Я привожу пример выборки всех ТВ конкретного ресурса./blockquote>
я тоже конкретно ресурса с id = 1
$tvs = $modx->getCollection('modTemplateVarResource',array('contentid'=>1));

Если нету необходимости в получения данных о ресурсе (pagetitle, content....) не вижу смысла делать через одно место а потом ещё getMany использовать, если же необходимы даные о ресурсе и о TV, тогда логично — только в один массив нужно загнать.

Я не сказал, что Ваш вариант не верен, я показал, как лучше сделать. Хотя всё зависит от задачи. Лады прекращаю…
avatar

valikras

  • 24 января 2012, 19:41
+11
вернее не getObject — а getCollection
$tvs = $modx->getCollection('modTemplateVarResource',array('contentid'=>1));

getObject — можно использовать, если мы укажим к примеру id TV.
$tvs = $modx->getObject('modTemplateVarResource',array('tmplvarid'=>$idtv, 'contentid'=>$id));
avatar

valikras

  • 24 января 2012, 19:11
+11
Откройте уже для себя rtfm.modx.com

Пример доставания всех tv для ресурса с id 1 на Revolution.

if ($res = $modx->getObject('modResource', 1)) {
  $tvs = $res->getMany('TemplateVars');
  foreach ($tvs as $tv) {
    print_r($tv->toArray());
  }
}
avatar

bezumkin

  • 24 января 2012, 18:44
+11
Вы путаете теплое с мягким.

Ajax придуман для того, чтобы менять куски страницы без перезагрузки. Вы зашли на такую страницу, понатыкали на ней всякого — она изменилась. Но если теперь нажать F5 — она перезагрузится и все изменения пропадут.

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

Выходит, что вам нужно получить от сервера страницу и сразу ее изменить? А как изменить? Данные изменений можно хранить на сервере, в сессии — и это будет работать.

Но как тогда дать ссылку на измененную страницу? Вот тут то и нужна hash навигация. Чтобы данные изменения страницы хранить в строке адреса, в якоре.

Таким образом, hash это не альтернатива get-запросам, это место хранения состояния страницы, в нашем случае.

Вот пример

То есть, это просто примочка сбоку для ajax. Сама по себе она ничего не может.
avatar

bezumkin

  • 24 января 2012, 15:00
+10
Никакой коммерции, все бесплатно, без команды, в свободное время.

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

bezumkin

  • 30 января 2012, 23:00
+9
Вы ничего не понимаете, админка дико тормозная!!!!!!11111

Если будете утверждать обратное — вас заклюют. Это новый тренд у нас в сообществе.
avatar

bezumkin

  • 4 марта 2012, 03:59
+9
Вы ему ответите: «давайте я вам обновлю ваш движок? 20 минут и все готово! С вас 1000 рублей».
avatar

bezumkin

  • 27 февраля 2012, 16:21
+8
Я уже говорил, но скажу ещё раз. Делать сайт CMS(F) MODX на CMS LiveStreet это маразм. Одумайтесь :)
avatar

Andchir

  • 22 мая 2012, 23:17
+8
ВСЕ участвующие в работе с админкой люди легко могут установить себе Chrome, что на windows, что на linux и даже на mac — и спокойно работать.

Денег за это не надо. Если вы любитель работы в IE — ничем не могу помочь.
avatar

bezumkin

  • 5 марта 2012, 00:06
+8
А зачем мне это делать?

Может, еще с телефона попробовать?
avatar

bezumkin

  • 4 марта 2012, 23:58
+8
Вы не понимаете, что вам с этим вопросом нужно на форум ExtJS?

Спросите у авторов, почему они так сделали, что вам не нравится.
avatar

bezumkin

  • 3 марта 2012, 17:22
+8
А если отключить Яндекс Метрику? Я смотрю она прилично кушает времени!
avatar

vanchelo

  • 27 февраля 2012, 17:46
+8
Ну 1000 рублей, она же не запросто так, верно?
avatar

bezumkin

  • 27 февраля 2012, 16:58
+8
выполнение php не зависит от веб-сервера. Вы похоже совсем темненький.
— спасибо, а то я только узнал от Вас такое. Может тогда уже просвятите от чего-же тогда зависит выполнение php если не от веб-сервера???
Темновато… первый раз узнал, что такое пхп.

P.S. Мы начали с одного (Ево — Рево) — в итоге вы перевели на магазы тему (наверное тут вы хотели блистнуть), теперь переходим на пхп?
Смотрите не облажайтесь в очередной раз.
avatar

cron

  • 27 февраля 2012, 15:33
+8
Блин, и повторную перепутал!

Загрузка страницы повторная:
miniShop: 1.772s
Shopkeeper: 1.338s

Руки трясутся, рыдаю… Работу надо искать.
avatar

bezumkin

  • 27 февраля 2012, 15:19