Форум русской поддержки Joomla!® CMS
01.05.2017, 00:52:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Вызов процедуры (функции) из статьи

 (Прочитано 122 раз)
0 Пользователей и 1 Гость смотрят эту тему.
igorigor76
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 31


« : 12.04.2017, 21:25:37 »

Joomla 3.6.5
Плагин Sourcerer Version: 7.1.4
Для каждого сотрудника учреждения есть статья. В статье, в частности, отражены следующие данные:
Возраст: 42 года.
Общий стаж работы: 20 лет.
Стаж работы по специальности: 15 лет.
Нужно, чтобы эти данные были актуальны. Для этого использую плагин и код
Код:
Возраст:
{source}<?php $birthday = '09.05.1974';
$tmp = explode('.', $birthday);
$tmpm = $tmp[1];
$tmpd = $tmp[0];
$datem = date('m');
$dated = date('d');
$poprawka = 0;
if ($tmpm > $datem) $poprawka = 1;
if ($tmpm == $datem) if ($tmpd > $dated) $poprawka = 1;
$old = date('Y')-$tmp[2]-$poprawka;
$txt = "год";
if ($old > 1) $txt = "года";
if ($old >= 5) $txt = "лет";
if ($old >= 21) $txt = "год";
if ($old >= 22) $txt = "года";
if ($old >= 25) $txt = "лет";
if ($old >= 31) $txt = "год";
if ($old >= 32) $txt = "года";
if ($old >= 35) $txt = "лет";
if ($old >= 41) $txt = "год";
if ($old >= 42) $txt = "года";
if ($old >= 45) $txt = "лет";
if ($old >= 51) $txt = "год";
if ($old >= 55) $txt = "лет";
echo ' ' . $old; echo ' ' . $txt; ?>{/source}.
Но три раза вставлять одно и то же в статью, и так для нескольких десятков сотрудников не хочется.
Хочется это сделать как вызов функции или процедуры с передачей в качестве параметра даты рождения.
Такое возможно? Может быть есть более изящный способ.
« Последнее редактирование: 12.04.2017, 21:30:53 от igorigor76 » Записан
igorigor76
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 31


« Ответ #1 : 13.04.2017, 18:29:29 »

Что-то никто не отвечает.
Записан
fsv
Практически профи
*******

Репутация: +353/-2
Offline Offline

Пол: Мужской
Сообщений: 2466


« Ответ #2 : 13.04.2017, 21:12:14 »

Сделайте кастомный пункт меню "Страницы сотрудников в виде блога", взяв за основу (клонировав) блог. Это позволит сделать нужный уникальный вывод.
Склонения одной функцией. Или вообще без: "Общий стаж работы: 20 лет." => "Общий стаж работы, лет: 20"
В материале в админке пишите {{age:42}} с исходными данными, в шаблоне регуляркой их получаете и меняете на актуальные.
Записан
capricorn
Практически профи
*******

Репутация: +98/-1
Offline Offline

Сообщений: 1624


« Ответ #3 : 13.04.2017, 22:17:36 »

навскидку можно наверно попробовать создать таблицу в БД для сотрудников, содержащую нужные даты и ID их статей. php скрипт, который будет вытягивать и обрабатывать данные, поместить в модуль, типа этого https://extensions.joomla.org/extensions/extension/core-enhancements/coding-a-scripts-integration/blank-module/, а потом в статью сотрудника вставлять этот модуль (?).
Записан
ChaosHead
Профи
********

Репутация: +397/-11
Offline Offline

Пол: Мужской
Сообщений: 4627



« Ответ #4 : 13.04.2017, 23:06:47 »

Вон в следующей версии Joomla появятся доп поля для материалов. Там можно будет и год рождения прописывать и что угодно.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet