private function setwidgetvalue($path, $value) { if (!strpos($path, '.')) { return; } if (!preg_match('/^sidebar(\\d?)\\.(\\w\\w*+)(\\.\\w\\w*+)*$/', $path, $m)) { $this->error("The '{$path}' is not a widget path"); } $widgetname = $m[2]; if ($widgetname != 'widget' && !in_array($widgetname, ttheme::getwidgetnames())) { $this->error("Unknown widget '{$widgetname}' name"); } $path = ttheme::getwidgetpath(empty($m[3]) ? '' : $m[3]); if ($path === false) { $this->error("Unknown '{$path}' widget path"); } $this->setwidgetitem($widgetname, $path, $value); if ($widgetname == 'widget') { foreach (ttheme::getwidgetnames() as $widgetname) { if (($widgetname == 'posts' || $widgetname == 'comments') && $path == '.item') { continue; } $this->setwidgetitem($widgetname, $path, $value); } } }