Sergey |
|
---|---|
Страница, как шаблон. Для этой цели я использую так называемый мной тег-процессор. Соответствующим заключительным этапом я предоставляю возможность юзеру вставлять теги в текст страницы. формат: {{ассоциация или имя тега}возможная замена сообщения} Для чего нужна ассоциация. Она позволяет просто написать: Размер телевизора по диагонали {{ДИАГОНАЛЬ}} что даст отображение: Размер телевизора по диагонали 61см механизм позволяет интерпритировать ассоциацию с конкретным экстраполем. Вот и получается, что наряду с категорией надо вводить и ассоциацию. Вот пример функции для Генуи: function тег_процессор // функция процессора тегов вида {{тег}аргумент замены для тегов, которые включают HTML тег А} // аргумент замены для тегов, которые включают HTML тег А =значение необязательно // В том случае, если имеется указание на то, что тег содержится внутри другого тега, // то тогда из тега должен быть извлечен аргумент HTML параметр hreff и зменнет аналогичным из тега ( $входная_строка=FALSE, //@param string - обрабатываемая строка $тег_в_якоре=FALSE, $tags ) { global $cfg; if (empty($входная_строка)) return $входная_строка; $голова=''; $тело=$входная_строка; while(TRUE) { $найден_тег=FALSE; $это_меняем=FALSE; $это_заменяем=FALSE; $часть=preg_split('/\\{\\{\\s*([a-zA-Z0-9_'.$cfg['alpha_national'].']*)(\\})/ui', $тело,2,PREG_SPLIT_DELIM_CAPTURE); if (count($часть) == 4) { $голова.=$часть[0]; $найден_тег=$часть[1]; $тело=$часть[3]; $аргумент_замены=preg_split('/(\\})/ui', $тело,2,PREG_SPLIT_DELIM_CAPTURE); if (count($аргумент_замены) != 3) break; $тело=$аргумент_замены[2]; if (empty($найден_тег) or !isset($tags->vars[$найден_тег])) { $голова .="{?{".$найден_тег."}?}"; continue; } $найден_тег=$tags->vars[$найден_тег]; $это_меняем=TRUE; if (!$тег_в_якоре) { $ищем_якорь_в=$найден_тег; $это_заменяем=$часть[0]; while(TRUE) { $порция=preg_split('/a\\s*(href)*\\s*\\=/ui', $ищем_якорь_в,2,PREG_SPLIT_DELIM_CAPTURE); if (count($порция) == 3) { if (empty($порция[2])) break; else $ищем_якорь_в=$порция[2]; } else {$это_заменяем=FALSE; break;} } } else if (!empty($аргумент_замены[0])) { $порция=preg_split('/(\>)/ui', $найден_тег,2,PREG_SPLIT_DELIM_CAPTURE); if (count($порция) == 3) { $замена=preg_split('/(<\\/a|A>)/ui', $порция[2],2,PREG_SPLIT_DELIM_CAPTURE); $найден_тег=$порция[0].'>'.$аргумент_замены[0].'</A>'; } } if ($это_меняем) { $голова .= $найден_тег; } } else break; return $голова.$тело; } www.cotonti.mobi
|
|
Отредактировано: Sergey (31.05.2012 14:11, 12 лет назад) |