Мои вопросы

53 views
Skip to first unread message

Yuri Pavlyukov

unread,
Aug 23, 2014, 12:46:36 PM8/23/14
to flexo-mana...@googlegroups.com
Всем здравствуйте.

Если я правильно понял, я единственный остался, кто на этой системе чтото делает. По этому, думаю, ни кто не обидется, что для себя тему сделаю.
Меня интересует пара... ну может тройка вопросов по системе. Если кто-нибудь ответит на мои вопросы, буду очень признателен. Ну как "Кто Нибудь" -  видимо Александр Маслаков и ответит... Больше, по всей видимости некому.
Вопросы:

1 - Нужно вставлять не только снипеты, но и странички
          (Если вдруг интересно зачем: Простому пользователю нужно дать управление каким-нибудь сегментом страницы, на пример номером телефона в углу страницы или ссылками на соцсети или курсом валют. В управление снипетами его пускать не стоит.)

Делаю скрытую страничку и подгребаю информацию из нее в нужное место
Придумал я вот такое вот решение данной задачи:

     <?php foreach($this->find('kurs-valyut/')->children() as $valu): ?>
     <?php echo $valu->content('body'); ?>
     <?php endforeach; ?>

Но идеотизьм в том, что это дочерний раздел. Нужен совет, как отобразить сам kurs-valyut находящийся в корне???

2 - Как сделать не меняющееся меню второго уровня??
Как мы давно знаем, основное меню, которое не меняется как бы глубоко дальше мы не ушли, делаем примерно так:
<ul>
<li><a href="<?php echo get_url(); ?>">Главная</a></li>
<?php foreach($this->find('/')->children() as $item): ?>
<li><?php echo $item->link(null, null, true);?></li>
<?php endforeach; ?>
</ul>

Для меню второго уровня, чтобы оно оставалось на экране, как я делал: Делается часть страницы, типа "sidebreprst" и помещается туда кот типа:
    <ul>
<?php foreach($this->find('РАЗДЕЛ В КОТОРОМ ИСЧЕМ ДОЧЕНЕЕ/')->children() as $menu): ?>
      <li><?php echo $menu->link($menu->title, (in_array($menu->slug, explode('/', $this->url)) ? ' class="current"': null)); ?></li>
<?php endforeach; ?> 
    </ul>
Вариант плох тем, что сильно много чего нужно объяснять пользователю.
Логика подсказывает такой вариант, прям в шаблоне или там снипите:

<ul>
<?php $last_articles = $this->children(); ?>
<?php foreach ($last_articles as $article): ?>
 <li><?php echo $article->link($article->title); ?></li>
<?php endforeach; ?>
</ul>
И всё чудестно, когда мы входим в любой пункт первого уровня. Но когда мы проваливаемся в пункт меню второго уровня (то самое меню, которое формирует данный код), то этот код начинает искать третий уровень, и так далее.
Как прибить меню второго уровня?
     (Если вдруг не понятно, другими словами: 1 уровень: "О компании", 2 уровень: "Вакансии", "Контакты"   Если я захожу в вкансии, то список "Вакансии, Контакты, ни куда не деется." Как это сделать?)


3 - Ну и еще одна проблема. Рассмотрю любые предложения по решению данной задачи.

Есть страницы, находящиеся где то в глубине сайта. Нужно некоторые из них (содержимоели списокли - не важно) отображать на главной странице.
На пример, каждая страница - это товар  каталога. А на главную ПО НЕКОТОРОМУ АТРИБУТУ попадают какие-нибудь спецпредложения. 
Пока писал вопрос придумал вот что:

Выводить нужное количество по порядку упорядоченному по дате. Пусть пользователь меняет в ручную дату. Типа выводятся несколько самых старых.
Тогда как сделать такой список???


Спасибо всем, кто хотя-бы дочитает вопросы до конца:)))

Александр Маслаков

unread,
Aug 27, 2014, 4:03:46 AM8/27/14
to flexo-mana...@googlegroups.com
1 - Нужно вставлять не только снипеты, но и странички

Попробуйте использовать подгрузку странички аяксом

2 - Как сделать не меняющееся меню второго уровня??

Нужно спользовать $this->parent(<УРОВЕНЬ ВЛОЖЕННОСТИ>)->children();

Например вы в 5 уровне вложенности, можете поднятся вверх на 1 или 2 и выбрать все страницы с него.

3 - Ну и еще одна проблема. Рассмотрю любые предложения по решению данной задачи.

Если у всех страниц общий родитель, например market/product-1, market/product-2, тогда можно добавить в метод children() параметры для выборки и сортировки.

children([arguments :limit :offset :order])

Примерно так:

$this->find('market')->children(array(
  'limit' => 10,
  'order' => 'page.created_on DESC'
));

Если что то не работает - уточняйте, спрашивайте.


--
Вы получили это сообщение, поскольку подписаны на группу "flexo-manage-content".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес flexo-manage-con...@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.



--

Yuri Pavlyukov

unread,
Sep 24, 2014, 4:10:26 AM9/24/14
to flexo-mana...@googlegroups.com
Невероятнейшее спасибо за ответ.
Особенно на вопрос номер 2. Помогло на 100%.

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

А вот Про первый вопрос..
Аяксом??? У меня с ПХП не все ладно.. не уверен, что готов в аякс нырять. 
А поп роще способов нет???
Так чтоб не выискивать дочерие из раздела 
     <?php foreach($this->find('kurs-valyut/')->children() as $valu): ?>
     <?php echo $valu->content('body'); ?>
     <?php endforeach; ?>
А взять сразу что нить вроде:
     <?php echo ('kurs-valyut/')->content('body'); ?>   тока грамотнее.
Ну или, простите за тупой вопрос, как аяксом?
 

Александр Маслаков

unread,
Sep 24, 2014, 2:02:41 PM9/24/14
to flexo-mana...@googlegroups.com
По первому вопросу, можно так:

$this->find('/kurs-valyut')->content('body');

В чем особенность find() он не зависит от вложенности и ищет по полному URI.

А по поводу аякс: все очень просто. Добавляете в шаблон в <head>, например, <script src="/js/jquery.js"></script>.
Добавляете в верстку <div id="valute"></div>. В конец шаблона <script>$('#valute').load('/kurs-valyut.html').</script>

--
Вы получили это сообщение, поскольку подписаны на группу "flexo-manage-content".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес flexo-manage-con...@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

Александр Маслаков

unread,
Sep 24, 2014, 2:03:13 PM9/24/14
to flexo-mana...@googlegroups.com
<script>$('#valute').load('/kurs-valyut.html');</script>
Reply all
Reply to author
Forward
0 new messages