public function __construct($attributes)
 {
     parent::__construct($attributes);
     if (!isset($this->attributes['products_source_field']) || !$this->attributes['products_source_field'] instanceof ProductSelect) {
         throw new Exception("Source field (attribute: products_source_field) not set for field '{$this->attributes['name']}'.");
     }
     $this->attributes['products_source_field_name'] = $this->attributes['products_source_field']->getName();
     $this->attributes['vat_values'] = App::getModel('vat/vat')->getVATAll();
     $this->attributes['prefixes'] = array(Translation::get('TXT_PRICE_NET'), Translation::get('TXT_PRICE_GROSS'));
     $this->_jsFunction = 'LoadProductDataForAggregation_' . $this->_id;
     $this->attributes['jsfunction'] = 'xajax_' . $this->_jsFunction;
     App::getRegistry()->xajaxInterface->registerFunction(array($this->_jsFunction, $this, 'loadProductData'));
 }
Beispiel #2
0
 public function processVariants($productId)
 {
     if (!isset($this->attributes['clientgroupid'])) {
         $this->attributes['clientgroupid'] = 0;
     }
     if (!isset($this->attributes['currencyid'])) {
         $this->attributes['currencyid'] = 0;
     }
     $rawVariants = App::getModel('product/product')->getAttributeCombinationsForProduct($productId, $this->attributes['clientgroupid'], $this->attributes['currencyid']);
     $variants = [];
     $variants[] = array('id' => '', 'caption' => Translation::get('TXT_CHOOSE_VARIANT'), 'price' => '');
     foreach ($rawVariants as $variant) {
         $caption = [];
         foreach ($variant['attributes'] as $attribute) {
             $caption[] = str_replace('"', '\'', $attribute['name']);
         }
         $variants[] = array('id' => $variant['id'], 'caption' => implode(', ', $caption), 'options' => array('price' => $variant['price'], 'stock' => $variant['qty'], 'weight' => $variant['weight'], 'ean' => $variant['symbol'], 'thumb' => App::getModel('product')->getThumbPathForId($variant['photoid'])));
     }
     return json_encode($variants);
 }
 /**
  * Verify if a language is available
  * 
  * @param string $a_language_code
  * @return <boolean|string>
  */
 public function is_exist_language($a_language_code)
 {
     // Verify if a language matches the parameter
     if (isset(self::$languages[$this->directory][$a_language_code])) {
         $return = $a_language_code;
     } else {
         if (strlen($a_language_code) > 2) {
             $a_language_code = substr($a_language_code, 0, 2);
         }
         $matches = array();
         $translations = array();
         foreach (self::$languages[$this->directory] as $item) {
             if ($item->code_short == $a_language_code) {
                 $translation = new Translation($item);
                 $matches[$item->code] = $translation->get('language', 'priority');
                 $translations[$item->code] = $translation;
             }
         }
         if (count($matches) == 1) {
             $found_language = reset($translations);
             $return = $found_language->get_language()->code;
         } else {
             if (count($matches) > 1) {
                 arsort($matches);
                 $keys = array_keys($matches);
                 $found_language = $translations[reset($keys)];
                 $return = $found_language->get_language()->code;
             }
         }
     }
     return isset($return) ? $return : false;
 }
Beispiel #4
0
 function MultilingualTranslateForm()
 {
     parent::MailForm();
     $this->autosave = true;
     global $page, $cgi, $intl;
     $intl->language = $cgi->_lang;
     $intl->charset = $intl->languages[$intl->language]['charset'];
     $this->extra = 'id="multilingual-translate-form"';
     $w =& $this->addWidget('template', '_header');
     $this->lang = multilingual_filter_lang($cgi->_lang);
     $this->reflang = multilingual_filter_lang(intl_default_lang());
     $w->template = '<tr><th colspan="2" width="50%">{intl Language}: {lang}</th><th width="50%">{intl Reference}: {reflang}</th></tr>';
     // get copy from repository
     loader_import('cms.Versioning.Rex');
     $rex = new Rex($cgi->_collection);
     $doc = $rex->getCurrent($cgi->_key);
     $widgets = $rex->getStruct();
     if (!$widgets) {
         $widgets = array();
     }
     // edit widgets go here
     $this->widgets = array_merge($this->widgets, $widgets);
     foreach ($this->widgets as $k => $v) {
         if (in_array($k, array($rex->key, 'sitellite_status', 'sitellite_access', 'sitellite_startdate', 'sitellite_expirydate', 'sitellite_owner', 'sitellite_team'))) {
             unset($this->widgets[$k]);
             continue;
         }
         if ($v->name != '_header' && !in_array($v->type, array('text', 'textarea', 'xeditor'))) {
             unset($this->widgets[$k]);
             continue;
         }
         if (strtolower(get_class($this->widgets[$k])) == 'mf_widget_xeditor') {
             $this->extra = 'onsubmit="xed_copy_value (this, \'' . $k . '\')"';
         }
         if (isset($doc->{$k})) {
             $this->widgets[$k]->reference = $doc->{$k};
         }
     }
     $w =& $this->addWidget('hidden', '_key');
     $w =& $this->addWidget('hidden', '_collection');
     $w =& $this->addWidget('hidden', '_lang');
     $w =& $this->addWidget('status', '_status');
     $w->alt = intl_get('Translation Status');
     $w->setValue('draft');
     $w->reference = '';
     // submit buttons
     $w =& $this->addWidget('msubmit', 'submit_button');
     $w->reference = '';
     $b =& $w->getButton();
     $b->setValues(intl_get('Save'));
     $b =& $w->addButton('submit_button', intl_get('Cancel'));
     $b->extra = 'onclick="return cms_cancel (this.form)"';
     $this->error_mode = 'all';
     if ($rex->info['Collection']['singular']) {
         page_title(intl_get('Translating') . ' ' . $rex->info['Collection']['singular'] . ': ' . $doc->{$rex->key});
     } else {
         page_title(intl_get('Translating Item') . ': ' . $doc->{$rex->key});
     }
     $tr = new Translation($cgi->_collection, $cgi->_lang);
     $curr = $tr->get($cgi->_key);
     if ($curr) {
         foreach ($curr->data as $k => $v) {
             if (isset($this->widgets[$k])) {
                 $this->widgets[$k]->setDefault($v);
             }
         }
         $this->widgets['_status']->setDefault($curr->sitellite_status);
     }
 }
 public function processVariants($productId)
 {
     $rawVariants = App::getModel('product/product')->getAttributeCombinationsForProduct($productId);
     $variants = [];
     $variants[] = array('id' => '', 'caption' => Translation::get('TXT_ANY_VARIANT'));
     foreach ($rawVariants as $variant) {
         $caption = [];
         foreach ($variant['attributes'] as $attribute) {
             $caption[] = $attribute['name'];
         }
         $variants[] = array('id' => $variant['id'], 'caption' => implode(', ', $caption));
     }
     return json_encode($variants);
 }
Beispiel #6
0
/**
 * Return translated version of $name
 * @param string $name 
 */
function _($name)
{
    return Translation::get($name);
}
Beispiel #7
0
 public function __construct($attributes)
 {
     parent::__construct($attributes);
     $this->attributes['file_types'] = array('octet-stream', 'jpg', 'jpeg', 'png', 'gif', 'psd', 'doc', 'docx', 'csv', 'xls', 'tgz', 'rar', 'zip', 'pdf', 'avi', 'mov', 'mpg', 'mpeg');
     $this->attributes['file_types_description'] = Translation::get('TXT_FILE_TYPES_IMAGE');
 }
Beispiel #8
0
 public function __construct($attributes)
 {
     parent::__construct($attributes);
     $this->_attributes['file_types'] = array('xls', 'csv', 'xml', 'odt', 'txt');
     $this->_attributes['file_types_description'] = Translation::get('TXT_FILE_TYPES_EXCHANGE');
 }
Beispiel #9
0
if (session_admin()) {
    echo '<div class="scm-sidebar-top">';
    echo loader_box('cms/buttons/add', array('collection' => 'sitellite_sidebar', 'return' => site_current(), 'extra' => '&position=' . $position));
    echo '</div>';
}
if (!$res) {
    return;
}
if (intl_lang() != intl_default_lang()) {
    loader_import('multilingual.Translation');
    $tr = new Translation('sitellite_sidebar', intl_lang());
}
foreach ($res as $key => $row) {
    if (intl_lang() != intl_default_lang()) {
        if (session_admin()) {
            $translated = $tr->get($row->id);
        } else {
            $translated = $tr->get($row->id, true);
        }
        if ($translated) {
            foreach ($translated->data as $k => $v) {
                $row->{$k} = $v;
            }
        }
    }
    if (count($res) == 1) {
        $up = false;
        $down = false;
        $upkey = '';
        $downkey = '';
    } elseif ($key == 0) {
Beispiel #10
0
/*$teams = session_allowed_teams_list ();
if ($teams[0] == 'all') {
	$teams = assocify (session_get_teams ());
	foreach ($teams as $k => $v) {
		$teams[$k] = ucwords ($v);
	}
}*/
if (!is_array($list)) {
    $list = array();
}
$parameters['total'] = count($list);
$parameters['list'] = array();
if ($cgi->_status == 'untranslated') {
    $r = new Rex($cgi->_collection);
    foreach ($list as $item) {
        $parameters['list'][$item->{$r->key}] = $tr->get($item->{$r->key});
        if ($parameters['list'][$item->{$r->key}]->collection) {
            $parameters['list'][$item->{$r->key}]->title = multilingual_filter_title($parameters['list'][$item->{$r->key}]->collection, $item->{$r->key});
        } else {
            $parameters['list'][$item->{$r->key}]->title = multilingual_filter_title($cgi->_collection, $item->{$r->key});
        }
    }
    uasort($parameters['list'], 'multilingual_sort');
} else {
    foreach ($list as $item) {
        $parameters['list'][$item->id] = $tr->getByID($item->id);
        $r = new Rex($parameters['list'][$item->id]->collection);
        $parameters['list'][$item->id]->title = multilingual_filter_title($parameters['list'][$item->id]->collection, $parameters['list'][$item->id]->pkey);
        $parameters['list'][$item->id]->_collection = $parameters['list'][$item->id]->collection;
        $parameters['list'][$item->id]->collection = $parameters['collections'][$parameters['list'][$item->id]->collection];
    }
Beispiel #11
0
 /**
  * Returns a single object with the specified $id.
  *
  * @access public
  * @param mixed
  * @return object
  */
 function &get($id)
 {
     if ($this->usePermissions) {
         if (session_admin()) {
             $and = ' and ' . session_allowed_sql();
         } else {
             $and = ' and ' . session_approved_sql();
         }
     } else {
         $and = '';
     }
     $res = db_fetch('SELECT * FROM ' . $this->table . ' WHERE ' . $this->pkey . ' = ?' . $and . $this->_end(), $id);
     if (!$res) {
         $this->error = db_error();
         return false;
     }
     if ($this->multilingual && intl_lang() != intl_default_lang()) {
         loader_import('multilingual.Translation');
         $tr = new Translation($this->table, intl_lang());
         if (session_admin()) {
             $translated = $tr->get($res->{$this->pkey});
         } else {
             $translated = $tr->get($res->{$this->pkey}, true);
         }
         if ($translated) {
             foreach ($translated->data as $key => $value) {
                 $res->{$key} = $value;
             }
         }
     }
     return $res;
 }