}
/* スキン変換 */
- function __changeSkin($data, $replacement, $pattern)
+ function __changeSkin($data, $replacement, $pattern, $limit = -1)
{
if (empty($data) || empty($pattern)) {
return $data;
$replacement = '<?php '.$replacement. '; ?>';
}
- return preg_replace($pattern, $replacement, $data);
+ return preg_replace($pattern, $replacement, $data, $limit);
}
// Character
case 'fullPicture':
if ($key_name == 'mainPicture') {
$element = 'character_picture_image';
- $pattern = '/{C:mainPicture:?(.*)}/';
+// $pattern = '/{C:mainPicture:?(.*)?}/';
+ $pattern = '/{C:mainPicture([_a-zA-Z0-9:]+)}/';
$filename = 'main_picture';
} elseif ($key_name == 'fullPicture') {
$element = 'character_picture_full';
- $pattern = '/{C:fullPicture:?(.*)}/';
+ $pattern = '/{C:fullPicture([_a-zA-Z0-9:]+)}/';
+// $pattern = '/{C:fullPicture:?(.*)}/';
$filename = 'full_length';
} else {
return $data;
break;
}
- if (preg_match($pattern, $data, $matches)) {
- if (empty($matches[1])) {
+ $count = preg_match_all($pattern, $data, $matches);
+ if (isset($matches[1]) && !empty($matches[1])) {
+ foreach ($matches[1] as $v) {
+ $arr = explode(":", $v);
+
if ($key_name == 'fullPicture') {
$size = 'fullPicture';
} else {
$size = 'l';
}
+ $classname = '';
$class = '';
- } else {
- $arr = explode(":", $matches[1]);
+
if (isset($arr[1])) {
- $size = $arr[0];
- $class = $arr[1];
- } else {
- $size = $matches[1];
- $class = '';
+ $classname = $arr[1];
}
+ if (isset($arr[2])) {
+ $size = $arr[2];
+ }
+ if (isset($arr[3])) {
+ $class = $arr[3];
+ }
+
+ $replacement = '\$this->renderElement(\''. $element. '\', array(\'basename\' => \$character[\'Character\'][\''. $filename. '\'], \'classname\' => \''.$classname.'\', \'options\' => array(\'previewVersion\' => \''. $size. '\', \'class\' => \''. $class. '\', \'nodata\' => \'image\')));';
+
+ $data = $this->__changeSkin($data, "echo ".$replacement, $pattern, 1);
}
- } else {
- return $data;
- break;
}
-
- $replacement = '\$this->renderElement(\''. $element. '\', array(\'basename\' => \$character[\'Character\'][\''. $filename. '\'], \'options\' => array(\'previewVersion\' => \''. $size. '\', \'class\' => \''. $class. '\', \'nodata\' => \'image\')));';
+ return $data;
break;
default:
return $data;