doman
07-18-2007, 08:07 PM
سلام
طبق دستكاري هايي كه من تو بعضي از كدها كردم يك سري از كاربران ويژه ميتونن علاوه بر ارسال خبر در محيط كاربري مطالب را دربخش هاي ديگر هم ارسال كنند اما توي فرم ارسال به يه مشكلي برخوردم به اين كد نگاه كنيد
$javascript = "onchange=\"changeDynaList( 'catid', sectioncategories, document.adminForm.sectionid.options[document.adminForm.sectionid.selectedIndex].value, 0, 0);\"";
$query = "SELECT s.id AS value, s.title AS text"
. "\n FROM #__sections AS s"
. "\n ORDER BY s.ordering";
$database->setQuery( $query );
$sections = $database->loadObjectList();
if ( $sectionid == 0 ) {
if ($sections) {
array_unshift ($sections, mosHTML::makeOption( '-1', T_('Select Section')));
} else {
$sections[] = mosHTML::makeOption( '-1', T_('Add Section(s) First') );
}
$lists['sectionid'] = mosHTML::selectList( $sections, 'sectionid', 'class="inputbox" size="1" '. $javascript, 'value', 'text' );
} else {
$lists['sectionid'] = mosHTML::selectList( $sections, 'sectionid', 'class="inputbox" size="1" '. $javascript, 'value', 'text', intval( $row->sectionid));
}
$sectioncategories = array();
$sectioncategories[-1] = array();
$sectioncategories[-1][] = mosHTML::makeOption( '-1', T_('Select Category') );
if ($sections) foreach($sections as $section) {
$sectioncategories[$section->value] = array();
$query = "SELECT id AS value, name AS text"
. "\n FROM #__categories"
. "\n WHERE section='$section->value'"
. "\n ORDER BY ordering";
$database->setQuery( $query );
$rows2 = $database->loadObjectList();
if ($rows2) foreach($rows2 as $row2) $sectioncategories[$section->value][] = mosHTML::makeOption( $row2->value, $row2->text );
else $sectioncategories[$section->value][] = mosHTML::makeOption( "-1", T_('Add Categories First') );
}
// get list of categories
if ( !$row->catid && !$row->sectionid ) {
$categories[] = mosHTML::makeOption( '-1', T_('Select Category') );
$lists['catid'] = mosHTML::selectList( $categories, 'catid', 'class="inputbox" size="1"', 'value', 'text' );
} else {
$query = "SELECT id AS value, name AS text"
. "\n FROM #__categories"
. $where
. "\n ORDER BY ordering";
$database->setQuery( $query );
$categories[] = mosHTML::makeOption( '-1', T_('Select Category') );
$categories = array_merge( $categories, $database->loadObjectList() );
$lists['catid'] = mosHTML::selectList( $categories, 'catid', 'class="inputbox" size="1"', 'value', 'text', intval( $row->catid ) );
}
طبق اين كد وقتي آيتمي از ليست بخش ها رو انتخاب ميكنيم مجموعه هاي اون بخش در ليستي نمايش داده ميشن
مشكل اينجاست كه اين كد تو كامپوننت مربوطه تو محيط مديريت به خوبي عمل ميكنه ولي تو كامپوننت كاربري همه مجموعه ها و همه ي بخش ها رو نشون ميده راجع به اون تابع جاوا هم من فايل هاي جاوا اسكريپت رو فراخواني كردم ولي مشكلم بر طرف نشد
اگه هم راه حل ديگه اي براي اين مسئله وجود داره ممنون ميشم اگه راهنماييم كنيد
اطلاعات:مامبو 4.6.1 فارسي
فكر ديگه اي كه به سرم زد اين بود كه اول همه ي اطلاعات رو بيارم به كلاينت بعد اونجا با جاوا اونا رو تفكيك كنم ولي اينجوري صفحه خيلي سنگين ميشه
طبق دستكاري هايي كه من تو بعضي از كدها كردم يك سري از كاربران ويژه ميتونن علاوه بر ارسال خبر در محيط كاربري مطالب را دربخش هاي ديگر هم ارسال كنند اما توي فرم ارسال به يه مشكلي برخوردم به اين كد نگاه كنيد
$javascript = "onchange=\"changeDynaList( 'catid', sectioncategories, document.adminForm.sectionid.options[document.adminForm.sectionid.selectedIndex].value, 0, 0);\"";
$query = "SELECT s.id AS value, s.title AS text"
. "\n FROM #__sections AS s"
. "\n ORDER BY s.ordering";
$database->setQuery( $query );
$sections = $database->loadObjectList();
if ( $sectionid == 0 ) {
if ($sections) {
array_unshift ($sections, mosHTML::makeOption( '-1', T_('Select Section')));
} else {
$sections[] = mosHTML::makeOption( '-1', T_('Add Section(s) First') );
}
$lists['sectionid'] = mosHTML::selectList( $sections, 'sectionid', 'class="inputbox" size="1" '. $javascript, 'value', 'text' );
} else {
$lists['sectionid'] = mosHTML::selectList( $sections, 'sectionid', 'class="inputbox" size="1" '. $javascript, 'value', 'text', intval( $row->sectionid));
}
$sectioncategories = array();
$sectioncategories[-1] = array();
$sectioncategories[-1][] = mosHTML::makeOption( '-1', T_('Select Category') );
if ($sections) foreach($sections as $section) {
$sectioncategories[$section->value] = array();
$query = "SELECT id AS value, name AS text"
. "\n FROM #__categories"
. "\n WHERE section='$section->value'"
. "\n ORDER BY ordering";
$database->setQuery( $query );
$rows2 = $database->loadObjectList();
if ($rows2) foreach($rows2 as $row2) $sectioncategories[$section->value][] = mosHTML::makeOption( $row2->value, $row2->text );
else $sectioncategories[$section->value][] = mosHTML::makeOption( "-1", T_('Add Categories First') );
}
// get list of categories
if ( !$row->catid && !$row->sectionid ) {
$categories[] = mosHTML::makeOption( '-1', T_('Select Category') );
$lists['catid'] = mosHTML::selectList( $categories, 'catid', 'class="inputbox" size="1"', 'value', 'text' );
} else {
$query = "SELECT id AS value, name AS text"
. "\n FROM #__categories"
. $where
. "\n ORDER BY ordering";
$database->setQuery( $query );
$categories[] = mosHTML::makeOption( '-1', T_('Select Category') );
$categories = array_merge( $categories, $database->loadObjectList() );
$lists['catid'] = mosHTML::selectList( $categories, 'catid', 'class="inputbox" size="1"', 'value', 'text', intval( $row->catid ) );
}
طبق اين كد وقتي آيتمي از ليست بخش ها رو انتخاب ميكنيم مجموعه هاي اون بخش در ليستي نمايش داده ميشن
مشكل اينجاست كه اين كد تو كامپوننت مربوطه تو محيط مديريت به خوبي عمل ميكنه ولي تو كامپوننت كاربري همه مجموعه ها و همه ي بخش ها رو نشون ميده راجع به اون تابع جاوا هم من فايل هاي جاوا اسكريپت رو فراخواني كردم ولي مشكلم بر طرف نشد
اگه هم راه حل ديگه اي براي اين مسئله وجود داره ممنون ميشم اگه راهنماييم كنيد
اطلاعات:مامبو 4.6.1 فارسي
فكر ديگه اي كه به سرم زد اين بود كه اول همه ي اطلاعات رو بيارم به كلاينت بعد اونجا با جاوا اونا رو تفكيك كنم ولي اينجوري صفحه خيلي سنگين ميشه