예제 #1
0
 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);
         }
     }
 }