コード例 #1
0
 /**
  * Get the properties on this source
  * @param boolean $parsed
  * @return array
  */
 public function getProperties($parsed = false)
 {
     $properties = $this->get('properties');
     $defaultProperties = $this->getDefaultProperties();
     if (!empty($properties) && is_array($properties)) {
         foreach ($properties as &$property) {
             $property['overridden'] = 0;
             if (array_key_exists($property['name'], $defaultProperties)) {
                 if ($defaultProperties[$property['name']]['value'] != $property['value']) {
                     $property['overridden'] = 1;
                 }
             } else {
                 $property['overridden'] = 2;
             }
         }
         $properties = array_merge($defaultProperties, $properties);
     } else {
         $properties = $defaultProperties;
     }
     /** @var array $results Allow manipulation of media source properties via event */
     $results = $this->xpdo->invokeEvent('OnMediaSourceGetProperties', array('properties' => $this->xpdo->toJson($properties)));
     if (!empty($results)) {
         foreach ($results as $result) {
             $result = is_array($result) ? $result : $this->xpdo->fromJSON($result);
             $properties = array_merge($properties, $result);
         }
     }
     if ($parsed) {
         $properties = $this->parseProperties($properties);
     }
     return $this->prepareProperties($properties);
 }
コード例 #2
0
         $plugin_events = is_array($events) ? array_merge($plugin_events, $events) : $plugin_events;
         $el_i++;
     }
     if (is_array($plugins)) {
         if ($category->addMany($plugins, 'Plugins')) {
             $helper->sendLog(modX::LOG_LEVEL_INFO, '    ' . $modx->lexicon('mc_packaged') . ' ' . count($plugins) . ' ' . $modx->lexicon('mc_plugins'));
         } else {
             $helper->sendLog(modX::LOG_LEVEL_FATAL, '    ' . $modx->lexicon('mc_adding_plugins_failed'));
         }
     } else {
         $helper->sendLog(modX::LOG_LEVEL_FATAL, '    ' . $modx->lexicon('mc_non_array_in') . ' transport.plugins.php');
     }
 }
 $filename = $sources['resolvers'] . 'plugin.resolver.php';
 if (file_exists($filename)) {
     $plugin_events = $modx->toJson($plugin_events);
     $content = file_get_contents($filename);
     $content = str_replace('{events}', $plugin_events, $content);
     file_put_contents($filename, $content);
 }
 /* Create Category attributes array dynamically
  * based on which elements are present
  */
 $attr = array(xPDOTransport::UNIQUE_KEY => 'category', xPDOTransport::PRESERVE_KEYS => false, xPDOTransport::UPDATE_OBJECT => true, xPDOTransport::RELATED_OBJECTS => true);
 /* Only add this on first pass if no subPackages */
 if ($hasValidators && $i == 1 && !$hasSubPackages) {
     $attr[xPDOTransport::ABORT_INSTALL_ON_VEHICLE_FAIL] = true;
 }
 if ($hasSnippets) {
     $attr[xPDOTransport::RELATED_OBJECT_ATTRIBUTES]['Snippets'] = array(xPDOTransport::PRESERVE_KEYS => false, xPDOTransport::UPDATE_OBJECT => true, xPDOTransport::UNIQUE_KEY => 'name');
 }