0

このコードは、プロフィール画像アップローダーを実行するはずのiconbasicというファイルにありますが、機能していません。誰もが理由を知っていますか?

私はこれが初めてですが、コンポーネントfron-endのagentformフォルダーには、次の行を含むedit.phpファイルがあります。

<?php echo $this->form->getInput('icon'); ?>

次に、modelsフォルダーにagent.xmlファイルがあります。このファイルは、基本的に次の行を使用してiconbasic.phpを指します。

    <field name="icon" type="iconbasic" label="COM_IPROPERTY_IMAGE" readonly="true" folder="agents" />

次に、コンポーネントの管理者ファイルで、fieldsというサブフォルダー内のmodelsフォルダーにiconbasic.phpというファイルがあります。フロントエンドでは、サイトでファイルをアップロードできますが、ファイルが正しいディレクトリに保存されているのに、サイトに表示されません。私はその理由を見つけようとしており、少しの助けに本当に感謝します。コーディングの経験がなく、今日はメモ帳++を使用してこれを多かれ少なかれ自分で理解しています:)

これはiconbasic.phpファイルです:

<?php
/**
 * @version 2.0 2012-01-20
 * @package Joomla
 * @subpackage Intellectual Property
 * @copyright (C) 2012 the Thinkery
 * @license GNU/GPL see LICENSE.php
 */

defined('JPATH_BASE') or die;

jimport('joomla.html.html');
jimport('joomla.form.formfield');

class JFormFieldIconBasic extends JFormField
{
protected $type = 'Iconbasic';

protected function getInput()
{
    $user       = JFactory::getUser();
    $document   = JFactory::getDocument();
    $folder     = $this->element['folder']; // agents or companies
    $id         = JRequest::getInt('id');
    $settings   = ipropertyAdmin::config();
    $database   = JFactory::getDBO();

    switch ($folder){
        case 'agents':
            $width = $settings->agent_photo_width;
            $table = '#__iproperty_agents';
        break;
        case 'companies':
            $width = $settings->company_photo_width;
            $table = '#__iproperty_companies';
        break;
        default:
            $width = $settings->agent_photo_width;
            $table = '#__iproperty_agents';
        break;
    }

    $sql = "SELECT icon FROM ".$table." WHERE id = ".$id;
    $database->setQuery($sql);
    $icon = $database->loadResult();

    if (!$icon) $icon = 'nopic.png';


    $document->addScript( "http://bp.yahooapis.com/2.4.21/browserplus-min.js" );
    $document->addScript( "https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" );
    $document->addScript( JURI::root()."components/com_iproperty/assets/js/plupload/js/plupload.full.js" );

    $script = 
"jQuery.noConflict();
jQuery(document).ready(function($) {
var uploader = new plupload.Uploader({
    runtimes : 'html5,flash,silverlight,browserplus',
    browse_button : 'pickfiles',
    container : 'container',
    max_file_size : '2mb',
    unique_names : true,
    multipart: true,
    urlstream_upload: true,
    url : '".JURI::root()."index.php?option=com_iproperty&task=ajax.ajaxIconUpload&format=raw&".JUtility::getToken()."=1&target=".$folder."&id=".$id."',
    flash_swf_url : '".JURI::root()."components/com_iproperty/assets/js/plupload/js/plupload.flash.swf',
    silverlight_xap_url : '".JURI::root()."components/com_iproperty/assets/js/plupload/js/plupload.silverlight.xap',
    filters : [
        {title : 'Image files', extensions : 'jpg,gif,png'}
        //{title : '".JText::_('COM_IPROPERTY_IMAGE_TYPES')."', extensions : '".JText::_('COM_IPROPERTY_IMAGE_EXTENSIONS')."'}
    ],
    resize : {width : ".$width.", height : ".$width.", quality : 90} // we use the same value for width/height so it scales proportionally
});

$('#uploadfiles').click(function(e) {
    uploader.start();
    e.preventDefault();
});

uploader.init();

uploader.bind('FilesAdded', function(up, files) {
    $.each(files, function(i, file) {
        $('#filelist').append(
            '<div id=\"' + file.id + '\">' +
            file.name + ' (' + plupload.formatSize(file.size) + ') <b></b>' +
        '</div>');
    });

    uploader.start(); // auto start when file added

    up.refresh(); // Reposition Flash/Silverlight
});

uploader.bind('UploadProgress', function(up, file) {
    $('#' + file.id + \" b\").html(file.percent + \"%\");
});

uploader.bind('Error', function(up, err) {
console.log(err);
    $('#filelist').append(\"<div>Error: \" + err.code +
        \", Message: \" + err.message +
        (err.file ? \", File: \" + err.file.name : \"\") +
        \"</div>\"
    );
    up.refresh(); // Reposition Flash/Silverlight
});

uploader.bind('FileUploaded', function(up, file, info) {
    var finfo = jQuery.parseJSON(info.response);
    if (finfo[0].status){ // successful image upload
        var path = '".JURI::root()."media/com_iproperty/".$folder."/'+finfo[0].result;
        $('#ip_photo_holder').attr('src', path);
    }
});
});"."\n";   

    $document->addScriptDeclaration($script);
    // Build image select js and load the view
    $img_path   = JURI::root(true).'/media/com_iproperty/'.$folder.'/';     
    ?>
    <div style="padding: 4px;" id="container">
        <div id="filelist"></div><br />
        <a id="pickfiles" href="javascript:void(0);">[Select files]</a>
        <a id="uploadfiles" href="javascript:void(0);">[Upload files]</a>
    </div>
    <div><img id="ip_photo_holder" src="<?php echo JURI::root(); ?>/media/com_iproperty/<?php echo $folder.'/'.$icon; ?>"></div>
    <?php
}
}
4

1 に答える 1

0

これはmanage.phpファイルの間違ったSQLビットの行でした

于 2012-09-24T23:39:20.590 に答える