コード例 #1
0
 $tv_file_contents = file_get_contents($tv_file_path);
 $tv_file_mod_time = filemtime($tv_file_path);
 $tvs = $tv_file_contents !== '' ? json_decode($tv_file_contents) : array();
 $flagged_tvs = array();
 // Loop through the template variables in the file
 foreach ($tvs as $i => $tv) {
     $element = Element::get($modx, 'modTemplateVar', $tv->name);
     // If the element is not in the sync
     if (!$element_sync->has_element('modTemplateVar', $tv->name)) {
         // If the tv doesn't exist
         if (!$element) {
             // Create the element
             $element = Element::create($modx, 'modTemplateVar', $tv->name);
             // If the element is created successfully
             if ($element) {
                 $properties = $element_helper->get_tv_element_properties($tv);
                 // If templates have been specified and permission to pair tvs with templates has been given
                 if (isset($tv->template_access) && $modx->getOption('elementhelper.tv_access_control', null, false) == true) {
                     $element_helper->setup_tv_template_access($element->get_property('id'), $tv->template_access);
                 }
                 // If a media source has been specified assign it to the TV
                 if (isset($tv->media_source)) {
                     $element_helper->setup_tv_media_source($element->get_property('id'), $tv->media_source);
                 }
                 // Set the tv properties and then add it to the sync
                 if ($element->set_properties($properties)) {
                     $element_sync->add_element('modTemplateVar', $tv->name, $tv_file_mod_time);
                 }
             }
         } else {
             $modx->log(MODX_LOG_LEVEL_INFO, $log_prefix . 'An element with the name [' . $tv->name . '] already exists. Unable to sync the element.');