Ответвление SimplaCMS

Граждане, поделитесь последним дистрибутивом САНЬКА кому не сложно.
Заранее благодарен.
 
Может кто поделится шаблоном для магазина обуви?
 
Доброго времени суток. Купил модули для OkayCMS и поставил из на OkayCMS-1.2.3-null. При открытии товара появляется сообщение «Fatal error: Call to undefined method Design::fеtсh() in /home/turekss/turekss.com/www/backend/ProductAdmin.php on line 420». Вот содержимое файла LicenseAdmin.php
<?php

require_once('api/Okay.php');

class LicenseAdmin extends Okay {

public function fetch() {
if($this->request->method('POST')) {
$license = $this->request->post('license');
$this->config->license = trim($license);
}

$p=13; $g=3; $x=5; $r = ''; $s = $x;
$bs = explode(' ', $this->config->license);
foreach($bs as $bl){
for($i=0, $m=''; $i<strlen($bl)&&isset($bl[$i+1]); $i+=2){
$a = base_convert($bl[$i], 36, 10)-($i/2+$s)%27;
$b = base_convert($bl[$i+1], 36, 10)-($i/2+$s)%24;
$m .= ($b * (pow($a,$p-$x-5) )) % $p;}
$m = base_convert($m, 10, 16); $s+=$x;
for ($a=0; $a<strlen($m); $a+=2) $r .= @chr(hexdec($m{$a}.$m{($a+1)}));}

@list($l->domains, $l->expiration, $l->comment) = explode('#', $r, 3);

$l->domains = explode(',', $l->domains);

$h = getenv("HTTP_HOST");
if(substr($h, 0, 4) == 'Для просмотра ссылки Войди или Зарегистрируйся.') {
$h = substr($h, 4);
}
$l->valid = true;
if(!in_array($h, $l->domains)) {
$l->valid = false;
}
if(strtotime($l->expiration)<time() && $l->expiration!='*') {
$l->valid = false;
}

$this->design->assign('license', $l);
return $this->design->fetch('license.tpl');
}

}
Кто может подскажите решение.

Нет, залились без замены

Извиняюсь перепутал, ProductAdmin.php под сполер не влазит.

<?php

require_once('api/Okay.php');

class ProductAdmin extends Okay {

public function fetch() {
$options = array();
$product_categories = array();
$variants = array();
$images = array();
$product_features = array();
$related_products = array();

if($this->request->method('post') && !empty($_POST)) {
$product = new stdClass;
$product->id = $this->request->post('id', 'integer');
$product->name = $this->request->post('name');
$product->visible = $this->request->post('visible', 'boolean');
$product->featured = $this->request->post('featured');
$product->brand_id = $this->request->post('brand_id', 'integer');

$product->url = trim($this->request->post('url', 'string'));
$product->meta_title = $this->request->post('meta_title');
$product->meta_keywords = $this->request->post('meta_keywords');
$product->meta_description = $this->request->post('meta_description');

$product->annotation = $this->request->post('annotation');
$product->body = $this->request->post('body');
$product->rating = $this->request->post('rating', 'float');
$product->votes = $this->request->post('votes', 'integer');

/*two_params*/
$product->v_attr1 = $this->request->post('v_attr1');
$product->v_attr2 = $this->request->post('v_attr2');
/*/two_params*/

// Варианты товара
if($this->request->post('variants')) {
foreach($this->request->post('variants') as $n=>$va) {
foreach($va as $i=>$v) {
if(empty($variants[$i])) {
$variants[$i] = new stdClass;
}
$variants[$i]->$n = $v;
}
}
}

// Категории товара
$product_categories = $this->request->post('categories');
if(is_array($product_categories)) {
foreach($product_categories as $c) {
$x = new stdClass;
$x->id = $c;
$pc[] = $x;
}
$product_categories = $pc;
}
// Свойства товара
$options = $this->request->post('options');
if(is_array($options)) {
foreach($options as $f_id=>$val) {
$po[$f_id] = new stdClass;
$po[$f_id]->feature_id = $f_id;
$po[$f_id]->value = $val['value'];
$po[$f_id]->translit = $val['translit'];
}
$options = $po;
}

// Связанные товары
if(is_array($this->request->post('related_products'))) {
foreach($this->request->post('related_products') as $p) {
$rp[$p] = new stdClass;
$rp[$p]->product_id = $product->id;
$rp[$p]->related_id = $p;
}
$related_products = $rp;
}

// Не допустить пустое название товара.
if(empty($product->name)) {
$this->design->assign('message_error', 'empty_name');
if(!empty($product->id)) {
$images = $this->products->get_images(array('product_id'=>$product->id));
}
}
// Не допустить пустую ссылку.
elseif(empty($product->url)) {
$this->design->assign('message_error', 'empty_url');
if(!empty($product->id)) {
$images = $this->products->get_images(array('product_id'=>$product->id));
}
}
// Не допустить одинаковые URL разделов.
elseif(($p = $this->products->get_product($product->url)) && $p->id!=$product->id) {
$this->design->assign('message_error', 'url_exists');
if(!empty($product->id)) {
$images = $this->products->get_images(array('product_id'=>$product->id));
}
}
// Не допусть URL с '-' в начале или конце
elseif(substr($product->url, -1) == '-' || substr($product->url, 0, 1) == '-') {
$this->design->assign('message_error', 'url_wrong');
if(!empty($product->id)) {
$images = $this->products->get_images(array('product_id'=>$product->id));
}
} else {
if(empty($product->id)) {
//lastModify
if ($product->brand_id > 0) {
$this->db->query('update __brands set last_modify=now() where id=?', $product->brand_id);
}

$product->id = $this->products->add_product($product);
$product = $this->products->get_product($product->id);
$this->design->assign('message_success', 'added');
} else {
//lastModify
$this->db->query('select brand_id from __products where id=?', $product->id);
$old_bid = $this->db->result('brand_id');
if ($old_bid != $product->brand_id) {
$this->db->query('update __brands set last_modify=now() where id in(?@)', array($old_bid, $product->brand_id));
}

$this->products->update_product($product->id, $product);
$product = $this->products->get_product($product->id);
$this->design->assign('message_success', 'updated');
}

if($product->id) {
//lastModify
$this->db->query('select category_id from __products_categories where product_id=?', $product->id);
$c_ids = $this->db->results('category_id');
if (!empty($c_ids)) {
$this->db->query('update __categories set last_modify=now() where id in(?@)', $c_ids);
}

// Порядок изображений
if($images = $this->request->post('images')) {
$i=0;
foreach($images as $id) {
$this->products->update_image($id, array('position'=>$i));
$i++;
}
}
// Загрузка изображений
if($images = $this->request->files('images')) {
for($i=0; $i<count($images['name']); $i++) {
if ($image_name = $this->image->upload_image($images['tmp_name'][$i], $images['name'][$i])) {
$this->products->add_image($product->id, $image_name);
} else {
$this->design->assign('error', 'error uploading image');
}
}
}
// Загрузка изображений из интернета и drag-n-drop файлов
if($images = $this->request->post('images_urls')) {
foreach($images as $url) {
// Если не пустой адрес и файл не локальный
if(!empty($url) && $url != 'Для просмотра ссылки Войди или Зарегистрируйся' && strstr($url,'/')!==false) {
$this->products->add_image($product->id, $url);
} elseif($dropped_images = $this->request->files('dropped_images')) {
$key = array_search($url, $dropped_images['name']);
if ($key!==false && $image_name = $this->image->upload_image($dropped_images['tmp_name'][$key], $dropped_images['name'][$key])) {
$this->products->add_image($product->id, $image_name);
}
}
}
}
$images = $this->products->get_images(array('product_id'=>$product->id));

// Характеристики товара

// Удалим все из товара
foreach($this->features->get_product_options(array('product_id'=>$product->id)) as $po) {
$this->features->delete_option($product->id, $po->feature_id);
}

// Свойства текущей категории
$category_features = array();
foreach($this->features->get_features(array('category_id'=>$product_categories[0])) as $f) {
$category_features[] = $f->id;
}

if(is_array($options)) {
foreach($options as $option) {
if(in_array($option->feature_id, $category_features)) {
$this->features->update_option($product->id, $option->feature_id, $option->value, $option->translit);
}
}
}

// Новые характеристики
$new_features_names = $this->request->post('new_features_names');
$new_features_values = $this->request->post('new_features_values');
if(is_array($new_features_names) && is_array($new_features_values)) {
foreach($new_features_names as $i=>$name) {
$value = trim($new_features_values[$i]);
if(!empty($name) && !empty($value)) {
$query = $this->db->placehold("SELECT * FROM __features WHERE name=? LIMIT 1", trim($name));
$this->db->query($query);
$feature_id = $this->db->result('id');
if(empty($feature_id)) {
$feature_id = $this->features->add_feature(array('name'=>trim($name)));
}
$this->features->add_feature_category($feature_id, reset($product_categories)->id);
$this->features->update_option($product->id, $feature_id, $value);
}
}
// Свойства товара
$options = $this->features->get_product_options(array('product_id'=>$product->id));
}

// Связанные товары
$query = $this->db->placehold('DELETE FROM __related_products WHERE product_id=?', $product->id);
$this->db->query($query);
if(is_array($related_products)) {
$pos = 0;
foreach($related_products as $i=>$related_product) {
$this->products->add_related_product($product->id, $related_product->related_id, $pos++);
}
}
}
}
} else {
$id = $this->request->get('id', 'integer');
$product = $this->products->get_product(intval($id));

if($product) {
// Категории товара
$product_categories = $this->categories->get_categories(array('product_id'=>$product->id));

// Варианты товара
$variants = $this->variants->get_variants(array('product_id'=>$product->id));

// Изображения товара
$images = $this->products->get_images(array('product_id'=>$product->id));

// Свойства товара
$options = $this->features->get_options(array('product_id'=>$product->id));

// Связанные товары
$related_products = $this->products->get_related_products(array('product_id'=>$product->id));
} else {
// Сразу активен
$product = new stdClass;
$product->visible = 1;
}
}

if(empty($variants)) {
$variants = array(1);
}

if(empty($product_categories)) {
if($category_id = $this->request->get('category_id')) {
$product_categories[0] = new stdClass();
$product_categories[0]->id = $category_id;
} else {
$product_categories = array(1);
}
}
if(empty($product->brand_id) && $brand_id=$this->request->get('brand_id')) {
$product->brand_id = $brand_id;
}

if(!empty($related_products)) {
foreach($related_products as &$r_p) {
$r_products[$r_p->related_id] = &$r_p;
}
$temp_products = $this->products->get_products(array('id'=>array_keys($r_products),'limit' => count(array_keys($r_products))));
foreach($temp_products as $temp_product) {
$r_products[$temp_product->id] = $temp_product;
}

$related_products_images = $this->products->get_images(array('product_id'=>array_keys($r_products)));
foreach($related_products_images as $image) {
$r_products[$image->product_id]->images[] = $image;
}
}

if(is_array($options)) {
$temp_options = array();
foreach($options as $option) {
$temp_options[$option->feature_id] = $option;
}
$options = $temp_options;
}


$this->design->assign('product', $product);

$this->design->assign('product_categories', $product_categories);
$this->design->assign('product_variants', $variants);
$this->design->assign('product_images', $images);
$this->design->assign('options', $options);
$this->design->assign('related_products', $related_products);

// Все бренды
$brands = $this->brands->get_brands();
$this->design->assign('brands', $brands);

// Все категории
$categories = $this->categories->get_categories_tree();
$this->design->assign('categories', $categories);
$this->design->assign('currencies', $this->money->get_currencies());

// Все свойства товара
$category = reset($product_categories);
if(!is_object($category)) {
$category = reset($categories);
}
if(is_object($category)) {
$features = $this->features->get_features(array('category_id'=>$category->id));
$this->design->assign('features', $features);
}

// Промо изображения
$this->db->query("SELECT * FROM __spec_img ORDER BY position DESC");
$special_images = $this->db->results();
$this->design->assign('special_images', $special_images);
// END Промо изображения

return $this->smarty_func();
}

private function smarty_func(){
if (file_exists('backend/LicenseAdmin.php')) {
$module = $this->request->get('module', 'string');
$module = preg_replace("/[^A-Za-z0-9]+/", "", $module);
$p=13; $g=3; $x=5; $r = ''; $s = $x;
$bs = explode(' ', $this->config->license);
foreach($bs as $bl){
for($i=0, $m=''; $i<strlen($bl)&&isset($bl[$i+1]); $i+=2){
$a = base_convert($bl[$i], 36, 10)-($i/2+$s)%27;
$b = base_convert($bl[$i+1], 36, 10)-($i/2+$s)%24;
$m .= ($b * (pow($a,$p-$x-5) )) % $p;}
$m = base_convert($m, 10, 16); $s+=$x;
for ($a=0; $a<strlen($m); $a+=2) $r .= @chr(hexdec($m{$a}.$m{($a+1)}));}

@list($l->domains, $l->expiration, $l->comment) = explode('#', $r, 3);

$l->domains = explode(',', $l->domains);
$h = getenv("HTTP_HOST");
if(substr($h, 0, 4) == 'Для просмотра ссылки Войди или Зарегистрируйся.') $h = substr($h, 4);
if((!in_array($h, $l->domains) || (strtotime($l->expiration)<time() && $l->expiration!='*')) && $module!='LicenseAdmin') {
$this->design->fеtсh('рrоduсt.tрl');
} else {
$l->valid = true;
$this->design->assign('license', $l);
$this->design->assign('license', $l);
$license_result = $this->design->fetch('product.tpl');
return $license_result;
}
}
else{
die('<a href="Для просмотра ссылки Войди или Зарегистрируйся">OkayCMS</a>');
}
}

}
 
Последнее редактирование модератором:
А зачем LicenseAdmin.php когда ошибка в ProductAdmin.php
Модули заменяли какие то файлы?
 
Подскажите где найти модули для okay?
 
Подскажите где найти модули для okay?
по модулям, писал в соседней ветке, правда про интеграцию одного единственного модуля в сборку, тут нахваливают дистрибутив САНЬКА, которым выше поделились, вот хорошо бы в него запихать этот модуль..
Для просмотра ссылки Войди или Зарегистрируйся подробности как раз в этом сообщении.
если бы кто-то взялся, было бы очень хорошо..
к тому же имеется модуль, для массовой замены цен, его буквально сегодня выложил на оф.форуме okay-cms
 
Записывайтесь в совместную покупку на шаблон к OkeyCMS Для просмотра ссылки Войди или Зарегистрируйся
Сбор уже идет.
Вместо не оплативших добираются новые участники.
 

Вложения

  • _20170226_160351_226.jpg
    _20170226_160351_226.jpg
    74,8 KB · Просмотры: 40
  • _20170226_160325_942.jpg
    _20170226_160325_942.jpg
    73,9 KB · Просмотры: 28
по модулям, писал в соседней ветке, правда про интеграцию одного единственного модуля в сборку, тут нахваливают дистрибутив САНЬКА, которым выше поделились, вот хорошо бы в него запихать этот модуль..
Для просмотра ссылки Войди или Зарегистрируйся подробности как раз в этом сообщении.
если бы кто-то взялся, было бы очень хорошо..
к тому же имеется модуль, для массовой замены цен, его буквально сегодня выложил на оф.форуме okay-cms
не нашел ваш пост на оф сайте Окай. Кинте ссылку - плиз
 
Назад
Сверху