Vladimir

Vladimir

+51
Репутация
88
Рейтинг
#1 SEO в фильтре {filter_string} и местоположение 20 июля 2020 в 22:49
При редактировании контента, есть раздел SEO, там есть параметры SEO для записей, SEO для категорий и.т.д..
SEO для записей. Поле местоположение можно использовать в разделе SEO для записей, при генерации тайтлов страницы (При генерации ссылок работает не совсем корректно, при сохранении записи, сохраняется предыдущее местоположение, то есть два раза нужно сохранить запись что бы URL сохранился корректно). Здесь я про поля написал для того, чтобы было понимание, что поле местоположение может выводиться.
SEO для категорий . Здесь есть параметр {filter_string}, которым запрос фильтра можно выводить в целях SEO. Но не все поля, я пока протестировал на поле заголовок (строковое поле) и поле дата, выводится. А вот поле Местоположение не хочет выводить!
Может кто-нибудь задавался таким вопросом?
Или как-нибудь совместными усилиями решим данный вопрос!?
Я пока нашёл, где в CMS в админке поля категорий title и h1 прописываются, в form_ctypes_basic.php (system/controllers/admin/forms/) с 371 по 376 строку.
  1.  
  2. new fieldCheckbox('options:is_cats_title', array(
  3. 'title' => LANG_CP_SEOMETA_CATS_TITLE
  4. )),
  5. new fieldCheckbox('options:is_cats_h1', array(
  6. 'title' => LANG_CP_SEOMETA_CATS_H1
  7. )),
#1 Пожалуй, лучшая кнопочка на css, но есть НО 19 июля 2020 в 15:25


Покажите код (и кнопки и css), иначе вам вряд ли кто-то поможет.

Нифигаssе о-го-гошеньkи
В начале ссылку на ролик с кодом приводил, повторюсь youtu.be/3RRgVHd2TXQ

Вообщем разобрался, это с помощью класса нужно делать. По пунктам:
1. В css везде к заголовкам добавляем .mybuttom, к примеру
.mybuttom a {......}
, кроме заголовков начинающихся на @
2. Подключаем css в main.tpl.php
3. На сайте выводим с помощью виджета html, оборачиваем в div, к примеру <div class="mybuttom">...</div>
#2 Пожалуй, лучшая кнопочка на css, но есть НО 19 июля 2020 в 11:03

Сделайте виджет HTML.
Туда свой код. Виджет куда угодно.

Ris
Я и так вставляю кнопочку через виджет html, css подключаю к шаблону в файле maim.tpl.php, css копирую в папку css.

Или вы говорите про вложенный css? Он добавляется так <style> наш css</style>, но по идее в тег <head>. Тем не менее если это всё вставить через виджет html, то вся разметка на странице разъезжается.
#1 Пожалуй, лучшая кнопочка на css, но есть НО 19 июля 2020 в 09:06
Вчера на просторах ютуба встретил кнопочку на css, это просто невероятно. youtu.be/3RRgVHd2TXQ Раньше думал, такие вещи можно делать только с javascript, здесь же… порядка 160 строчек в css и кнопочка готова. Но есть одна проблема, после подключения css (в файле maim.tpl.php) данный css применяется ко всему шаблону, и всё разъезжается. Пытался обернуть всё это дело в style.css в селектор, типа #mybuttom { здесь css кнопочки }, а кнопочку обернуть в <div id="mybuttom">...</div> но так это не работает. css всё равно применяется ко всему шаблону. Спецы css, Хелп!
#3 instantcms 2 виджет php 18 июля 2020 в 05:39

$user_id = cmsUser::getInstance()->id;
$inCore = cmsCore::getInstance();
$content_model = $inCore->getModel('content');
$current_item = $content_model->getContentItemBySLUG($inCore->request->get('ctype_name'), $inCore->request->get('slug'));
if ($current_item['user_id'] == $user_id){
echo 'current_item = '. $current_item['id'];
}

Ris
Спасибо! Работает!
Но...)… Если просматривает не автор записи, место под виджет остаётся… Есть вариант использовать шаблон контейнера "wrapper_plain", но тогда при отображении информации, дизайн теряется…
#4 instantcms 2 виджет php 17 июля 2020 в 23:04

$inCore = cmsCore::getInstance();
$content_model = $inCore->getModel('content');
$current_item = $content_model->getContentItemBySLUG($inCore->request->get('ctype_name'), $inCore->request->get('slug'));
if ($current_item['id'] == $this->cms_user->id){
echo 'current_item = '. $current_item['id'];
}

Ris
Не сработало, ничего не выводит автору. Наверное $this->cms_user->id не работает.
#5 instantcms 2 виджет php 17 июля 2020 в 22:39

$inCore = cmsCore::getInstance();
$content_model = $inCore->getModel('content');
$current_item = $content_model->getContentItemBySLUG($inCore->request->get('ctype_name'), $inCore->request->get('slug'));
echo 'current_item = '. $current_item['id'];

vladimird
Супер! Работает, спасибо!
Теперь бы ещё как сделать, чтобы запись мог видеть только автор?
#6 instantcms 2 виджет php 17 июля 2020 в 22:33

Хотя можно попробовать получать единицу контента как-то так прямо в этом виджете.
$this->model_content->getContenItem(тип_контента, номер единицы контента):

Ris
Я как понимаю здесь получение конкретной записи, а мне нужно что-то формировалось динамически.

/blogs/dopolnenija-ot-instantcms2-ru/dbl-tn.html

GoodMade
как вариант уже подумал добавить поле id в таблицу cms_con_articles_fields, там через приватность всё скрыть, но главное чтобы виджет заработал. Ан нет. Ещё задача что-бы данный виджет видел только автор записи) А такого функционала здесь нет, а php он не поддерживает...
Тогда приходим к этому решению /forum/thread33504-1.html, а здесь снова $item, который не объявлен…
#7 instantcms 2 виджет php 17 июля 2020 в 21:59

/blogs/dopolnenija-ot-instantcms2-ru/dbl-tn.html

GoodMade
Интересный вариант, но с помощью данного виджета, у меня получилось вывести только столбец title из таблицы. Когда вставляю {id}, id не отображается.

Вы точно не хотите решить эту проблему более простым способом, чем виджет php ?

Ris
Думаю, виждет, оптимальный вариант.
#8 instantcms 2 виджет php 17 июля 2020 в 21:16
  1.  
  2. Потому, что не объявлена в том виджете переменная $item.
  3. Получите её в виджете заново и оперируйте ею, как хотите.
  4.  
А как её объявить?
#9 instantcms 2 виджет php 17 июля 2020 в 21:05
С помощью виджета, пытаюсь делать манипуляции со страницей контента, к примеру вывести ID текущей страницы,
<?php html($item['id']); ?>

но не получается. Прописываю данный код, к примеру, в странице шаблона, default_item.tpl.php, всё работает.

Почему в виджете не работает?
#10 Автоподписка вступивших в группу на контент этой группы. 500 руб. за решение. 12 июня 2020 в 17:43

Я вам тожен напишу! Со мной поделитесь?

GoodMade
По данному заданию Ris вас уже опередил! Но, у меня время от времени появляются задания, можем посотрудничать!?
#11 Уведомление на почту о добавлении пользователя в контент (компоненты прогулки и список людей)) 12 июня 2020 в 10:35
Добавить пользователя нужно же через какой-то функционал, для этого кнопки и нужны, далее ему приходит уведомление.
#12 Автоподписка вступивших в группу на контент этой группы. 500 руб. за решение. 12 июня 2020 в 10:14
Супер! Куда отблагодарить?
#13 Уведомление на почту о добавлении пользователя в контент (компоненты прогулки и список людей)) 12 июня 2020 в 10:04
Посмотрел, похожий функционал, есть в компоненте группы, там можно добавлять других людей в группы, админ всех может добавлять, пользователи только друзей.
Но я застрял в самом начале, может чего-то не понимаю, но даже кнопочки вывести не могу в меню действий, точнее, я не могу их вывести так как в компоненте группы.
Пересмотрел все уроки по созданию фотобитв, в первом уроке на 14 минуте собственно и говорится про создание кнопок в меню действий,
То есть так:
  1.  
  2. $this->addToolButton(array(
  3. 'class' => 'add',
  4. 'title'=>LANG_PHOTOBATTLE_ADD,
  5. 'href'=>'/photobattle/add'
  6. ));
  7.  
В группах в файле index.tpl.php ничего подобного даже нет

  1.  
  2. <h1>
  3. <?php echo $h1_title; ?>
  4. <?php if($dataset_name){ ?>
  5. <span> / <?php echo $dataset['title']; ?></span>
  6. <?php } ?>
  7. </h1>
  8.  
  9. <?php if (!empty($datasets)){
  10. $this->renderAsset('ui/datasets-panel', array(
  11. 'datasets' => $datasets,
  12. 'dataset_name' => $dataset_name,
  13. 'current_dataset' => $dataset,
  14. 'base_ds_url' => rel_to_href($base_ds_url)
  15. ));
  16. } ?>
  17.  
  18. <?php echo $groups_list_html;
  19.  
хз как тут кнопки создаются…
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.