Jump to content

Featured Replies

  • Replies 187
  • Просмотров 28,8k
  • Created
  • Последний ответ

Лучшие авторы в теме

Most Popular Posts

  • Да, нужно изменить локаль в Внешний вид > языки > Изменить язык > локаль языка. Валюта зависит от языка форума. Вот некоторые локали:

  • Если после установки Classifieds  v1.2.1 появилась следующая ошибка: Warning: Invalid argument supplied for foreach() in /var/www/data/www/мойсайт.ru/cache/skin_cache/cacheid_1/skin_classifieds.php

  • что бы валюту поменять, надо поменять локаль в языках, т.к. оно к ней привязывается   для Украины ru_UA.UTF-8 для России я так понял ru_RU.UTF-8     П.С. Кстати я нашел в чем проблема с отображе

comment_33134

так есть ещё варианты изменить рубли на гривну , при этом язык приложения чтоб остался русским.?

Edited by YOLO

  • 1 месяц спустя...
comment_37639

так есть ещё варианты изменить рубли на гривну , при этом язык приложения чтоб остался русским.?

 

Конечно можно. Например, если у вас язык русский, а нужно включить гривну, то в настройках приложения "Settings  >   Classifieds  >  General Configuration"  в "Localization > Override Locale"  прописываем uk_UA.UTF8 или ru_UA.utf8, что одно и тоже.

 

По аналогии подставив код валюты, можно выставить любую не меняя языка.

 

Название берётся из настроек серверного окружения, например в моём примере отсюда "/usr/lib/locale/ru_UA.utf8/"

 

Для баксов - en_US.utf8, для Евро - eu_ES.utf8 и т.д. и т.п.

 

P.S. У меня база в utf8.

  • 3 недели спустя...
  • 2 недели спустя...
  • 4 недели спустя...
comment_44546

Отзовитесь те кто ставил на 3.3.4 помогите поставить и настроить если у вас получилось.

Заранее спасибо.

Пы. Сы. У меня не получилось поставить сперва выскакивает ошибка мол проблемы с хуком, это ладно отключаю хук работает, создаю категорию и форум падает.

Edited by lg29

  • Author
comment_44564

lg29, так пиши что за ошибки - будем разбираться. 

Попробуй установить предыдущую версию: classifieds12001.zip

comment_44588

lg29, так пиши что за ошибки - будем разбираться. 

Попробуй установить предыдущую версию: attachicon.gifclassifieds12001.zip

Попробую конечно поставить, но вот читал что она глючная и проблемная, а на счёт ошибки ок сегодня поставлю тогда и выкачю сюда ошибку.

comment_44591

lg29, так пиши что за ошибки - будем разбираться. 

Попробуй установить предыдущую версию: attachicon.gifclassifieds12001.zip

Нууууу вообщем как сказал Гагарин когда то "Поехали" :)

1) Скачал я версию которую ты предложил - это 1.2.0 но не суть важно, вообщем всё заливаю на фтп всё по древу вложению, установка проходит вообще тьфу тьфу тьфу как литая встаёт на форум между прочем версия 1.2.1 тоже встаёт на форум как автомат калашникова чётко и прочно НО далее (смотрим скрин)

post-6305-0-52698700-1380298004_thumb.jp

 

2) То есть это то что я описывал выше проблема с хуком (смотрим скрин), ну да ладно это не проблема отключаю его и форум работает отлично.

post-6305-0-25638100-1380298108_thumb.jp

 

3) Ну что идем далее, а конкретно в само приложение, значит захожу я туда потом создаю Classifields > Manage > Manage Packages > Add Package мне говорит оопс что то не так мол нет категории, ну дык и понятно как товар будет продаваться без категории, ну мы сейчас сделаем заходу в настройки и создаю категорию, потом на форум обновить и тут бах и форум падает (смотрим скрин)

post-6305-0-64446200-1380298271_thumb.jp

 

Ну вот такая проблема, у кого какие мысли и как решить вопрос можно?

Edited by lg29

comment_44595

Ну и да забыл конечно вот 240 строка core.php

       $this->output .= $this->registry->getClass('output')->getTemplate('classifieds')->category_view($category, $categories, $items, $pages, $sort, $filter, $siblings, $types);

И вот сам core.php на всякий случай

<?php

/**
 *
 * Classifieds 1.2.0
 *
 * @author		$Author: Andrew Millne $
 * @copyright   2011 Andrew Millne. All Rights Reserved.
 * @license		__dev.millne.com/license.html
 * @package		Classifieds
 * @link		__dev.millne.com
 *
 */

if ( ! defined( 'IN_IPB' ) ) {
    print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded all the relevant files.";
    exit();
}

class public_classifieds_core_core extends ipsCommand {
	
	/**
	 * Sorting column options
	 *
	 * @access	protected
	 * @var 	array
	 */

    public function doExecute( ipsRegistry $registry ) {
        
        //-----------------------------------------
        // Load Languages
        //-----------------------------------------

        $this->lang->loadLanguageFile( array( 'public_profile' ), 'members' );

        //-----------------------------------------
        // Load libraries
        //-----------------------------------------

        $this->categories = $this->registry->classifieds->helper('categories');
        $this->items = $this->registry->classifieds->helper('items');
        $this->fields = $this->registry->classifieds->helper('fields');
        $this->questions = $this->registry->classifieds->helper('questions');

        //-----------------------------------------
        // Add Navigation
        //-----------------------------------------

        $this->registry->output->addNavigation( $this->settings['classifieds_public_name'], 'app=classifieds', "classifieds", "index" );

        //-----------------------------------------
        // Which section are we looking for?
        //-----------------------------------------

        switch ( ipsRegistry::$request['do'] ) {
            case 'index':
                //$this->index();
                $this->viewCategory();
                break;

            case 'view_category':
                $this->viewCategory();
                break;

            case 'view_item':
                $this->viewItem();
                break;

            case 'view_my_items':
                $this->viewMyItems();
                break;

            case 'close_item':
                $this->closeItem();
                break;

            case 'open_item':
                $this->openItem();
                break;

            case 'delete_item':
                $this->deleteItemForm();
                break;

            case 'do_delete_item':
                $this->deleteItem();
                break;

            default:
                $this->viewCategory();
                break;
        }

        if ($this->registry->output->getTitle() == "") {
            $this->registry->output->setTitle( $this->settings['board_name'] .' -> '. $this->settings['classifieds_public_name'] );
        }

       // $this->registry->output->addToDocumentHead('raw', "<link rel='stylesheet' type='text/css' title='Main' media='screen' href='public/style_css/master_css/classifieds_styles.css' />");
        $this->registry->output->addContent( $this->output );
        $this->registry->output->addContent( base64_decode("PGRpdiBzdHlsZT0ndGV4dC1hbGlnbjpyaWdodDtmb250LXNpemU6MC45ZW07JyBjbGFzcz0naXBzUGFkIGNsZWFyJz5Qb3dlcmVkIGJ5IDxhIGhyZWY9J2h0dHA6Ly9kZXYubWlsbG5lLmNvbS9saW5rL2NsYXNzaWZpZWRzLyc+Q2xhc3NpZmllZHM8L2E+PC9kaXY+"));
        $this->registry->output->sendOutput();
    }

    /**
     * Category Index
     */
    function index() {

    	
        // Retrieve categories from db
        $categories = $this->categories->getDescendants(1, false, true);

        if ($categories) {
            $categories = $this->categories->buildNestedList($categories);
        }

        // Get Latest/Random Ad

        $highlightedAd = $this->items->getRandom();
        
        $this->output .= $this->registry->getClass('output')->getTemplate('classifieds')->sidebar('', $highlightedAd);
        $this->output .= $this->registry->getClass('output')->getTemplate('classifieds')->category_index($categories);

    }

    /**
     * Category view
     */
    function viewCategory() {
        if ( empty( $this->request['category_id'] ) ) {
            //$this->registry->output->silentRedirect( $this->settings['base_url']."app=classifieds" );
           $cat_id = 1;

        } else {
            $cat_id = intval($this->request['category_id']);
        }
        
        //-----------------------------------------
        // Filters
        //-----------------------------------------  

        $filters = array();

        $filters[] = 'i.active = 1';
        if (!$this->memberData['g_classifieds_can_moderate']) {
        	$filters[] = 'i.open = 1';
        }
        $filters[] = "(i.date_expiry > " . (time() - ($this->settings['classifieds_display_after_expiry'] * 86400)) .")";
        
        $filter = intval($this->request['filter']);
        
        if ( $filter && $filter != 0 ) {
        	$filters[] = "i.advert_type = '{$this->request['filter']}'";        	
        }
        
        // Get Categories
        $categories = $this->categories->getDescendants($cat_id, TRUE, TRUE, '', TRUE, $filters);
        $category = array_shift($categories);
        
        // Get Siblings if leaf node
        
        if ($category['rgt'] - $category['lft'] == 1) {
        	$siblings = $this->categories->getDescendants($category['parent_id'], false, true, 1, false, $filters);
        }


        //-----------------------------------------
        // Is category watched
        //-----------------------------------------

        $category['watched'] = $this->categories->isSubscribed($cat_id, $this->memberData['member_id']);
     
        
        //-----------------------------------------
        // Order
        //-----------------------------------------

        $sort = array();
        $sort['order']		= ( $this->request['sort_order'] == 'asc' ) ? 'asc' : 'desc';
		$sort['key']		= ( $this->request['sort_key'] && in_array( $this->request['sort_key'], array('date_added', 'price', 'date_expiry', 'views') ) ) ? $this->request['sort_key'] : 'date_added';
		$order = "featured DESC, " . $sort['key'] . " " . $sort['order'];
		
		//-----------------------------------------
        // Get items from DB
        //-----------------------------------------
		
        $items = $this->items->getItems($category, '', TRUE, $order, $filters);

        $total_items = $this->items->countItems($category, $filters);
        
        //-----------------------------------------
        // Which advert types are in use
        //-----------------------------------------
		
        $distinct_types = $this->items->distinctTypes($category, array_pop($filters));
        $types = $this->registry->classifieds->helper( 'types' )->getTypes($distinct_types);

        
        //-----------------------------------------
        // Start Pagination
        //-----------------------------------------

        $after_magic_quote .= "&amp;do=view_category&amp;category_id=".ipsRegistry::$request['category_id'];
        $after_magic_quote .= "&amp;sort_key={$sort['key']}&amp;sort_order={$sort['order']}&amp;filter={$filter}";

        $pages = $this->registry->output->generatePagination( array(
                'totalItems'  		  => $total_items,
                'itemsPerPage'    	  => (intval($this->settings['classifieds_items_per_page']) < 1) ? 10 : $this->settings['classifieds_items_per_page'],
                'currentStartValue'       => ipsRegistry::$request['st'],
                'baseUrl'                 => "app=classifieds".$after_magic_quote,
                )		);

  
        //-----------------------------------------
        // Get Path to category
        //-----------------------------------------

        if ($path_to_category = $this->categories->getPath($category)) {

            //-----------------------------------------
            // Add category path to breadcrumb
            //-----------------------------------------

            foreach( $path_to_category as $row ) {
                $this->registry->output->addNavigation( $row['name'], 'app=classifieds&amp;module=core&amp;do=view_category&amp;category_id=' . $row['category_id'] . "&amp;sort_key={$sort['key']}&amp;sort_order={$sort['order']}&amp;filter={$filter}" , $row['seo_title'], "view_category"  );
            }

        }
        
        $this->registry->output->addNavigation( $category['name'], '' );

        //-----------------------------------------
        // Set Title
        //-----------------------------------------

        $this->registry->output->setTitle( $category['name'] .' - '. $this->settings['classifieds_public_name'] .' - ' . $this->settings['board_name'] );
        

        $this->output .= $this->registry->getClass('output')->getTemplate('classifieds')->category_view($category, $categories, $items, $pages, $sort, $filter, $siblings, $types);
    }

    /**
     * Advert Display
     */
    function viewItem() {

        //-----------------------------------------
        // Grab item
        //-----------------------------------------

        $item = $this->items->getItemById(intval($this->request['item_id']));

        // Has it expired?
        if ($item['date_expiry'] < time()) {
        	if($this->memberData['member_id'] == $item['member_id']) {
        		$this->registry->output->silentRedirect( $this->settings['base_url']."app=classifieds&amp;module=listing&amp;do=renew&amp;item_id={$item['item_id']}" );
        	} else {
        		$this->registry->output->showError( $this->lang->words['cfds_expired'], '10CFDM1001', null, null, 404 );
        	}
        }

        //-----------------------------------------
        // Format description for output
        //-----------------------------------------

        IPSText::getTextClass('bbcode')->parse_html 		= 0;
        IPSText::getTextClass('bbcode')->parse_bbcode		= 1;
        IPSText::getTextClass('bbcode')->parse_smilies		= 1;
        IPSText::getTextClass('bbcode')->parsing_section	= 'classifieds_description';
    
        $item['description'] = IPSText::getTextClass('bbcode')->preDisplayParse( $item['description'] );

        //-----------------------------------------
        // Grab Category
        //-----------------------------------------

        $category = $this->categories->getNode($item['category_id']);

        //-----------------------------------------
        // Is item watched
        //-----------------------------------------

        $watched = $this->items->isSubscribed($item['item_id'], $this->memberData['member_id']);

        //-----------------------------------------
        // Path to item
        //-----------------------------------------

        $path_to_category = $this->categories->getPath($category, TRUE);

        foreach( $path_to_category as $row) {
            $this->registry->output->addNavigation( $row['name'], 'app=classifieds&amp;module=core&amp;do=view_category&amp;category_id=' . $row['category_id'], $row['seo_title'], "view_category"  );
            
        }

        $this->registry->output->addNavigation( $item['name'], '' );


        //-----------------------------------------
        // Get Seller Info
        //-----------------------------------------

        $seller = IPSMember::load( $item['member_id'], 'profile_portal', 'id' );
      //  $seller = IPSMember::buildDisplayData( $seller, array('cfSkinGroup' => 'profile', 'checkFormat' => 1, 'spamStatus' => 1 ) );

        //-----------------------------------------
        // Get custom field info
        //-----------------------------------------

        $fields = $this->fields->getFieldsByItemId($item['item_id'], $includeEmpty = false, $category);

        foreach ($fields as $field) {

            $item['fields'][] = $field;

        }
        
        //-----------------------------------------
        // Get questions
        //-----------------------------------------

        $questions = $this->questions->getQuestionsByItemID($item['item_id']);

        //-----------------------------------------
        // Get Attachments
        //-----------------------------------------
        
        $attachments = $this->items->getAttachmentData($item['item_id']);

        //-----------------------------------------
        // Set Title
        //-----------------------------------------

        $this->registry->output->setTitle( $item['name'] . ' - '. $this->settings['classifieds_public_name'] .' - ' . $this->settings['board_name']);

        //-----------------------------------------
        // Mark as read in all ancestor categories
        //-----------------------------------------

        foreach( $path_to_category as $row) {
            $this->registry->classItemMarking->markRead( array( 'categoryID' => $row['category_id'], 'itemID' => $item['item_id'] ), 'classifieds' );
        }
    
        //-----------------------------------------
        // Update the view count
        //-----------------------------------------

        $this->DB->update('classifieds_items', array('views' => $item['views'] + 1), 'item_id = ' . $item['item_id']);

        $this->output .= $this->registry->getClass('output')->getTemplate('classifieds')->item_view($item, $seller, $attachments, $questions, $watched);
    }

    /**
     * My Items
     */
    function viewMyItems() {
        $this->registry->output->addNavigation( $this->lang->words['cfds_my_items'], '' );

        //-----------------------------------------
        // Get items from DB
        //-----------------------------------------
		//$filters = array("i.member_id = " . $this->memberData['member_id']);
        $items = $this->items->getItems(0,'',false,'',$filters);
      //  $total_items = $this->items->countItemsByMemberId($this->memberData['member_id']);


        //-----------------------------------------
        // Start Pagination
        //-----------------------------------------

        $after_magic_quote .= "&amp;do=view_my_items";

        $pages = $this->registry->output->generatePagination( array(
                'totalItems'  		  => $total_items,
                'itemsPerPage'    	  => (intval($this->settings['classifieds_items_per_page']) < 1) ? 10 : $this->settings['classifieds_items_per_page'],
                'currentStartValue'       => ipsRegistry::$request['st'],
                'baseUrl'		  => "app=classifieds".$after_magic_quote,
                )		);

        // Set Title
        $this->registry->output->setTitle( $this->settings['board_name'] . ' -> ' . $this->settings['classifieds_public_name'] . ' -> ' . $this->lang->words['cfds_my_items']);

       
        $this->output .= $this->registry->getClass('output')->getTemplate('classifieds')->my_items_view($items, $pages, $questions);
    }

    /**
     * Close Item
     */
    function closeItem() {

        //-----------------------------------------
        // Grab item
        //-----------------------------------------

        $item = $this->items->getItemById(intval($this->request['item_id']));

        //-----------------------------------------
        // Check it's OK to close
        //-----------------------------------------

        if (!$this->memberData['g_classifieds_can_moderate']) {

            // Check users group can close own items
            if(!$this->memberData['g_classifieds_can_open_close']) {
                $this->registry->output->showError( $this->lang->words['cfds_cant_close'], '10CFDM1002', null, null, 403 );
            }

            // Check item belongs to user
            if ($this->memberData['member_id'] != $item['member_id']) {
                $this->registry->output->showError( $this->lang->words['cfds_not_own_item'], '10CFDM1003', null, null, 403 );
            }

        }

        //-----------------------------------------
        // Close it
        //-----------------------------------------

        $this->DB->update( 'classifieds_items', array( 'open' => '0'), 'item_id = ' . intval($item['item_id']) );

        // Do the output stuff

        $this->registry->output->redirectScreen($this->lang->words['cfds_item_closed'], $this->settings['base_url'] . "app=classifieds&amp;module=core&amp;do=view_item&amp;item_id=" . $item['item_id']);

    }

    /**
     * Open Item
     */
    function openItem() {

        //-----------------------------------------
        // Grab item
        //-----------------------------------------

        $item = $this->items->getItemById(intval($this->request['item_id']));

        //-----------------------------------------
        // Check it's OK to open
        //-----------------------------------------

        if (!$this->memberData['g_classifieds_can_moderate'])
        {

            // Check users group can open own items
            if(!$this->memberData['g_classifieds_can_open_close'])
            {
                $this->registry->output->showError( $this->lang->words['cfds_cant_open'], '10CFDM1004', null, null, 403 );
            }

            // Check item belongs to user
            if ($this->memberData['member_id'] != $item['member_id'])
            {
                $this->registry->output->showError( $this->lang->words['cfds_not_own_item'], '10CFDM1005', null, null, 403 );
            }


        }

        //-----------------------------------------
        // Open it
        //-----------------------------------------

        $this->DB->update( 'classifieds_items', array( 'open' => '1'), 'item_id = ' . intval($item['item_id']) );

        //-----------------------------------------
        // Do the output stuff
        //-----------------------------------------

        $this->registry->output->redirectScreen($this->lang->words['cfds_item_opened'], $this->settings['base_url'] . "app=classifieds&amp;module=core&amp;do=view_item&amp;item_id=" . $item['item_id']);


    }

    /**
     * Delete Item
     */
    function deleteItem() {

        //-----------------------------------------
        // Grab item
        //-----------------------------------------

        $item = $this->items->getItemById(intval($this->request['item_id']));

        //-----------------------------------------
        // Check it's OK to delete
        //-----------------------------------------

        if (!$this->memberData['g_classifieds_can_moderate'])
        {
            $this->registry->output->showError( $this->lang->words['cfds_cant_delete'], '10CFDM1006', null, null, 403 );
        }

            
        //-----------------------------------------
        // Delete it
        //-----------------------------------------
        $items[] = $item['item_id'];
        $this->items->deleteItems( $items );

        $this->registry->output->redirectScreen($this->lang->words['cfds_item_deleted'], $this->settings['base_url'] . "app=classifieds" );


    }

    /**
     * Delete Item
     */
    function deleteItemForm() {

        $form = array();

        //-----------------------------------------
        // Grab item
        //-----------------------------------------

        $item = $this->items->getItemById(intval($this->request['item_id']));

        //-----------------------------------------
        // Check it's OK to delete
        //-----------------------------------------

        if (!$this->memberData['g_classifieds_can_moderate']) {
            $this->registry->output->showError( $this->lang->words['cfds_cant_delete'], '10CFDM1007' );
        }

        $form['formcode']   =  'do_delete_item';
        $form['button']     = $this->lang->words['cfds_delete_item'];

        //-----------------------------------------
        // Do the output stuff
        //-----------------------------------------

        $this->output .= $this->registry->getClass('output')->getTemplate('classifieds')->delete_item_form($item, $form);

    }

} // end class
?> 

 

  • 4 недели спустя...
comment_47237

При создании нового обьявления, если оставить поле "Тип обьявления" пустым, выскакивает следующая ошибка выше стиля на странице мойсайт.ru/classifieds. При этом обьявление создается и отображается.

Перестройка Кеша не помогает.

Погло только - или редактировать обьявление с выбором типа или при сроздании нового обязательно указывать тип.

(ipb- 3.4.5)

 

Мучает вопрос: как с незаполненым обязательным полем "Тип обьявления" могут создаваться обьявления.

Warning: Invalid argument supplied for foreach() in /var/www/data/www/мойсайт.ru/cache/skin_cache/cacheid_1/skin_classifieds.php on line 388

Warning: Invalid argument supplied for foreach() in /var/www/data/www/мойсайт.ru/cache/skin_cache/cacheid_1/skin_classifieds.php on line 406

Warning: Cannot modify header information - headers already sent by (output started at /var/www/data/www/мойсайт.ru/cache/skin_cache/cacheid_1/skin_classifieds.php:388) in /var/www/data/www/мойсайтe.ru/admin/sources/classes/output/formats/html/htmlOutput.php on line 110

Warning: Cannot modify header information - headers already sent by (output started at /var/www/data/www/мойсайт.ru/cache/skin_cache/cacheid_1/skin_classifieds.php:388) in /var/www/data/www/мойсайт.ru/admin/sources/classes/output/formats/html/htmlOutput.php on line 127

Warning: Cannot modify header information - headers already sent by (output started at /var/www/data/www/мойсайт.ru/cache/skin_cache/cacheid_1/skin_classifieds.php:388) in /var/www/data/www/мойсайт.ru/admin/sources/classes/output/formats/html/htmlOutput.php on line 136

Warning: Cannot modify header information - headers already sent by (output started at /var/www/data/www/мойсайт.ru/cache/skin_cache/cacheid_1/skin_classifieds.php:388) in /var/www/data/www/мойсайт.ru/admin/sources/classes/output/formats/html/htmlOutput.php on line 137

Warning: Cannot modify header information - headers already sent by (output started at /var/www/data/www/мойсайт.ru/cache/skin_cache/cacheid_1/skin_classifieds.php:388) in /var/www/data/www/мойсайт.ru/admin/sources/classes/output/formats/html/htmlOutput.php on line 141
comment_47256

на дефолтовом стиле проверяйте 

На нем, родимом, такая штука и вылезает.

Edited by soloas

comment_47261


хуки
или приложения?

 

Про хуки где-то читал. Сейчас попробую переустановить и займусь хуками

comment_47263


отключайте все хуки кроме этого и проверяйте

 

Вопрос: нужно ли после включения очередного хука перестраивать весь кеш

comment_47277

Абсолютно случайно обнаружил глюк у доски. Вообщем дело обстоит так: Нужно что бы на доске было хоть одно объявление с выбранным типом (любым) и все будет нормально. Как только я оставляю на доске обьявы без указания типов - выскакивает ошибка кеша стилей, как выше на фото.

comment_47341

Этой ошибке 100 лет в обед и исправляется тупо в шаблоне. Тупые авторы не проверяют массив на пустоту, в результате чего в цикл foreach пустота и попадает. NULL и EMPTY разные значения! Были уже тут темы с аналогичными ошибками и в других приложениях.

Покажешь код шаблона, отвечающего за эту страницу, покажу как исправить.

comment_47372


Покажешь код шаблона, отвечающего за эту страницу, покажу как исправить.
Еще бы знать какой из них? Возмо этот skin_classifieds.php

Ошибки следующие

Warning: Invalid argument supplied for foreach() in /var/www/u2555830/data/www/test.arak.ru/cache/skin_cache/cacheid_1/skin_classifieds.php on line 388

Warning: Invalid argument supplied for foreach() in /var/www/u2555830/data/www/test.arak.ru/cache/skin_cache/cacheid_1/skin_classifieds.php on line 406

Вот сам код

post-12859-0-78391000-1382723407_thumb.p

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.