Сегодня, как и много дней подряд делаю на основе MODx основу для сайта по туризму. И хотелось, чтобы в статье о городе, достопримечательности выводилось бы, как "по настоящему" заголовки
типа
Пример вызова
[[snp_get_padezh? &id=`[[*id]]` &field=`description` &padezh=`5`]]
Исходник
// $id - id of resource
// $field - field name to write or print "padezh"
// $padezh - number of padezh
//http://nano.yandex.ru/project/inflect/
//http://pastie.org/1101890
$res = $modx->getObject('modResource', array('id' => $id));
$res_fieldval = $res->get($field);
$res_pagetitle = $res->get('pagetitle');
if (strlen($res_fieldval)>1)
{
$arr = explode(',', $res_fieldval);
return $arr[intval($padezh)];
}
else{
$url = "http://export.yandex.ru/inflect.xml?name=".$res_pagetitle;
$xml = simplexml_load_file($url);
$original = $xml->original;
$padezh_value = trim($xml->inflection[intval($padezh)]);
for ($i=0;$i<=5;$i++) {
$field_text[$i]=trim($xml->inflection[$i]);
}
$field_text_implode = implode(',', $field_text);
$resource = $modx->getObject('modResource', $id);
$resource->set($field, $field_text_implode);
$resource->save();
if (strlen($padezh_value)>1)
{
return $padezh_value;
}else{
return 'Не определен падеж. Определите вручную';
}
}
Если кому не нравится реализация, не особо ругайте )))
типа
- Отдых в Ялте
- Фотоальбом Ялты
- Отзывы о Ялте
Пример вызова
[[snp_get_padezh? &id=`[[*id]]` &field=`description` &padezh=`5`]]
Исходник
// $id - id of resource
// $field - field name to write or print "padezh"
// $padezh - number of padezh
//http://nano.yandex.ru/project/inflect/
//http://pastie.org/1101890
$res = $modx->getObject('modResource', array('id' => $id));
$res_fieldval = $res->get($field);
$res_pagetitle = $res->get('pagetitle');
if (strlen($res_fieldval)>1)
{
$arr = explode(',', $res_fieldval);
return $arr[intval($padezh)];
}
else{
$url = "http://export.yandex.ru/inflect.xml?name=".$res_pagetitle;
$xml = simplexml_load_file($url);
$original = $xml->original;
$padezh_value = trim($xml->inflection[intval($padezh)]);
for ($i=0;$i<=5;$i++) {
$field_text[$i]=trim($xml->inflection[$i]);
}
$field_text_implode = implode(',', $field_text);
$resource = $modx->getObject('modResource', $id);
$resource->set($field, $field_text_implode);
$resource->save();
if (strlen($padezh_value)>1)
{
return $padezh_value;
}else{
return 'Не определен падеж. Определите вручную';
}
}
Если кому не нравится реализация, не особо ругайте )))
Комментариев нет:
Отправить комментарий