Maxsite cms - новый тип данных - дубль tags под другим именем?

inseonight
На сайте с 10.10.2008
Offline
170
735

Maxsite cms - как сделать новый тип данных - дубль tags под другим именем?

Т.е.

Я хочу, что бы в админке появилось ещё 2 поля ввода по типу как tags, допустим под именами

actors

и

directors

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

Например:

Актеры: Райхо Василев, Мариса Рамирез.

Режисеры:Максим Матвеев, Алексей Макаров, Светлана Антонова.

При клике - на эти метки должна открываться страница содержащая записи с этой меткой.

В общем суть вопроса - как клонировать tags под другими именами, что бы эти "метки" были доступны по таким урл:

site.com/actor/Райхо Василев

site.com/actor/Мариса Рамирез

site.com/director/Максим Матвеев

итд

Пытался добиться ответа от одного из "знающих" людей на форуме макса, человек толком не ответил а потом послал к самому максу...

Мне не хочется трогать разработчика по таким мелочам, может кто из форумчан поможет ?

P.S. кто поможет решить эту задачу - того ждет небольшое вознаграждение...

Занимаюсь разработкой и продвижением интернет магазинов. Внедряю аналитику и консультирую по seo.
Codd
На сайте с 13.01.2011
Offline
65
#1

Добавляете в meta.ini своего шаблона


[Актёры]
options_key = actors
type = textfield
description = "Актёры"
default = ""

В index.php шаблона добавляете

elseif (mso_segment(1)=='actors') require('type/actors.php'); 

Получится

	

# анализ сегментов URL, где переопределяется файл типа
if ($mso_type_file == 'users')
{
if (mso_segment(3)=='edit') $mso_type_file = 'users-form'; // редактирование комюзера
elseif (mso_segment(3)=='lost') $mso_type_file = 'users-form-lost'; // восстановление пароля комюзера
elseif (mso_segment(2)=='') $mso_type_file = 'users-all'; // список всех комюзеров
elseif (mso_segment(1)=='actors') require('type/actors.php');
}

В папке type создаёте файл actors.php, в него копируете данные из tag.php

В начале файла параметры заменяете на это


// параметры для получения страниц
$par = array( 'limit' => mso_get_option('limit_post', 'templates', '7'),
'cut' => mso_get_option('more', 'templates', t('Читать полностью »')),
'type'=>false,
'custom_type'=>'tag',
'meta_key'=>'actors',
'function_add_custom_sql' => 'set_actors'
);

function set_actors(){
$CI = &get_instance();
$CI->db->ar_where[3] = preg_replace("| = '(.*?)'|", " LIKE '%$1%'", $CI->db->ar_where[3]);
}

В месте, где надо выводить актеров вставляете это (в файл page.php)


echo '<div class="info">';

// указан в meta раздел?
if ($rasz = mso_page_meta('actors', $page_meta, '', '', '', false))
{
// формируем ссылку
$link = array();
$rasz = explode(',', $rasz);
foreach($rasz as $value){
$value = trim($value);
$link[] = '<a href="' . getinfo('siteurl') . 'actors/' . $value . '">' . $value . '</a>';
}


// выводим
echo '<span>Актёры:</span> ' . implode(', ', $link) ;
}

echo '</div>';
inseonight
На сайте с 10.10.2008
Offline
170
#2

ок, вечерком попробую реализовать ваш совет, если все получится -отблагодарю.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий